PHP图像处理函数:裁剪、缩放、添加水印
发布时间:2023-07-01 00:29:31
PHP提供了丰富的图像处理函数,可以实现裁剪、缩放和添加水印等功能。下面我们将分别介绍这三个功能的实现方法。
1. 裁剪图像:
裁剪图像可以使用imagecrop()函数或imagecropauto()函数实现。imagecrop()函数需要指定裁剪的起始坐标和宽高,示例代码如下:
$srcImage = imagecreatefromjpeg('image.jpg'); // 载入原图像
$destImage = imagecrop($srcImage, ['x' => 100, 'y' => 100, 'width' => 200, 'height' => 200]); // 裁剪图像
imagejpeg($destImage, 'cropped_image.jpg'); // 保存裁剪后的图像
imagecropauto()函数会根据指定的裁剪尺寸和算法自动选择 裁剪结果,示例代码如下:
$srcImage = imagecreatefromjpeg('image.jpg'); // 载入原图像
$destImage = imagecropauto($srcImage, IMG_CROP_DEFAULT); // 裁剪图像
imagejpeg($destImage, 'cropped_image.jpg'); // 保存裁剪后的图像
2. 缩放图像:
缩放图像可以使用imagescale()函数实现。该函数需要指定缩放后的尺寸,示例代码如下:
$srcImage = imagecreatefromjpeg('image.jpg'); // 载入原图像
$destImage = imagescale($srcImage, 500, 400); // 缩放图像
imagejpeg($destImage, 'scaled_image.jpg'); // 保存缩放后的图像
另外,imagecopyresampled()函数也可以实现图像的缩放,该函数需要指定缩放后的尺寸和原图的起始坐标,示例代码如下:
$srcImage = imagecreatefromjpeg('image.jpg'); // 载入原图像
$destImage = imagecreatetruecolor(500, 400); // 创建新图像
imagecopyresampled($destImage, $srcImage, 0, 0, 0, 0, 500, 400, imagesx($srcImage), imagesy($srcImage)); // 缩放图像
imagejpeg($destImage, 'scaled_image.jpg'); // 保存缩放后的图像
3. 添加水印:
添加水印需要使用到imagecopy()函数或imagettftext()函数。imagecopy()函数可以直接将一个图像叠加到另一个图像上,示例代码如下:
$srcImage = imagecreatefromjpeg('image.jpg'); // 载入原图像
$watermark = imagecreatefrompng('watermark.png'); // 载入水印图像
imagecopy($srcImage, $watermark, 10, 10, 0, 0, imagesx($watermark), imagesy($watermark)); // 添加水印图像
imagejpeg($srcImage, 'image_with_watermark.jpg'); // 保存带水印的图像
imagettftext()函数可以在图像上添加文字水印,示例代码如下:
$srcImage = imagecreatefromjpeg('image.jpg'); // 载入原图像
$textColor = imagecolorallocate($srcImage, 255, 255, 255); // 设置文字颜色
$fontFile = 'arial.ttf'; // 字体文件路径
imagettftext($srcImage, 14, 0, 10, 10, $textColor, $fontFile, 'Watermark Text'); // 添加文字水印
imagejpeg($srcImage, 'image_with_watermark.jpg'); // 保存带水印的图像
以上就是PHP图像处理函数裁剪、缩放和添加水印的简单介绍和示例代码。通过这些函数的灵活应用,我们可以实现各种图像处理的需求。
