close

 

PHP + Imagick

要在Windows環境中使用PHP開發圖片功能,就必須用到 GDImagick

在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 這個版本(目前最新版)

有網友說使用舊版安裝也可以,但我使用舊版會有錯誤產生,反而用新版可以運行(舊版載點)

imagick1

2. 下載dll檔案,下載之前先要取得一些server上的資訊,使用phpinfo()指令取得。

首先是取得編譯方式(Compiler)及系統架構(Architecture),即便你是64bit系統,在運行apache時仍是以32位元運作

所以會出現x86架構是正常的

imagick2

再來是取得線程安全(Thread Safety),我的是開啟的(enabled = ts or disable = nts)

imagick3

 

因為我使用 3.3.0rc2 這個版本,所以進入這個目錄,打開後會有許多dll檔案可以選擇,這時候就需要用到你的phpinfo資訊啦

imagick4

 

依照phpinfo得到的資訊,可以知道我需要的dll檔案是: 5.5 + ts + vc11 + x86 的dll檔案,下載它吧!

 

3. 下載完成並解壓縮,打開取得的目錄,將php_imagick.dll檔案丟到 php\ext 目錄下,並在php.ini中引入這個dll

imagick5

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竟然就失效了,為了怕悲劇重演,就把重新安裝的過程記錄下來...

要成功裝起來還真不容易........

arrow
arrow

    CccKaAsS 發表在 痞客邦 留言(0) 人氣()