本文提及Linux系統(tǒng)版本 CentOS7
成都創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括錫山網(wǎng)站建設(shè)、錫山網(wǎng)站制作、錫山網(wǎng)頁(yè)制作以及錫山網(wǎng)絡(luò)營(yíng)銷策劃等。多年來(lái),我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,錫山網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到錫山省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!MAC 系統(tǒng)重新安裝一下imagick?就好了,似乎等于更新了我之前的版本就有效了。
brew reinstall imagemagick
convert -list format | grep webp
Centos 安裝了Imagick但是不含webp, 參考前一篇安裝文章php 安裝imagick圖形處理庫(kù)
yum remove ImageMagick
wget https://www.imagemagick.org/download/ImageMagick.tar.gz
tar zxvf ImageMagick.tar.gz
?
cd ImageMagick-7.0.9-26/
?
./configure --with-webp
./libtool: line 1765: warning: setlocale: LC_CTYPE: cannot change locale (UTF-8): No such file or directory
這個(gè)問(wèn)題,客戶端導(dǎo)致的,別找服務(wù)器方案
MAC下設(shè)置下就好了
轉(zhuǎn)存失敗
重新上傳
取消
安裝webp
yum -y install libwebp-devel libwebp-tools
#php -m| grep imagick
?
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/imagick.so' - /usr/lib64/php/modules/imagick.so: cannot open shared object file: No such file or directory in Unknown on line 0
報(bào)錯(cuò)了
卸載之前安裝的
pecl uninstall imagick
再安裝一遍
pecl install imagick
php -m| grep imagick
好了
php --ri imagick
?
imagick
?
imagick module => enabled
imagick module version => 3.4.4
imagick classes => Imagick, ImagickDraw, ImagickPixel, ImagickPixelIterator, ImagickKernel
Imagick compiled with ImageMagick version => ImageMagick 7.0.9-26 Q16 x86_64 2020-02-26 https://imagemagick.org
Imagick using ImageMagick library version => ImageMagick 7.0.9-26 Q16 x86_64 2020-02-26 https://imagemagick.org
ImageMagick copyright => ? 1999-2020 ImageMagick Studio LLC
ImageMagick release date => 2020-02-26
ImageMagick number of supported formats: => 239
ImageMagick supported formats => 3FR, 3G2, 3GP, A, AAI, AI, ART, ARW, 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, EPT, EPT2, EPT3, ERF, FAX, FILE, FITS, FLV, FRACTAL, FTP, FTS, G, G3, G4, GIF, GIF87, GRADIENT, GRAY, GRAYA, GROUP4, 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, 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, POCKETMOD, PPM, PS, PS2, PS3, PSB, PSD, PTIF, PWP, 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, SUN, SVG, SVGZ, TEXT, TGA, THUMBNAIL, TIFF, TIFF64, TILE, TIM, TM2, TTC, TTF, TXT, UBRL, UBRL6, UIL, UYVY, VDA, VICAR, VID, VIFF, VIPS, VST, WBMP, WMV, WPG, X, X3F, XBM, XC, XCF, XPM, XPS, XV, XWD, Y, YCbCr, YCbCrA, YUV
?
Directive => Local Value => Master Value
imagick.locale_fix => 0 => 0
imagick.skip_version_check => 0 => 0
imagick.progress_monitor => 0 => 0
header('Content-type: image/jpeg');
date_default_timezone_set("Asia/Shanghai");
$image = new Imagick('a.png');
$image->thumbnailImage(100, 0);
echo $image;
5.2 轉(zhuǎn)換,把png 改成jpg
?
date_default_timezone_set("Asia/Shanghai");
$thumb = new Imagick();
$thumb->readImage('a.png');
$thumb->writeImage('b.jpg');
$thumb->clear();
$thumb->destroy();
?>
5.3 轉(zhuǎn)換,把png 改成webp
?
date_default_timezone_set("Asia/Shanghai");
$thumb = new Imagick();
$thumb->readImage('a.png');
$thumb->writeImage('b.webp');
$thumb->clear();
$thumb->destroy();
?>
-rw-r--r-- 1 root root 33761 Feb 26 16:59 a.png
-rwxrwxrwx 1 root root 10158 Feb 26 16:50 a.webp
-rw-r--r-- 1 apache apache 46142 Feb 26 17:37 b.jpg
-rw-r--r-- 1 apache apache 10158 Feb 26 17:38 b.webp
-rwxrwxrwx 1 root root 172 Feb 26 17:38 webp.php
可以看到 b.webp的文件比b.jpg的文件小很多,說(shuō)明成功的轉(zhuǎn)換了webp文件。
5.4 用一下setImageFormat 設(shè)置webp
當(dāng)使用了setImageFormat才能看出來(lái)webp其實(shí)沒有安裝成功。
date_default_timezone_set("Asia/Shanghai");
$thumb = new Imagick();
$thumb->readImage('a.png');
$thumb->setImageFormat("webp");
$thumb->writeImage('b.webp');
$thumb->clear();
$thumb->destroy();
Fatal error: Uncaught exception 'ImagickException' with message 'Unable to set image format' in /www/webp.php:6 Stack trace: #0 /www/javaer.com/webp.php(6): Imagick->setimageformat('webp') #1 {main} thrown in /www/javaer.com/webp.php on line 6
./configure --with-webp=yes
make
make install
6.2 查看,更新webp
convert -list format | grep WebP
還是沒有
更新一下lib的綁定【很關(guān)鍵,我折騰了好幾遍,感覺就是差了這一步】
ldconfig /usr/local/lib
convert -list format | grep WebP
好了。
特別關(guān)鍵,在重裝以后要執(zhí)行這句話。
ldconfig /usr/local/lib
6.2 看看php的插件是否支持webp
服務(wù)器上執(zhí)行
php --ri imagick | grep WEBP
沒有
那么重新安裝php的imagick
pecl uninstall imagick
pecl install imagick
php --ri imagick | grep WEBP
有了
轉(zhuǎn)存失敗
重新上傳
取消
6.3 寫個(gè)test.php 看看phpinfo里有沒有
但是phpinfo()里沒有
重啟動(dòng)fpm, 重啟動(dòng)nginx
phpinfo也有了
轉(zhuǎn)存失敗
重新上傳
取消
當(dāng)php使用了setImageFormat 設(shè)置webp的格式時(shí)候,就不會(huì)報(bào)錯(cuò)了。徹底安裝成功。
webp官方
https://developers.google.com/speed/webp/download
https://java-er.com/blog/php-webp-imagick/
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。