运维日志您现在的位置是:首页 > 博客日志 > 运维日志

centos 6 php安装ImageMagick、imagick支持webp格式图片处理

<a href='mailto:'>微wx笑</a>的头像微wx笑 2022-03-19运维日志 3 0关键字: centos  php  imagick  webp  ImageMagick  

ImageMagick是一个处理图片的程序,在使用PHP的过程中,调用与ImageMagick对应的imagick插件就可以让PHP获得更好的处理图片的能力。网上相关文章很多,但是很多都已经过时了。

我使用的php5.4,看网上说这个版本是支持webp文件的,但是默认并不支持,需要在编译安装的时候通过选项指定开启才行。Dge无知

觉得php_GD2的图像处理能力不如imagemagick,所以还是选择试试imagemagick。Dge无知

注意:imagemagick,在PHP中是:imagickDge无知

本文讲的是Linux下安装imagemagick,如果你是Windows系统,请参考:https://imagemagick.org/script/download.php#windows,下载可执行文件安装。
Dge无知

imagick PECL 扩展在 Windows 版本中是预编译的,可从以下网站获得 » http://windows.php.net/downloads/pecl/releases/Dge无知

如果你是MAC 系统,我看到过一篇文章,应该可以帮到你:https://blog.csdn.net/ge2468/article/details/104531273Dge无知


Dge无知

如果你安装了多个php版本,可能要参考这个:centos 6下php多版本共存,安装ImageMagick、imagick的方法Dge无知

查看centos系统版本

cat /etc/issue
CentOS release 6.10 (Final)

查看php是否支持imagick

在网站目录下新建一个test.phpDge无知

内容Dge无知

<?
phpinfo();

访问这个文件,看看输出中有没有imagick相关内容,具体内容可以看本文后面测试的部分。Dge无知

安装imagemagick

由于是Linux系统,版本又比较旧了,缺少相关支持,只能是基于源码来安装Dge无知

下载源码Dge无知

wget https://download.imagemagick.org/ImageMagick/download/ImageMagick.tar.gz --no-check-certificate

安装Dge无知

tar zxvf ImageMagick.tar.gz 
cd ImageMagick-7.1.0-27/
./configure --prefix=/usr
make
sudo make install
ldconfig

如果你的Linux版本比较新,会有更简单的安装方式,参考官方网站:https://imagemagick.org/script/download.phpDge无知

ldconfig /usr/local/libDge无知

hash -rDge无知

安装成功之后可以用以下命令查看软件版本号:Dge无知

convert -version

可以用以下命令查看支持的资源类型:Dge无知

convert -list format


Dge无知

安装imagick

imagick的安装非常简单,只需要执行下面一条命令就可以了Dge无知

pecl install imagick

执行完全最后几行显示Dge无知

Build process completed successfully
Installing '/www/server/php/54/lib/php/extensions/no-debug-non-zts-20100525/imagick.so'
Installing '/www/server/php/54/include/php/ext/imagick/php_imagick_shared.h'
install ok: channel://pecl.php.net/imagick-3.7.0
Extension imagick enabled in php.ini

可以看到“Extension imagick enabled in php.ini”,连php.ini配置文件都不需要我们修改,只需要重新启动php服务就可以了。Dge无知


Dge无知

以下三行分别表示 重新启动一下php、php重新链接一下库、查看imagick是否加载成功。若输入最后一行命令后无任何反馈则代表步骤出错:Dge无知

systemctl restart php-fpm
ldconfig
php -m | grep imagick

有关pecl命令的更多内容,请参考:PECL 扩展库安装Dge无知

测试

再次查看phpinfo,发现多了 imagick 一节Dge无知

imagickDge无知

imagick moduleenabled
imagick module version3.7.0
imagick classesImagick, ImagickDraw, ImagickPixel, ImagickPixelIterator, ImagickKernel
Imagick compiled with ImageMagick versionImageMagick 7.1.0-27 Q16-HDRI x86_64 2022-03-04 https://imagemagick.org
Imagick using ImageMagick library versionImageMagick 7.1.0-27 Q16-HDRI x86_64 2022-03-04 https://imagemagick.org
ImageMagick copyright(C) 1999 ImageMagick Studio LLC
ImageMagick release date2022-03-04
ImageMagick number of supported formats:245
ImageMagick supported formats3FR, 3G2, 3GP, A, AAI, AI, APNG, ART, ARW, ASHLAR, AVI, AVS, B, BGR, BGRA, BGRO, BMP, BMP2, BMP3, BRF, C, CAL, CALS, CANVAS, CAPTION, CIN, CIP, CLIP, CMYK, CMYKA, CR2, CR3, CRW, CUBE, CUR, CUT, DATA, DCM, DCR, DCRAW, DCX, DDS, DFONT, DNG, DPX, DXT1, DXT5, EPDF, EPI, EPS, EPS2, EPS3, EPSF, EPSI, ERF, FARBFELD, FAX, FF, FILE, FITS, FL32, FLV, FRACTAL, FTP, FTS, FTXT, G, G3, G4, GIF, GIF87, GRADIENT, GRAY, GRAYA, HALD, HDR, HISTOGRAM, HRZ, HTM, HTML, HTTP, HTTPS, ICB, ICO, ICON, IIQ, INFO, INLINE, IPL, ISOBRL, ISOBRL6, JNG, JNX, JPE, JPEG, JPG, JPS, JSON, K, K25, KDC, LABEL, M, M2V, M4V, MAC, MAP, MASK, MAT, MATTE, MEF, MIFF, MKV, MNG, MONO, MOV, MP4, MPC, MPEG, MPG, MRW, MSL, MSVG, MTV, MVG, NEF, NRW, NULL, O, ORA, ORF, OTB, OTF, PAL, PALM, PAM, PANGO, PATTERN, PBM, PCD, PCDS, PCL, PCT, PCX, PDB, PDF, PDFA, PEF, PES, PFA, PFB, PFM, PGM, PGX, PHM, PICON, PICT, PIX, PJPEG, PLASMA, PNG, PNG00, PNG24, PNG32, PNG48, PNG64, PNG8, PNM, POCKETMOD, PPM, PS, PS2, PS3, PSB, PSD, PWP, QOI, R, RADIAL-GRADIENT, RAF, RAS, RAW, RGB, RGB565, RGBA, RGBO, RGF, RLA, RLE, RMF, RW2, SCR, SCREENSHOT, SCT, SFW, SGI, SHTML, SIX, SIXEL, SPARSE-COLOR, SR2, SRF, STEGANO, STRIMG, SUN, SVG, SVGZ, TEXT, TGA, THUMBNAIL, TILE, TIM, TM2, TTC, TTF, TXT, UBRL, UBRL6, UIL, UYVY, VDA, VICAR, VID, VIFF, VIPS, VST, WBMP, WEBM, WEBP, WMV, WPG, X, X3F, XBM, XC, XCF, XPM, XPS, XV, XWD, Y, YAML, YCbCr, YCbCrA, YUV


Dge无知

DirectiveLocal ValueMaster Value
imagick.allow_zero_dimension_images00
imagick.locale_fix00
imagick.progress_monitor00
imagick.set_single_thread11
imagick.shutdown_sleep_count1010
imagick.skip_version_check00

使用imagick生成缩略图

//把图片a.png 缩小为宽度100的图片
header('Content-type: image/jpeg');
date_default_timezone_set("Asia/Shanghai");
$image = new Imagick('a.png');
$image->thumbnailImage(100, 0);
echo $image;

可以看出用Imagick处理图片真的是很简单。Dge无知


Dge无知

如果你有多个PHP版本共存,参考:centos 6下php多版本共存,安装imagick的方法Dge无知


Dge无知

相关参考:

PHP 安装 magick 模块,并开启 webp 格式支持,看了那么多,就这个是比较靠谱的。Dge无知

Mac系统安装imagick支持webp php处理Dge无知


Dge无知

Linux 安装 ImageMagick,并支持PNG、JPEG格式Dge无知

本文由 微wx笑 创作,采用 署名-非商业性使用-相同方式共享 4.0 许可协议,转载请附上原文出处链接及本声明。
原文链接:https://www.ivu4e.cn/blog/service/2022-03-19/1103.html

很赞哦! () 有话说 ()