在PHP中如何使用函数进行图片处理和水印添加操作?
发布时间:2023-06-30 10:13:38
在PHP中,可以使用内置的GD库来进行图片处理和水印添加操作。GD库是一个开源的图像处理库,可以用来创建、操作和保存各种类型的图像文件。
首先,需要在PHP中启用GD库。在php.ini文件中找到如下语句:
;extension=gd2
将分号去掉,并保存修改后重启Web服务器。
接下来,我们可以使用GD库提供的函数来进行图片处理和水印添加操作。
一、图片处理:
1. 裁剪图片:
可以使用imagecrop()函数来裁剪图片。该函数的参数包括原始图片资源、裁剪起始点的x坐标、y坐标、裁剪宽度和高度等。
$src_img = imagecreatefromjpeg('original.jpg');
$dst_img = imagecrop($src_img, ['x' => 0, 'y' => 0, 'width' => 100, 'height' => 100]);
imagejpeg($dst_img, 'cropped.jpg');
imagedestroy($src_img);
imagedestroy($dst_img);
2. 缩放图片:
可以使用imagescale()函数来缩放图片。该函数的参数包括原始图片资源、目标宽度和高度等。
$src_img = imagecreatefromjpeg('original.jpg');
$dst_img = imagescale($src_img, 200, 200);
imagejpeg($dst_img, 'resized.jpg');
imagedestroy($src_img);
imagedestroy($dst_img);
3. 旋转图片:
可以使用imagerotate()函数来旋转图片。该函数的参数包括原始图片资源、旋转角度和背景色等。
$src_img = imagecreatefromjpeg('original.jpg');
$dst_img = imagerotate($src_img, 45, 0);
imagejpeg($dst_img, 'rotated.jpg');
imagedestroy($src_img);
imagedestroy($dst_img);
二、水印添加:
可以使用imagestring()函数或imagettftext()函数来添加水印文本。还可以使用imagecopy()函数来添加水印图片。
1. 添加文字水印:
$src_img = imagecreatefromjpeg('original.jpg');
$font = 'arial.ttf'; // 水印字体文件
$black = imagecolorallocate($src_img, 0, 0, 0); // 水印颜色
imagestring($src_img, 5, 10, 10, 'www.example.com', $black); // 在坐标(10,10)处添加水印文字
imagettftext($src_img, 20, 0, 10, 10, $black, $font, 'www.example.com'); // 使用TrueType字体添加水印文字
imagejpeg($src_img, 'watermarked.jpg');
imagedestroy($src_img);
2. 添加图片水印:
$src_img = imagecreatefromjpeg('original.jpg');
$watermark_img = imagecreatefrompng('watermark.png');
$wm_width = imagesx($watermark_img);
$wm_height = imagesy($watermark_img);
$img_width = imagesx($src_img);
$img_height = imagesy($src_img);
$dst_x = $img_width - $wm_width - 10;
$dst_y = $img_height - $wm_height - 10;
imagecopy($src_img, $watermark_img, $dst_x, $dst_y, 0, 0, $wm_width, $wm_height);
imagejpeg($src_img, 'watermarked.jpg');
imagedestroy($src_img);
imagedestroy($watermark_img);
以上是使用GD库在PHP中进行图片处理和水印添加的基本操作。更加复杂的图片处理和水印添加可以通过组合使用GD库提供的其他函数来实现。
