简介
在php中处理图片一般都是使用自带的GD库相关的函数来处理的,功能比较有限。
ImageMagick 是一个免费的创建、编辑、合成图片的软件。它可以读取、转换、写入多种格式的图片。图片切割、颜色替换、各种效果的应用,图片的旋转、组合,文本,直线,多边形,椭圆,曲线,附加到图片伸展旋转。
在php中,imagick扩展就是使用ImageMagick提供的API来处理图片
准备
yum 更新
yum -y install libpng-devel libwebp libwebp-devel
### 遇到以下问题 更新epel 后重试
No package libwebp available.
No package libwebp-devel available.
###
yum -y install epel-release
后面可能遇到编译错误
undefined reference to `jpeg_default_qtables'
### 编译过程中遇到上面错误提示,重新编译lib-jpeg
cd /usr/local/src/
wget http://www.ijg.org/files/jpegsrc.v9b.tar.gz
tar xzf jpegsrc.v9b.tar.gz
cd jpeg-9b
./configure
make libdir=/usr/lib64
make libdir=/usr/lib64 install
安装
编译安装ImageMagick
wget https://www.imagemagick.org/download/ImageMagick.tar.gz
tar xzf ImageMagick.tar.gz
cd ImageMagick-*
./configure --with-webp
make && make install
## 检查ImageMagick支持的格式
convert -list format
安装 imagick php 扩展
pecl install imagick
更新php.ini配置
在/etc/php.ini 加上extension=imagick.so 重启php
service php-fpm restart
php --ri imagick
## 检查phpinfo 里面imagick信息
php中的使用
测试代码
$srcImage='./test.webp';
$desImage='./new.webp';
$objWidth = 30;
$objHeight = 30;
$image = new Imagick($srcImage);
$image = $image->coalesceImages();
foreach ($image as $frame) {
$frame->thumbnailImage($objWidth, $objHeight, true);
}
$image->writeImages($desImage, true);
相关链接