PHP函数中的图像操作示例
发布时间:2023-11-20 21:57:50
PHP中提供了丰富的图像操作函数,可以用来处理图像的生成、缩放、裁剪、旋转、合成等操作。下面是一些PHP图像操作的示例:
1. 生成图像:
<?php
$image = imagecreate(200, 100); // 创建一个200x100的空白图像
$bgColor = imagecolorallocate($image, 255, 255, 255); // 设置背景颜色为白色
$textColor = imagecolorallocate($image, 0, 0, 0); // 设置文本颜色为黑色
imagestring($image, 5, 50, 50, 'Hello PHP', $textColor); // 在图像上写入文本
header('Content-type: image/png'); // 告诉浏览器输出的是PNG格式的图像
imagepng($image); // 输出图像
imagedestroy($image); // 销毁图像
?>
2. 缩放图像:
<?php
$srcImage = imagecreatefromjpeg('source.jpg'); // 打开源图像
$srcWidth = imagesx($srcImage); // 获取源图像的宽度
$srcHeight = imagesy($srcImage); // 获取源图像的高度
$newWidth = 200; // 新图像的宽度
$newHeight = $srcHeight * ($newWidth / $srcWidth); // 根据比例计算新图像的高度
$newImage = imagecreatetruecolor($newWidth, $newHeight); // 创建一个新图像
imagecopyresampled($newImage, $srcImage, 0, 0, 0, 0, $newWidth, $newHeight, $srcWidth, $srcHeight); // 将源图像缩放到新图像
imagejpeg($newImage, 'new.jpg', 80); // 输出新图像为JPEG格式
imagedestroy($srcImage); // 销毁源图像
imagedestroy($newImage); // 销毁新图像
?>
3. 裁剪图像:
<?php
$srcImage = imagecreatefromjpeg('source.jpg'); // 打开源图像
$srcWidth = imagesx($srcImage); // 获取源图像的宽度
$srcHeight = imagesy($srcImage); // 获取源图像的高度
$newImage = imagecrop($srcImage, ['x' => 50, 'y' => 50, 'width' => 100, 'height' => 100]); // 裁剪图像
imagejpeg($newImage, 'crop.jpg', 80); // 输出裁剪后的图像为JPEG格式
imagedestroy($srcImage); // 销毁源图像
imagedestroy($newImage); // 销毁裁剪后的图像
?>
4. 旋转图像:
<?php
$srcImage = imagecreatefromjpeg('source.jpg'); // 打开源图像
$angle = 45; // 旋转角度(顺时针)
$newImage = imagerotate($srcImage, $angle, 0); // 旋转图像
imagejpeg($newImage, 'rotate.jpg', 80); // 输出旋转后的图像为JPEG格式
imagedestroy($srcImage); // 销毁源图像
imagedestroy($newImage); // 销毁旋转后的图像
?>
5. 合成图像:
<?php
$background = imagecreatefromjpeg('background.jpg'); // 打开背景图像
$logo = imagecreatefrompng('logo.png'); // 打开Logo图像
$logoWidth = imagesx($logo); // 获取Logo图像的宽度
$logoHeight = imagesy($logo); // 获取Logo图像的高度
$dstX = imagesx($background) - $logoWidth - 10; // 在背景图像右上角10像素的位置放置Logo
$dstY = 10;
imagecopy($background, $logo, $dstX, $dstY, 0, 0, $logoWidth, $logoHeight); // 合成图像
header('Content-type: image/jpeg');
imagejpeg($background); // 输出合成后的图像为JPEG格式
imagedestroy($background); // 销毁背景图像
imagedestroy($logo); // 销毁Logo图像
?>
这些示例只是PHP图像操作的冰山一角,PHP还提供了很多其他图像操作函数供开发者使用。通过这些函数,我们可以方便地实现各种图像处理需求,例如生成验证码、缩略图、图像水印等。
