Linux安装ImageMagick与JMagick完成过程及配置

一、安装背景

最近在服务器上部署了tomcat,因为其对图片的压缩是采用ImageMagick实现的,所以需要在服务器上面安装ImageMagick与jmagick,将操作的过程写了下来,和大家分享下,其中包含rpm方式安装、linux32位安装ImageMagick与jmagick、linux64位安装ImageMagick与jmagick.

二、ImageMagick介绍

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)。

三、确保系统已经安装以下包

1
2
3
4
5
6
7
8
9
10
# 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
 
yum install libjpeg* libpng* libtiff* libungif* freetype  zlib*

可以通过下面的命令进行查看

1
#rpm -qa |grep libjpeg

如果没有安装,请通过yum命令安装以上依赖包

支持的各种格式的需要安装的包:

1、支持JP2,JPC格式
unzip jasper-1.701.0.zip&&cd jasper-1.701.0
./configure --enable-shared
make&&make install
2、支持JPEG格式
tar zxvf jpegsrc.v6b.tar.gz&&cd jpeg-6b
./configure --enable-shared
make&&make install
3、支持tiff格式
tar zxvf tiff-v3.6.1.tar.gz&&cd tiff-v3.6.1
./configure 
make&&make install
4、支持freetype2
tar zxvf freetype-2.1.7.tar.gz&&cd freetype-2.1.7
./configure
make&&make install
5、支持png格式
tar zxvf libpng-1.2.5.tar.gz&&cd libpng-1.2.5
cp scripts/makefile.linux ./makefile
make&&make install
6、支持JBIG格式
tar zxvf jbigkit-1.5.tar.gz&&cd jbigkit
make&&make test
cp -r libjbig /usr/local/include/
cd /usr/local/include/libjbig
cp jbig.h /usr/local/include
cp libjbig.a /usr/local/lib

四、安装ImageMagick 不区分32位、64位操作系统

安装方式有两种,第一种方式是直接安装rpm方式安装,此方式也是本文推荐的方式
第二种方式是通过编译的方式安装,没有什么特殊要求建议还是用rpm方式安装
1、yum方式安装,具体如下:

1
2
3
# 如果以前安装过,卸载掉ImageMagick: 
#yum remove ImageMagick 
#yum install ImageMagick

2、编译的方式进行安装
从http://downloads.jmagick.org/6.4.0/这个网址下载需要安装的版本,可以下载的文件包括以下

1
2
3
4
5
6
7
8
9
ImageMagick- 6.4.0-0.tar.gz       24-Mar-200800:1511M 
jmagick- 6.4.0-3.i386.rpm         05-Jun-200909:27172K 
jmagick- 6.4.0-3.src.rpm          05-Jun-200909:27524K 
jmagick- 6.4.0-3.x86_64.rpm       05-Jun-200909:2765K 
jmagick- 6.4.0-src.tar.gz         11-Feb-200910:27521K 
jmagick-debuginfo- 6.4.0-3.x86_64.rpm  05-Jun-200909:27135K 
jmagick-linux- 6.4.0-Q8.tar.gz         08-Dec-200819:2756K 
jmagick-linux- 6.4.0-Q16.tar.gz    08-Dec-200819:2756K 
jmagick-linux- 6.4.0-Q32.tar.gz    08-Dec-200819:2756K

根据自己的需求安装相应版本的ImageMagick,具体的代码如下

1
2
3
4
5
6
#tar zxvf ImageMagick-6.4.0-0.tar.gz 
#cd ImageMagick-6.4.0
#./configure --prefix=/usr/local/ImageMagick/ --with-bzlib=yes --with-fontconfig=yes --with-freetype=yes --with-gslib=yes --with-gvc=yes --with-jpeg=yes --with-jp2=yes --with-png=yes --with-tiff=yes --enable-shared --without-perl((如果不行就用./configure) 
#make 
#make install 
#make check

3、安装完成后会生成一个convert

1
2
#find / -name convert
vim /etc/profile(将convert命令的路径加到PATH里面)
 export PATH=.:$PATH:$JAVA_HOME/bin:/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/bin:/usr/local/ImageMagick/bin
source /etc/profile
#convert --version

可以根据查看的结果判断安装是否成功。
然后可以在命令行下试试是否能用convert命令

1
#convert -geometry 100x200 源文件.jpg 处理后文件.gif (格式转换)

五、安装JMagick

安装的前提是下载了上面步骤三、安装ImageMagick中2里面说的安装包
1、安装依赖的库等
注意:无论是否有自己的 JRE/JDK 感觉这个还是必须要有,否则安装 RPM 会提示找不到相关的JAVA库

ImageMagick和JMagick的版本需要一致,,不然安装时会报错"Unable to find ImageMagick library”

注意:安装 jmagick-src 的时候,如果没有这个 jman 帐号,会安装出错
Shell代码如下:

1
2
# yum install java; 
# /usr/sbin/useradd �Cu  1000�Cs /sbin/nologin jman; 实践中没有创建也没有报错

2、32位操作系统 rpm 方式安装jmagick,shell代码如下:

1
2
# rpm �Civh jmagick-6.4.0-3.i386.rpm 
# rpm �Civh jmagick-6.4.0-3.src.rpm

3、64位操作系统 rpm 方式安装jmagick,shell代码如下:

1
2
3
# rpm �Civh jmagick-6.4.0-3.x86_64.rpm 
# rpm �Civh jmagick-6.4.0-3.src.rpm 
# rpm �Civh jmagick-debuginfo-6.4.0-3.x86_64.rpm

32位操作系统无jmagick-debuginfo-6.4.0-3.x86_64.rpm文件
4、如果安装src出现以下错误

1
2
[root @localhost~]# rpm -ivh jmagick-6.4.0-3.src.rpm 
error: cannot create %sourcedir /usr/src/redhat/SOURCES

则执行以下语句即可

1
2
[root @localhost~]# mkdir /usr/src/redhat 
[root @localhost~]# mkdir /usr/src/redhat/SOURCES

5、编译的方式安装jmagick,不区分32位还是64位,具体的Shell代码如下:

1
2
3
4
5
6
7
tar zvxf jmagick-6.4.0-src.tar.gz 
cd jmagick-6.4.0-src 
./configure --prefix=/usr/local/jmagick
--with-java-home=/usr/local/jdk1.7.0_07
--with-magick-home=/usr/local/ImageMagick
make all 
make install

安装成功后,在/usr/local/jmagick/lib/有一个jmagick-6.4.0.jar文件,在你的java项目中就使用这个jar文件处理图片,需要将jmagick-6.4.0.jar文件挪到TOMCAT的BIN目录,具体命令如下:

1
# mv *.jar /usr/local/tomcat0/bin

记住jmagick-6.4.0.jar是使用前面你指定的jdk1.7编译出来的,所以不能在jdk为1.6的环境下使用jmagick-6.4.0.jar。
如果你执行了make javadoc,在/usr/local/jmagick/share/doc目录下就有文档。

安装中出现的问题解决

1、如果安装过程中出现以下错误:

1
2
error: Failed dependencies: 
jre is needed by jmagick-6.4.0-3.i386

说明没有安装上面步骤1中说明,安装JRE/JDK,请安装后再试
2、如果要测试的程序或者项目在Tomcat下,请重启Tomcat后再进行测试,我之前没有重启Tomcat,测试了几次还是报错,最后重启完Tomcat就好使了。

 

你可能感兴趣的:(Linux安装ImageMagick与JMagick完成过程及配置)