imagick 拓展的下載地址
- https://windows.php.net/downloads/pecl/releases/imagick/ 可惜的是這個地址最新版沒有php7.2, 如果是7.1可以推薦
- https://windows.php.net/downloads/pecl/snaps/imagick/ 這個snaps 版本支持php7.2, 此時最新為3.4.3
當前服務器為NGINX, API320170718,NTS,VC15, 故PHP使用NTS版本,由此下載拓展:
https://windows.php.net/downloads/pecl/snaps/imagick/3.4.3/php_imagick-3.4.3-7.2-nts-vc15-x86.zip
拓展安裝
-
解壓壓縮包得到如下一大坨文件
$ ls php_imagick-3.4.3-7.2-ts-vc15-x64 ChangeLog CORE_RL_lqr_.pdb CORE_RL_zlib_.pdb CORE_RL_bzlib_.dll CORE_RL_MagickCore_.dll CREDITS CORE_RL_bzlib_.pdb CORE_RL_MagickCore_.pdb LICENSE CORE_RL_glib_.dll CORE_RL_MagickWand_.dll LICENSE.IMAGEMAGICK CORE_RL_glib_.pdb CORE_RL_MagickWand_.pdb php_imagick.dll CORE_RL_lcms_.dll CORE_RL_ttf_.dll php_imagick.pdb CORE_RL_lcms_.pdb CORE_RL_ttf_.pdb CORE_RL_lqr_.dll CORE_RL_zlib_.dll
需要做一個操作就是,刪除非dll文件,因為沒啥用
-
復制
php_imagick.dll
到拓展的ext
目錄, 並在php.ini中添加相應的配置,其他的dll並沒有什么作用 -
測試執行一下,結果顯示如下
$ php --ri imagick imagick imagick module => enabled imagick module version => @PACKAGE_VERSION@ imagick classes => Imagick, ImagickDraw, ImagickPixel, ImagickPixelIterator, ImagickKernel Imagick compiled with ImageMagick version => ImageMagick 7.0.7-11 Q16 x64 2017-11-23 http://www.imagemagick.org Imagick using ImageMagick library version => ImageMagick 7.0.7-11 Q16 x64 2017-11-23 http://www.imagemagick.org ImageMagick copyright => Copyright (C) 1999-2015 ImageMagick Studio LLC ImageMagick release date => 2017-11-23 ImageMagick number of supported formats: => 0 Directive => Local Value => Master Value imagick.locale_fix => 0 => 0 imagick.skip_version_check => 0 => 0 imagick.progress_monitor => 0 => 0
//PHP 顯示對應的報錯 NoDecodeDelegateForThisImageFormat `PNG' @ error\/constitute.c\/ReadImage\/509"
而且這時候,無論你怎么復制原本的dll都沒效果。所以這個時候要了解到,只有原本的幾個dll是什么用處都沒有的。
-
下載對應的imagick文件,比如這里是vc15 x86的版本,正好官網有提供依賴,(實際上這條是錯誤的到道路),官網的依賴不能解決問題
https://windows.php.net/downloads/pecl/deps/ImageMagick-7.0.7-11-vc15-x86.zip
下載解壓,並添加路徑到PATH中,php正常運行無錯誤,但實際查看細節就發現,還是和上面一樣
-
檢查發現ImageMagick的版本為
7.0.7-11 Q16 x64
, 實際上我只要去官網下載對應的版本即可。不一致的版本 https://www.imagemagick.org/download/binaries/ImageMagick-7.0.8-5-Q16-x86-dll.exe
安裝Imagick, 同時添加ImageMagick-7.0.8-Q16\modules\coders
到系統Path中如果下載的版本不一致,執行時會出現一個警告,如下:但此時已經能正常運行,也可以看到
7.0.8-5 Q16 x86 2
顯示了出來$php --ri imagick PHP Warning: Version warning: Imagick was compiled against ImageMagick version 1799 but version 1800 is loaded. Imagick will run but may behave surprisingly in Unknown on line 0 Warning: Version warning: Imagick was compiled against ImageMagick version 1799 but version 1800 is loaded. Imagick will run but may behave surprisingly in Unknown on line 0 imagick imagick module => enabled imagick module version => @PACKAGE_VERSION@ imagick classes => Imagick, ImagickDraw, ImagickPixel, ImagickPixelIterator, ImagickKernel Imagick compiled with ImageMagick version => ImageMagick 7.0.7-11 Q16 x64 2017-11-23 http://www.imagemagick.org Imagick using ImageMagick library version => ImageMagick 7.0.8-5 Q16 x64 2018-07-05 http://www.imagemagick.org ImageMagick copyright => Copyright (C) 1999-2018 ImageMagick Studio LLC ImageMagick release date => 2018-07-05 ImageMagick number of supported formats: => 241 ImageMagick supported formats => 3FR, 3G2, 3GP, AAI, AI, ART, ARW, AVI, AVS, BGR, BGRA, BGRO, BIE, BMP, BMP2, BMP3, BRF, CAL, CALS, CANVAS, CAPTION, CIN, CIP, CLIP, CLIPBOARD, CMYK, CMYKA, CR2, CRW, CUR, CUT, DCM, DCR, DCX, DDS, DFONT, DJVU, DNG, DOT, DPS, DPX, DXT1, DXT5, EMF, EPDF, EPI, EPS, EPS2, EPS3, EPSF, EPSI, EPT, EPT2, EPT3, ERF, EXR, FAX, FILE, FITS, FLIF, FPX, FRACTAL, FTP, FTS, G3, G4, GIF, GIF87, GRADIENT, GRAY, GRAYA, GROUP4, GV, HALD, HDR, HEIC, HISTOGRAM, HRZ, HTM, HTML, HTTP, HTTPS, ICB, ICO, ICON, IIQ, INFO, INLINE, IPL, ISOBRL, ISOBRL6, J2C, J2K, JBG, JBIG, JNG, JNX, JP2, JPC, JPE, JPEG, JPG, JPM, JPS, JPT, JSON, K25, KDC, LABEL, 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, ORF, OTB, OTF, PAL, PALM, PAM, PANGO, PATTERN, PBM, PCD, PCDS, PCL, PCT, PCX, PDB, PDF, PDFA, PEF, PES, PFA, PFB, PFM, PGM, PGX, PICON, PICT, PIX, PJPEG, PLASMA, PNG, PNG00, PNG24, PNG32, PNG48, PNG64, PNG8, PNM, PPM, PS, PS2, PS3, PSB, PSD, PTIF, PWP, RADIAL-GRADIENT, RAF, RAS, RAW, RGB, RGBA, RGBO, RGF, RLA, RLE, RMF, RW2, SCR, SCREENSHOT, SCT, SFW, SGI, SHTML, SIX, SIXEL, SPARSE-COLOR, SR2, SRF, STEGANO, SUN, SVG, SVGZ, TEXT, TGA, THUMBNAIL, TIFF, TIFF64, TILE, TIM, TTC, TTF, TXT, UBRL, UBRL6, UIL, UYVY, VDA, VICAR, VID, VIFF, VIPS, VST, WBMP, WEBP, WMF, WMV, WPG, X3F, XBM, XC, XCF, XPM, XPS, XV, YCbCr, YCbCrA, YUV Directive => Local Value => Master Value imagick.locale_fix => 0 => 0 imagick.skip_version_check => 0 => 0 imagick.progress_monitor => 0 => 0
-
正確的歷史版本下載
http://ftp.icm.edu.pl/packages/ImageMagick/binaries/ImageMagick-7.0.7-11-Q16-x86-dll.exe
同樣,這里可以找到許多歷史版本下載,自己去處理即可,安裝完畢后需要對應的將
ImageMagick-7.0.7-Q16
添加到PATH
中,和7.0.8
有所差異,看起來是文件結構有所調整。
完成安裝以后
- 對應的拓展PECL官網有下載,各個不同的版本目錄多找找。
- 官網的依賴文件夾的數據Imagick壓縮包並不能直接作為依賴源使用。
- Imagick使用了不同的版本可能能運行,但會有警告。
- 下載需要使用
-Q16-x64-dll.exe
的安裝版本,才有完整的數據。