最近要用java寫一個操作圖片的程序。雖然Java的ImageIO也可以實現同樣的功能,但是效率上明顯不能和C寫的ImageMagick比啊。JMagick是一個開源API,利用JNI(Java Native Interface)技術實現了對ImageMagickAPI的Java訪問接口,但目前只實現了ImageMagic API的一部分功能。Jmagick文檔地址:http://www.jmagick.org/jmagick-doc/
我使用的是Centos 6.5。首先查看已經安裝的JMagick包,如果有就卸載舊的包。
rpm -qa | grep ImageMagickrpm -qa | grep jmagick
下面是安裝部分:
1.先查看依賴包的安裝情況
rpm -q libjpeg libjpeg-devel libpng libpng-devel libtiff libtiff-devel libungif libungif-devel perl-CPAN perl make gcc
將未安裝的包用一下命令進行安裝
yum install libjpegyum install libjpeg-develyum install libpngyum install libpng-develyum install libtiffyum install libtiff-develyum install libungifyum install libungif-develyum install perl-CPAN
我用libjpeg-turbo替代了libjpeg,giflib替代了libungif。
2.下載新版本的ImageMagick和JMagick
wget http://www.jmagick.org/6.4.0/ImageMagick-6.4.0-0.tar.gzwget http://www.jmagick.org/6.4.0/jmagick-6.4.0-src.tar.gz
3.安裝ImageMagick
tar -xzvf ImageMagick-6.4.0-0.tar.gzmkdir /usr/local/imagemagickcd ImageMagick-6.4.0-0./configure --PRefix=/usr/local/imagemagick/makemake install
配置環境變量,export PATH=/usr/local/imagemagick/bin:$PATH
vi /etc/profilesource /etc/profile
檢驗是否安裝成功,輸入convert。
4.安裝JMagick
tar -xzvf jmagick-6.4.0-src.tar.gzcd 6.4.0./configuremakemake installcd libcp *.so /usr/lib
把so庫文件路徑加載到配置文件add: /usr/local/imagemagick/lib
vi /etc/ld.so.confldconfig
把libJMagick.so拷貝到jdk的amd64目錄里。再將jmagick.jar拷貝到jdk的ext目錄下。
cp /usr/local/jmagick/lib/libJMagick.so /usr/java/jdk1.6.0_32/jre/lib/amd64/cp /usr/local/jmagick/lib/jmagick-6.4.0.jar /usr/java/jdk1.6.0_32/jre/lib/ext/
需要注意的一點:如果你的CentOS是64的,那么JDK也需要安裝64位的,否則得話程序里調用jmagick.jar是不會成功的!
5.在Java程序中使用JMagick庫
在程序中需要加入下面的代碼才可以正常運行
System.setProperty("jmagick.systemclassloader", "no");
最后,應該已經可以成功使用JMagick庫了。有問題可以留言交流。
新聞熱點
疑難解答