PHP 图像处理


PHP 图像处理技术文档

概述

PHP 图像处理是一种处理图像的技术,可以对图片进行裁剪、缩放、旋转、添加水印、调整亮度等操作,用于网站开发中的图片处理、缩略图生成等工作。

GD库

PHP图像处理需要依赖GD库,这是一个开源的图像处理库,提供了一系列的函数来处理图像。在使用之前需要确保安装了GD库。

图片类型

使用GD库可以处理多种类型的图片,包括JPEG、PNG、GIF等。

图像处理函数

图像创建函数

使用GD库创建图像可以使用imagecreate()imagecreatetruecolor()函数。

imagecreate()函数会创建一个大小为宽度和高度的黑色图像。

imagecreatetruecolor()函数则会创建一个真彩色图像,但是需要更多的内存。

图像输出函数

使用GD库可以输出图像到浏览器或者保存到指定路径。主要有imagepng()imagejpeg()imagegif()三种函数可以用来输出图片。

例如,使用imagepng()函数输出一个PNG类型的图片到浏览器:

header ('Content-Type: image/png'); //设置输出类型为PNG
$img = imagecreate(200, 50);
imagepng($img);
imagedestroy($img);

图片裁剪函数

使用GD库可以对图片进行裁剪,裁剪函数为imagecrop()。该函数会从原图像上裁剪出一部分,并返回一个新的裁剪后的图像。

例如,裁剪出原图像第50行到第150行,第100列到第200列的部分。

$src_img = imagecreatefrompng('source.png');
$cropped_img = imagecrop($src_img, ['x' => 100, 'y' => 50, 'width' => 100, 'height' => 100]);
imagepng($cropped_img, 'cropped.png');

图片旋转函数

使用GD库可以对图片进行旋转,旋转函数为imagerotate()

例如,逆时针旋转90度:

$src_img = imagecreatefrompng('source.png');
$rotated_img = imagerotate($src_img, -90, 0);
imagepng($rotated_img, 'rotated.png');

添加文字水印

使用GD库可以在图片上添加文字水印。主要用到的函数有:

  • imagestring():可以在图像上绘制单行文本
  • imagettftext():可以在图像上绘制TrueType字体文本。

例如,使用imagettftext()函数在图片右下角添加文字水印:

$src_img = imagecreatefrompng('source.png');
$text_color = imagecolorallocate($image, 255, 255, 255); //设置文本颜色
$font = 'arial.ttf';
imagettftext($src_img, 20, 0, 1000, 700, $text_color, $font, 'watermark');
imagepng($src_img, 'watermarked.png');

缩放函数

使用GD库可以对图片进行缩放,缩放函数为imagescale()

例如,将原图片按比例缩放到宽度为400像素:

$src_img = imagecreatefrompng('source.png');
$resized_img = imagescale($src_img, 400); //等比例缩放到宽度为400
imagepng($resized_img, 'resized.png');

调整亮度函数

使用GD库可以调整图片的亮度,亮度函数为imagefilter()

例如,将图片亮度增加50%:

$src_img = imagecreatefrompng('source.png');
imagefilter($src_img, IMG_FILTER_BRIGHTNESS, 50);
imagepng($src_img, 'brighter.png');

总结

以上是PHP图像处理的基本使用方法,涉及到的函数已经可以处理大部分的图像处理需求。但是注意要确保输入的图片格式正确,否则可能会出现意想不到的结果。