📜  PHP Imagick 函数完整参考(1)

📅  最后修改于: 2023-12-03 14:45:11.766000             🧑  作者: Mango

PHP Imagick 函数完整参考

Imagick 是 PHP 的一款强大的图像处理库,可以帮助我们处理各种图像操作,例如图像剪裁、缩放、旋转、合并等。本文介绍 Imagick 常见的函数,并提供使用的示例代码。

安装 Imagick 扩展

使用 Imagick 扩展前需要确保已安装 Imagemagick 库和 PHP 的 Imagick 扩展,如果未安装,请根据对应操作系统和 PHP 版本进行安装。

创建 Imagick 对象

使用 Imagick 库,首先需要创建一个 Imagick 对象,然后可以对其进行各种图像处理操作。

 Imagick::__construct ([ mixed $files_or_data = [ ] ] ) : Imagick

构造函数可以接收一个文件名或者二进制数据,用于创建 Imagick 对象。

$img = new Imagick('image.jpg'); // 从文件中创建对象
$img = new Imagick(file_get_contents('image.jpg')); // 从二进制数据中创建对象
图像调整
调整图像大小
 Imagick::resizeImage ( int $columns , int $rows , int $filter , float $blur [, bool $bestfit = FALSE [, bool $legacy = FALSE ]] ) : bool

可用于调整图像大小,第一个参数为调整后的宽度,第二个参数为调整后的高度,第三个参数为滤波器类型,第四个参数为模糊程度。

$img = new Imagick('image.jpg');
// 将图像缩小到 200 x 200
$img->resizeImage(200, 200, Imagick::FILTER_LANCZOS, 1);
$img->writeImage('image_small.jpg');
调整图像质量
 Imagick::setImageCompressionQuality ( int $quality ) : bool

调整图像质量,第一个参数为质量值,范围为 0~100,数值越大图像质量越好。

$img = new Imagick('image.jpg');
// 将图像质量调整为 80
$img->setImageCompressionQuality(80);
$img->writeImage('image_quality.jpg');
调整图像模糊程度
 Imagick::blurImage ( float $radius , float $sigma [, int $channel = Imagick::CHANNEL_DEFAULT ] ) : bool

调整图像模糊程度,第一个参数为模糊半径,第二个参数为模糊程度。

$img = new Imagick('image.jpg');
// 将图像模糊半径调整为 10,模糊程度调整为 3
$img->blurImage(10, 3);
$img->writeImage('image_blur.jpg');
图像处理
图像旋转
 Imagick::rotateImage ( mixed $background , float $degrees ) : bool

对图像进行旋转,第一个参数为背景颜色,第二个参数为旋转角度,可取逆时针方向的角度值。

$img = new Imagick('image.jpg');
// 将图像旋转 45 度
$img->rotateImage('#FFFFFF', 45);
$img->writeImage('image_rotate.jpg');
图像裁剪
 Imagick::cropImage ( int $width , int $height , int $x , int $y ) : bool

对图像进行裁剪,第一个参数为裁剪宽度,第二个参数为裁剪高度,第三个参数为起始横坐标,第四个参数为起始纵坐标。

$img = new Imagick('image.jpg');
// 对图像进行裁剪,保留从坐标 (50, 50) 开始,宽度为 200,高度为 200 的区域
$img->cropImage(200, 200, 50, 50);
$img->writeImage('image_crop.jpg');
图像合并
 Imagick::compositeImage ( Imagick $composite_object , int $compose , int $x , int $y [, int $channel = Imagick::CHANNEL_ALL ] ) : Imagick

将两张图片进行合并,第一个参数为待合并的图像对象,第二个参数为合并规则,第三个参数为横坐标,第四个参数为纵坐标。

$img = new Imagick('image.jpg');
$watermark = new Imagick('watermark.png');
// 在图片的左上角添加水印
$img->compositeImage($watermark, Imagick::COMPOSITE_OVER, 0, 0);
$img->writeImage('image_watermark.jpg');
颜色处理
 Imagick::colorizeImage ( mixed $colorize , mixed $opacity ) : bool

对图像进行着色处理,第一个参数为颜色值,第二个参数为透明度。

$img = new Imagick('image.jpg');
// 将图像着色为蓝色,透明度为 0.3
$img->colorizeImage('#006699', 0.3);
$img->writeImage('image_colorize.jpg');
结语

以上是 Imagick 常见的函数操作,通过上述函数,可以轻松实现各种图像处理操作。当然 Imagick 的功能还不止于此,如果需要更深入的学习,请参考 Imagick 官方文档。