【介绍】
imagick是一个PHP的扩展,它调用ImageMagick提供的API来进行图片的操作。
ImageMagick是一套软件系列,主要用于图片的创建、编辑以及转换等。
ImageMagick与GD相比性能要高很多,如果是在处理大量的图片时更加能体现ImageMagick的性能。
【安装ImageMagick(remi源)】
输入:
dnf install php-imagick
输出:
Last metadata expiration check: 1:44:36 ago on Tue 06 Sep 2022 08:08:11 PM UTC. Dependencies resolved. ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: php-pecl-imagick-im6 x86_64 3.7.0-1.el8.remi.7.4 remi-modular 189 k Transaction Summary ================================================================================ Install 1 Package Total download size: 189 k Installed size: 1.0 M Is this ok [y/N]: y Downloading Packages: php-pecl-imagick-im6-3.7.0-1.el8.remi.7.4.x86_6 218 kB/s | 189 kB 00:00 -------------------------------------------------------------------------------- Total 145 kB/s | 189 kB 00:01 Running transaction check Transaction check succeeded. Running transaction test Transaction test succeeded. Running transaction Preparing : 1/1 Installing : php-pecl-imagick-im6-3.7.0-1.el8.remi.7.4.x86_64 1/1 Running scriptlet: php-pecl-imagick-im6-3.7.0-1.el8.remi.7.4.x86_64 1/1 Verifying : php-pecl-imagick-im6-3.7.0-1.el8.remi.7.4.x86_64 1/1 Installed: php-pecl-imagick-im6-3.7.0-1.el8.remi.7.4.x86_64 Complete!
然后并不需要设置 php.ini ,PHP系统会自动加载此模块。
在应用程序中查看:
Imagick support Yes
【安装ImageMagick(源码编译)】
首先编译安装ImageMagick
官网:http://www.imagemagick.org/ ,
官网:https://sourceforge.net/projects/imagemagick/
下载:https://sourceforge.net/projects/imagemagick/files/
最新版本:ImageMagick-7.0.7-25
wget https://sourceforge.net/projects/imagemagick/files/im7-src/ImageMagick-7.0.7-25.tar.gz && tar zxvf ImageMagick-7.0.7-25.tar.gz && cd ImageMagick-7.0.7-25 ./configure && make && make install ln -s /usr/local/include/ImageMagick-7/ /usr/local/include/ImageMagick
【安装ImageMagick(Ubuntu下直接安装)】
Ubuntu下直接安装imagemagick 以及 libmagickwand-dev:
apt-get install imagemagick apt-get install libmagickwand-dev
【安装imagick(源码编译)】
从PECL安装imagick
官网:http://php.net/imagick
下载:https://pecl.php.net/package/imagick
最新版本:imagick-3.4.4
wget http://pecl.php.net/get/imagick-3.4.4.tgz && tar zxvf imagick-3.4.4.tgz && cd imagick-3.4.4 /usr/local/php/bin/phpize && ./configure --with-php-config=/usr/local/php/bin/php-config make && make install
输出:
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-zts-20170718/ Installing header files: /usr/local/php/include/php/
或者使用 remi 库安装时:
phpize && ./configure --with-php-config=/usr/bin/php-config make && make install
输出:
Installing shared extensions: /usr/lib64/php/modules/ Installing header files: /usr/include/php/
从源安装imagick
【设置】
在 php.ini 文件中添加:
; [imagick] extension = "imagick.so"
然后重启服务器即可加载。
【验证】
systemctl restart php-fpm && ldconfig && php -m | grep imagick
输出:
imagick
【排错】
报错:no decode delegate for this image format `JPEG’ @ error/constitute.c/ReadImage/509
参考:https://blog.csdn.net/u014237185/article/details/40487577
查看系统是否有 jpeg 格式:
convert -list format
发现没有 jpeg 。
编译安装 jpeg :
wget http://www.ijg.org/files/jpegsrc.v9b.tar.gz && tar -zxvf jpegsrc.v9b.tar.gz && cd jpeg-9b && ./configure --prefix=/usr --enable-shared && make && make install
路径:/usr/lib64
报错:no decode delegate for this image format `PNG’ @ error/constitute.c/ReadImage/509
查看系统是否有 png 格式:
convert -list format
发现没有 png 。
编译安装 png :
wget https://jaist.dl.sourceforge.net/project/libpng/libpng16/older-releases/1.6.21/libpng-1.6.21.tar.gz && tar -zxvf libpng-1.6.21.tar.gz && cd libpng-1.6.21 && ./configure --prefix=/usr --enable-shared LDFLAGS="-L/usr/lib -lz" && make && make install
路径:/usr/lib64
报错:non-conforming drawing primitive definition `text’ @ error/draw.c/DrawImage/3379
查看系统是否有 txt 格式:
convert -list format
发现没有 txt 。
编译安装 freetype :
wget http://sourceforge.net/projects/freetype/files/freetype2/2.6.5/freetype-2.6.5.tar.gz && tar -zxvf freetype-2.6.5.tar.gz && cd freetype-2.6.5 && ./configure --prefix=/usr --with-png --enable-shared && make && make install
路径:/usr/lib64
编译安装 libtiff :
wget http://download.osgeo.org/libtiff/tiff-4.0.9.tar.gz && tar -zxvf tiff-4.0.9.tar.gz && cd tiff-4.0.9 && ./configure --prefix=/usr && make && make install
路径:/usr/lib64
重新编译安装 Imagemagick :
wget https://sourceforge.net/projects/imagemagick/files/im7-src/ImageMagick-7.0.7-25.tar.gz && tar zxvf ImageMagick-7.0.7-25.tar.gz && cd ImageMagick-7.0.7-25 ./configure --enable-shared --enable-lzw --without-perl --with-modules make && make install
报错:libltdl is required for modules
yum install -y libtool-ltdl-devel
路径:/usr/local/lib/ImageMagick-7.0.7/modules-Q16HDRI/filters
软连接:
ln -s /usr/local/include/ImageMagick-7/ /usr/local/include/ImageMagick
检查 jpeg/png/text 是否已被支持:
convert -list format
可见:
... JPE* JPEG rw- Joint Photographic Experts Group JFIF format (90) JPEG* JPEG rw- Joint Photographic Experts Group JFIF format (90) JPG* JPEG rw- Joint Photographic Experts Group JFIF format (90) JPS* JPEG rw- Joint Photographic Experts Group JFIF format (90) ... PNG* PNG rw- Portable Network Graphics (libpng 1.6.21,1.6.34) See http://www.libpng.org/ for details about the PNG format. PNG00* PNG rw- PNG inheriting bit-depth, color-type from original, if possible PNG24* PNG rw- opaque or binary transparent 24-bit RGB (zlib 1.2.11) PNG32* PNG rw- opaque or transparent 32-bit RGBA PNG48* PNG rw- opaque or binary transparent 48-bit RGB PNG64* PNG rw- opaque or transparent 64-bit RGBA PNG8* PNG rw- 8-bit indexed with optional binary transparency ... TEXT* TXT r-- Text ...
注意:务必重启服务器看效果。
【参考】
参考:http://openskill.cn/article/498
参考:https://suiyuanjian.com/545.html