前面在一個項目開發中用到了ImageMagick,rails中使用RMagick生成驗證碼, 我們自己的測試環境都正常,然後就按照我們開發環境的安裝方法安裝了客戶的測試環境,但在處理jpeg類型圖檔的時候報錯了。回頭一看配置log,居然不支援jpeg。
錯誤提示 : ArgumentError (unknown format: JPG)
安裝 ImageMagick 檢視安裝資訊
Ghostscript lib --with-gslib=no no
Graphviz --with-gvc=yes no
JBIG --with-jbig=yes no
JPEG v1 --with-jpeg=yes no
JPEG-2000 --with-jp2=yes no
LCMS v1 --with-lcms=yes no
LCMS v2 --with-lcms2=yes no
LQR --with-lqr=yes no
LZMA --with-lzma=yes no
Magick++ --with-magick-plus-plus=yes yes
OpenEXR --with-openexr=yes no
PERL --with-perl=no no
PNG --with-png=yes yes
RSVG --with-rsvg=yes no
TIFF --with-tiff=yes no
Windows fonts --with-windows-font-dir= none
WMF --with-wmf=yes no
X11 --with-x= yes
XML --with-xml=yes yes
ZLIB --with-zlib=yes yes
發現--with-jpeg=yes 為no
ImageMagick 是變換圖檔的庫群,支援perl,C++,JAVA等等語言。可以對圖檔進行各種各樣的加工處理。
ImageMagick的安裝方法有RPM方式和SOURCE方式。目前最新版是ImageMagick-6.5.5。可以從這個網址下載下傳: http://www.imagemagick.org
安裝步驟:
1.ssh連接配接Linux伺服器
2.把下載下傳的安裝檔案放到适當的檔案夾下。例如:cd /usr/local/src。或者直接在伺服器上下載下傳。
3.解壓下載下傳檔案
tar -zxvf ImageMagick-6.5.5-7.tar.gz
5.移動到解壓後的檔案夾裡面
cd ImageMagick-6.3.5-7
6.configure配置
./configure
可以先執行 ./configure --help 看看有哪些配置參數。然後自己根據需要設定。
我們一般的圖檔處理都要求支援幾種常見的圖檔形式:jpeg,png,gif。
檢視配置後結果:yes的話支援,no就是不支援
JPEG v1 --with-jpeg=yes yes
PNG --with-png=yes yes
ZLIB --with-zlib=yes yes
如果是no的情況,用過以下指令檢視是否安裝了相應的庫。
rpm -qa|grep jpeg //zlib的用zlib, png的時候用libpng
執行結果:libjpeg-6b-33
一看執行結果确實是安裝了jpeg庫,但為什麼不識别呢?最後網上查了一下半天,發現必須要安裝libjpeg-devel庫。有的系統可能預設已經安裝了,是以可能沒在意。知道原因就好辦了,網上下載下傳libjpeg-devel庫RPM安裝檔案,rpm安裝。
安裝完後,再次配置ImageMagick,這下配置結果裡面變成yes了。
7.編譯
make
8.安裝
install
這樣ImageMagick就安裝完了。
如果是用java開發的話,需要安裝JMagick。從這裡下載下傳:ftp://ftp.imagemagick.org/pub/ImageMagick/java/
安裝JMagick的時候需要主要的JAVA_HOME環境變量是不是和開發用的JDK版本一緻,因為有的伺服器有多個JDK版本,JMagick預設是用環境變量版本來編譯的,如果版本不一緻的話可能報版本不一緻錯誤。
具體的圖檔支援需要什麼庫等資訊可以從官方網站檢視:http://www.imagemagick.org/script/formats.php