centos 6 php安装ImageMagick、imagick支持webp格式图片处理
微wx笑 2022-03-19【运维日志】 3 0关键字: centos php imagick webp ImageMagick
ImageMagick是一个处理图片的程序,在使用PHP的过程中,调用与ImageMagick对应的imagick插件就可以让PHP获得更好的处理图片的能力。网上相关文章很多,但是很多都已经过时了。
我使用的php5.4,看网上说这个版本是支持webp文件的,但是默认并不支持,需要在编译安装的时候通过选项指定开启才行。
觉得php_GD2的图像处理能力不如imagemagick,所以还是选择试试imagemagick。
注意:imagemagick,在PHP中是:imagick
本文讲的是Linux下安装imagemagick,如果你是Windows系统,请参考:https://imagemagick.org/script/download.php#windows,下载可执行文件安装。
imagick PECL 扩展在 Windows 版本中是预编译的,可从以下网站获得 » http://windows.php.net/downloads/pecl/releases/
如果你是MAC 系统,我看到过一篇文章,应该可以帮到你:https://blog.csdn.net/ge2468/article/details/104531273
如果你安装了多个php版本,可能要参考这个:centos 6下php多版本共存,安装ImageMagick、imagick的方法
查看centos系统版本
cat /etc/issue CentOS release 6.10 (Final)
查看php是否支持imagick
在网站目录下新建一个test.php
内容
<? phpinfo();
访问这个文件,看看输出中有没有imagick相关内容,具体内容可以看本文后面测试的部分。
安装imagemagick
由于是Linux系统,版本又比较旧了,缺少相关支持,只能是基于源码来安装
下载源码
wget https://download.imagemagick.org/ImageMagick/download/ImageMagick.tar.gz --no-check-certificate
安装
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.php
ldconfig /usr/local/lib
hash -r
安装成功之后可以用以下命令查看软件版本号:
convert -version
可以用以下命令查看支持的资源类型:
convert -list format
安装imagick
imagick的安装非常简单,只需要执行下面一条命令就可以了
pecl install imagick
执行完全最后几行显示
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服务就可以了。
以下三行分别表示 重新启动一下php、php重新链接一下库、查看imagick是否加载成功。若输入最后一行命令后无任何反馈则代表步骤出错:
systemctl restart php-fpm ldconfig php -m | grep imagick
有关pecl命令的更多内容,请参考:PECL 扩展库安装
测试
再次查看phpinfo,发现多了 imagick 一节
imagick module | enabled |
---|---|
imagick module version | 3.7.0 |
imagick classes | Imagick, ImagickDraw, ImagickPixel, ImagickPixelIterator, ImagickKernel |
Imagick compiled with ImageMagick version | ImageMagick 7.1.0-27 Q16-HDRI x86_64 2022-03-04 https://imagemagick.org |
Imagick using ImageMagick library version | ImageMagick 7.1.0-27 Q16-HDRI x86_64 2022-03-04 https://imagemagick.org |
ImageMagick copyright | (C) 1999 ImageMagick Studio LLC |
ImageMagick release date | 2022-03-04 |
ImageMagick number of supported formats: | 245 |
ImageMagick supported formats | 3FR, 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 |
Directive | Local Value | Master Value |
---|---|---|
imagick.allow_zero_dimension_images | 0 | 0 |
imagick.locale_fix | 0 | 0 |
imagick.progress_monitor | 0 | 0 |
imagick.set_single_thread | 1 | 1 |
imagick.shutdown_sleep_count | 10 | 10 |
imagick.skip_version_check | 0 | 0 |
使用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处理图片真的是很简单。
如果你有多个PHP版本共存,参考:centos 6下php多版本共存,安装imagick的方法
相关参考:
PHP 安装 magick 模块,并开启 webp 格式支持,看了那么多,就这个是比较靠谱的。
Linux 安装 ImageMagick,并支持PNG、JPEG格式
本文由 微wx笑 创作,采用 署名-非商业性使用-相同方式共享 4.0 许可协议,转载请附上原文出处链接及本声明。
原文链接:https://www.ivu4e.cn/blog/service/2022-03-19/1103.html