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