引言
一、PHP图片处理基本概念
1. 支持的图片格式
2. 图像处理库
PHP提供了GD库进行图像处理。GD库是PHP的一部分,无需额外安装。
二、PHP图片处理常用函数
1. 创建图像资源
$image = imagecreatetruecolor($width, $height);
该函数创建一个新的图像资源,\(width和\)height分别表示图像的宽度和高度。
2. 设置图像颜色
$color = imagecolorallocate($image, $red, $green, $blue);
该函数分配一个颜色,\(red、\)green和$blue分别表示颜色值。
3. 填充图像
imagefill($image, 0, 0, $color);
该函数使用指定的颜色填充图像。
4. 保存图像
imagejpeg($image, 'image.jpg');
该函数将图像保存为JPEG格式。
5. 显示图像
header('Content-Type: image/jpeg');
imagejpeg($image);
该函数将图像直接输出到浏览器。
三、实际应用案例
1. 图片缩放
function resizeImage($source, $destination, $width, $height) {
$sourceImage = imagecreatefromjpeg($source);
$resizedImage = imagecreatetruecolor($width, $height);
imagecopyresampled($resizedImage, $sourceImage, 0, 0, 0, 0, $width, $height, imagesx($sourceImage), imagesy($sourceImage));
imagejpeg($resizedImage, $destination);
imagedestroy($sourceImage);
imagedestroy($resizedImage);
}
resizeImage('source.jpg', 'resized.jpg', 200, 200);
该函数将源图像缩放为指定尺寸,并保存为新的文件。
2. 图片裁剪
function cropImage($source, $destination, $x, $y, $width, $height) {
$sourceImage = imagecreatefromjpeg($source);
$croppedImage = imagecreatetruecolor($width, $height);
imagecopyresampled($croppedImage, $sourceImage, 0, 0, $x, $y, $width, $height, imagesx($sourceImage), imagesy($sourceImage));
imagejpeg($croppedImage, $destination);
imagedestroy($sourceImage);
imagedestroy($croppedImage);
}
cropImage('source.jpg', 'cropped.jpg', 50, 50, 200, 200);
该函数从源图像中裁剪指定区域,并保存为新的文件。
3. 图片水印
function addWatermark($source, $destination, $watermark, $x, $y) {
$sourceImage = imagecreatefromjpeg($source);
$watermarkImage = imagecreatefrompng($watermark);
imagealphablending($sourceImage, false);
imagesavealpha($sourceImage, true);
imagecopy($sourceImage, $watermarkImage, $x, $y, 0, 0, imagesx($watermarkImage), imagesy($watermarkImage));
imagejpeg($sourceImage, $destination);
imagedestroy($sourceImage);
imagedestroy($watermarkImage);
}
addWatermark('source.jpg', 'watermarked.jpg', 'watermark.png', 100, 100);
该函数在源图像上添加水印,并保存为新的文件。