最近在服務器上部署了HapiCMS的產品,因為其對圖片的壓縮是采用ImageMagick實現的,所以需要在服務器上面安裝ImageMagick與jmagick,將操作的過程寫了下來,和大家分享下,其中包含rpm方式安裝、linux32位安裝ImageMagick與jmagick、linux64位安裝ImageMagick與jmagick,如果大家有什麼問題可以進行留言,有時間的話會及時進行回復。
ImageMagick是用C語言開發圖片處理程序。可以對圖片進行改變大小、旋轉、銳化、減色或增加特效等操作。對圖片的操作,即可以通過命令行進行,也可以用C/C++、Perl、Java、PHP、Python或Ruby編程來完成。
ImageMagick 的官網是:http://www.imagemagick.org/script/index.php
由於我們是java項目,直接使用java通過JNI技術調用ImageMagick是不行的。因為ImageMagick開發時沒有使用java JNI生成的頭文件。可以使用jmagick解決,jmagick是由c語言開發的,開發時使用了java JNI生成的頭文件,所以java可以通過JNI技術調用jmagick。jmagick再調用ImageMagick。這們我們處理圖片使用的是jmagick暴露的java接口。也可以使用JNA來調用ImageMagick,JNA全稱是Java Native Access,JNA是在JNI的基礎上完善的,方便的我們開發的。JNA項目主頁是https://github.com/twall/jna。使用JNA來調用ImageMagick就須要直接操作ImageMagick提供的C接口(API)。
# yum install libjpeg # yum install libjpeg-devel # yum install libpng # yum install libpng-devel # yum install libtiff # yum install libtiff-devel # yum install libungif # yum install libungif-devel # yum install freetype # yum install zlib
可以通過下面的命令進行查看
#rpm -qa |grep libjpeg
如果沒有安裝,請通過yum命令安裝以上依賴包
安裝方式有兩種,第一種方式是直接安裝rpm方式安裝,此方式也是本文推薦的方式
第二種方式是通過編譯的方式安裝,沒有什麼特殊要求建議還是用rpm方式安裝
1、yum方式安裝,具體如下:
# 如果以前安裝過,卸載掉ImageMagick: #yum remove ImageMagick #yum install ImageMagick
2、編譯的方式進行安裝
從http://downloads.jmagick.org/6.4.0/這個網址下載需要安裝的版本,可以下載的文件包括以下
ImageMagick-6.4.0-0.tar.gz 24-Mar-2008 00:15 11M jmagick-6.4.0-3.i386.rpm 05-Jun-2009 09:27 172K jmagick-6.4.0-3.src.rpm 05-Jun-2009 09:27 524K jmagick-6.4.0-3.x86_64.rpm 05-Jun-2009 09:27 65K jmagick-6.4.0-src.tar.gz 11-Feb-2009 10:27 521K jmagick-debuginfo-6.4.0-3.x86_64.rpm 05-Jun-2009 09:27 135K jmagick-linux-6.4.0-Q8.tar.gz 08-Dec-2008 19:27 56K jmagick-linux-6.4.0-Q16.tar.gz 08-Dec-2008 19:27 56K jmagick-linux-6.4.0-Q32.tar.gz 08-Dec-2008 19:27 56K
根據自己的需求安裝相應版本的ImageMagick,具體的代碼如下
#tar zxvf ImageMagick-6.4.0-0.tar.gz #cd ImageMagick-6.4.0 #./configure --enable-shared --without-perl(如果不行就用./configure) #make #make install #make check
3、安裝完成後會生成一個convert
#find / -name convert #convert --version
可以根據查看的結果判斷安裝是否成功。
然後可以在命令行下試試是否能用convert命令
#convert -geometry 100x200 源文件.jpg 處理後文件.gif (格式轉換)
安裝的前提是下載了上面步驟三、安裝ImageMagick中2裡面說的安裝包
1、安裝依賴的庫等
注意:無論是否有自己的 JRE/JDK 感覺這個還是必須要有,否則安裝 RPM 會提示找不到相關的JAVA庫
注意:安裝 jmagick-src 的時候,如果沒有這個 jman 帳號,會安裝出錯
Shell代碼如下:
# yum install java; # /usr/sbin/useradd –u 1000 –s /sbin/nologin jman;
2、32位操作系統 rpm 方式安裝jmagick,shell代碼如下:
# rpm –ivh jmagick-6.4.0-3.i386.rpm # rpm –ivh jmagick-6.4.0-3.src.rpm
3、64位操作系統 rpm 方式安裝jmagick,shell代碼如下:
# rpm –ivh jmagick-6.4.0-3.x86_64.rpm # rpm –ivh jmagick-6.4.0-3.src.rpm # rpm –ivh jmagick-debuginfo-6.4.0-3.x86_64.rpm
32位操作系統無jmagick-debuginfo-6.4.0-3.x86_64.rpm文件
4、如果安裝src出現以下錯誤
[root@localhost ~]# rpm -ivh jmagick-6.4.0-3.src.rpm error: cannot create %sourcedir /usr/src/redhat/SOURCES
則執行以下語句即可
[root@localhost ~]# mkdir /usr/src/redhat [root@localhost ~]# mkdir /usr/src/redhat/SOURCES
5、編譯的方式安裝jmagick,不區分32位還是64位,具體的Shell代碼如下:
tar zvxf jmagick-6.4.0-src.tar.gz cd jmagick-6.4.0-src ./configure --prefix=/opt360/jmagick-6.4.0 --with-java-home=/usr/local/java/jdk1.6.0_30 --with-magick-home=/opt360/ImageMagick-6.4.0 make all make install
安裝成功後,在/opt360/jmagick-6.4.0/lib/有一個jmagick-6.4.0.jar文件,在你的java項目中就使用這個jar文件處理圖片,需要將jmagick-6.4.0.jar文件挪到TOMCAT的BIN目錄,具體命令如下:
# mv *.jar /usr/local/apache-tomcat-6.0.35/bin
記住jmagick-6.4.0.jar是使用前面你指定的jdk1.6編譯出來的,所以不能在jdk為1.5的環境下使用jmagick-6.4.0.jar。
如果你執行了make javadoc,在/opt360/jmagick-6.4.0/share/doc目錄下就有文檔。
1、如果安裝過程中出現以下錯誤:
error: Failed dependencies: jre is needed by jmagick-6.4.0-3.i386
說明沒有安裝上面步驟1中說明,安裝JRE/JDK,請安裝後再試
2、如果要測試的程序或者項目在Tomcat下,請重啟Tomcat後再進行測試,我之前沒有重啟Tomcat,測試了幾次還是報錯,最後重啟完Tomcat就好使了。
整個安裝過程到此為止,歡迎大家閱讀。