PHP + Imagick
要在Windows環境中使用PHP開發圖片功能,就必須用到 GD 或 Imagick
在PHP 4.3 之後的版本都有內建GD library ,所以在使用上比較沒有問題
租用VPS也不須要另外請供應商安裝GD,幾乎不會碰到問題
但Imagick就不是每一台伺服器都有安裝,必須自行安裝起來做處理
可以用 extension_loaded 函數判斷Imagick是否有安裝
if(extension_loaded('imagick')) { echo 'ImageMagick is load.'; }else { echo 'ImageMagick unload.'; }
安裝 Imagick 在 Windows8
由於在使用GD處理PNG透明圖檔時發現一些問題,在找不到方法解決下,決定使用Imagick試試看
但安裝過程有些繁雜,所以寫了這篇記錄下
環境: Win8 64bit + Apache 2.4 + PHP 5.5
1. 先到Imagick官網下載Windows專用的二進制版本 (Download)
我使用的是 ImageMagick-6.9.2-5-Q16-x86-dll.exe 這個版本(目前最新版)
有網友說使用舊版安裝也可以,但我使用舊版會有錯誤產生,反而用新版可以運行(舊版載點)
2. 下載dll檔案,下載之前先要取得一些server上的資訊,使用phpinfo()指令取得。
首先是取得編譯方式(Compiler)及系統架構(Architecture),即便你是64bit系統,在運行apache時仍是以32位元運作
所以會出現x86架構是正常的
再來是取得線程安全(Thread Safety),我的是開啟的(enabled = ts or disable = nts)
因為我使用 3.3.0rc2 這個版本,所以進入這個目錄,打開後會有許多dll檔案可以選擇,這時候就需要用到你的phpinfo資訊啦
依照phpinfo得到的資訊,可以知道我需要的dll檔案是: 5.5 + ts + vc11 + x86 的dll檔案,下載它吧!
3. 下載完成並解壓縮,打開取得的目錄,將php_imagick.dll檔案丟到 php\ext 目錄下,並在php.ini中引入這個dll
4. 將CORE_RL*.dll的檔案全部複製到 apache\bin\ 目錄下 (注:有網友說也要放到 windows\system32下,但我的系統似乎沒作用,你們可以試試看)
5. 安裝 ImageMagick-6.9.2-5-Q16-x86-dll.exe
6. 重啟電腦,重啟之後開啟phpinfo資訊頁,看到Imagick就表示安裝成功了。
--
20161108 補充
在處理pdf格式檔案時, 不小心將imagick又弄壞了.... 不過這次透過另一個國外網友的分享, 又找到一些資訊 (參考文章)
主要是提到, 再裝完官方提供的Imagick 檔案後, 仍會有無法運行的情況(WTF?), 要準備的檔案如下:
最新版的 windows Imagick 安裝程式 (這裡)
我使用的是舊版, ImageMagick-x.x.x-5-Q16-x86-dll.exe 的版本 (雖然系統是64bits, 但由於編譯的PHP是32位元版本, 故選擇x86版本)
Pecl檔案 (這裡) ;
選一個較新的, 且後面附有Windows圖案的DLL下載連結, 我習慣使用3.3.0的版本, 進入該頁後最下方會有DLL List, 請參考您的PHP版本以及PHP info資訊選擇對應的DLL下載
我是使用 5.5 Thread Safe (TS) x86 這個版本
完整的編譯完成檔案 (這裡)
該網友提到的重點在這邊, 原本下載來的檔案內, 會缺少一些DLL檔造成在使用的時候報錯, 所以我們從這邊來取得完整的DLL
我下載 ImageMagick-6.9.3-7-vc11-x86.zip 這個版本
步驟:
1. 解壓縮php_imagick-3.3.0-5.5-ts-vc11-x86, 把php_imagick.dll 丟到 php/ext 這個目錄下
2. 把php_imagick-3.3.0-5.5-ts-vc11-x86 下的 CORE_RL*.dll 檔案丟到 apache/bin 下(有網友說 windows/system32下, 但我自己放system32是不會有作用)
3. 把ImageMagick-6.9.3-7-vc11-x86/bin/ 下的 所有CORE_RL*.dll 檔案 一樣丟到apache/bin下 (or system32)
4. 安裝ImageMagick-x.x.x-5-Q16-x86-dll.exe
5. 重新開機 檢查phpinfo()有沒有 Imagick 的資訊
--
後記: 其實第一次安裝的時候沒有打算做紀錄...但是前幾天系統更新後Imagick竟然就失效了,為了怕悲劇重演,就把重新安裝的過程記錄下來...
要成功裝起來還真不容易........