首先須要安裝 ImageMagick ,由於 imagick 是一個能夠供 PHP 調用 ImageMagick 功能的PHP擴展。(目前最新版本是:ImageMagick-6.8.9-5-Q16-x64-dll.exe)php
安裝目錄不能有空格,我我的是安裝在 C 盤根目錄:html
C:\ImageMagickapache
一路默認安裝便可,安裝完畢後打開 CMD 命令行界面,輸入:convert ,並按回車,若是能看到一大堆的內容則表示安裝成功。windows
若是提示「 convert 不是內部或外部命令,也不是可運行的程序或批處理文件」或者提示「請輸入轉換的盤符」( convert 是一個默認的將 FAT32 轉換到 NTFS 的系統命令)那麼你須要本身將 ImageMagick 的安裝路徑添加到系統路徑。測試
個人電腦 -> 單擊右鍵 -> 屬性 -> 高級 -> 環境變量 -> 系統變量 -> 找到「Path」 -> 選中並點擊進行編輯 -> 把你的安裝路徑添加進去。spa
點擊這裏下載,注意下載的時候要下對應的 PHP 版本,同時注意系統是32位仍是64位,以及 PHP 是 NTS 版仍是 TS 版(目前最新穩定版是 3.1.2 ,關於如何判斷 PHP 是 NTS 版仍是 TS 版,可經過 phpinfo 查看其中的 Thread Safety 項,若是是 enabled 就表明是 TS 版,否之則就是 NTS 版).net
將下載的壓縮包解壓,找到 php_imagick.dll 文件,把它放到 PHP 的擴展目錄裏,而後打開 php.ini 文件,在對應的位置添加如下一行:命令行
extension=php_imagick.dll調試
保存退出後並重啓電腦,確保生效。router
若是未生效,則將壓縮包裏全部「CORE_RL_*.dll」文件複製到 php 根目錄,如:D:\php5.6
若是一切正常,重啓後在 phpinfo 裏應該能看到 imagick 項,如:
若是找不到,則返回第一步,更換不一樣版本的 ImageMagick 從新安裝並從新調試。
OK,到這一步能夠開始編寫代碼了,過程就不細說了,直接上代碼
error_reporting(E_ERROR | E_WARNING); $im = new Imagick('1.psd'); $im->setImageIndex(0); $im->setIteratorIndex(0); $im->stripImage(); //去除圖片信息 $im->setImageCompressionQuality(80); //圖片質量 $im->writeImage('1.jpg');
以上代碼已經通過測試能夠正確生成出一張 1.jpg 的圖片。
建議縮略圖仍是以 jpg 格式,由於 png 格式不支持壓縮,我在測試的時候使用 30M 的 PSD 文件,生成出來的 png 縮略圖有 3M 多,而 jpg 只有 200KB 左右,而且生成 png 圖片的速度明顯很慢,大概須要3,4秒。
另外還作了極端測試,用了一近 600M 的 PSD 文件生成 jpg 縮略圖,速度基本在2秒內,文件大小不到 2.5M ,因爲並未對圖片進行尺寸的修改,因此最終生成文件的體積能夠根據實際狀況再減少。
除了 PSD 文件,我還另外嘗試了一些其它格式,好比 MP4 、AVI 等視頻格式,但生成速度超級慢。最後發現比較實用的就是生成 PDF 文件的縮略圖,但處理 PDF 文件前,須要安裝 Ghostscript ,而後總體的代碼基本和生成 PSD 的代碼同樣
$im = new Imagick(); $im->readImage('D:/soft/wamp/www/test/1.pdf[0]'); //echo $im->getNumberImages(); $im->writeImages('D:/soft/wamp/www/test/1.jpg', false);
一、php 圖像處理庫 ImageMagick windows 下的安裝
五、解決 GhostScript 沒法打開中文 PDF 的問題
六、Installing Imagick for PHP 5.6.3 and Apache 2.4 on Win 7(2016/09/19 新增)