JMagick在linux下的安装和使用

JMagick在linux下的安装和使用

准备如下包:
freetype-2.1.10.tar.gz
ImageMagick-6.2.6.tar.gz
jasper-1.900.1.zip
JMagick-6.2.6-0.tar.gz
jpegsrc.v6b.tar.gz
libpng-1.2.12.tar.gz
tiff-3.8.2.tar.gz
版本之间相互匹配才能使用,无须下载最新版本
本实例的相关包见附件。

1.安装libpng
tar -xzvf libpng-1.2.12.tar.gz
cd ibpng-1.2.12
./configure
make
make install
检查是否安装完成
rpm -qa | grep libpng

2.安装libjpeg
tar -xzvf jpegsrc.v6b.tar.gz
cd jpeg-6b
./configure
make
make install
提示user/local/man/man1目录不存在,安装失败
mkdir /usr/local/man/man1
继续执行:
make install
检查是否安装完成
rpm -qa | grep libjpeg

3.安装libtiff
tar -xzvf tiff-3.8.2.tar.gz
cd tiff-3.8.2
./configure
make
make install
检查是否安装完成
rpm -qa | grep libtiff

4.安装jasper
unzip jasper-1.900.1.zip
cd jasper-1.900.1
CFLAGS=-fPIC ./configure
make CFLAGS=-fPIC
make CFLAGS=-fPIC install
检查是否安装完成
rpm -qa | grep jasper

5.安装freetype
tar -xzvf freetype-2.1.10.tar.gz
cd freetype-2.1.10
./configure
make install
检查是否安装完成
rpm -qa | grep freetype

6.安装ImageMagick
tar xzvf ImageMagick-6.2.6.tar.gz
cd ImageMagick-6.2.6
./configure --prefix=/opt/ImageMagick-6.2.6 --enable-share --enable-static --with-jpeg=yes --with-png=yes --with-tiff=yes --with-jp2=yes --without-perl
make

Magick++/lib/Image.cpp: In function 'void Magick::InitializeMagick(const char*)':
Magick++/lib/Image.cpp:3811: error: 'atexit' was not declared in this scope
make: *** [Magick++/lib/Image.lo] 错误 1
后来发现原来是gcc版本的问题。 我自己的笔记本的gcc版本比较新,对于旧的写法有些不兼容。
旧的版本gcc某些不需要明确的声明include的地方,在新的gcc中不再支持,必须明确的声明。

进入ImageMagick目录下的Magick++/lib目录下,编辑Image.cpp文件,在头部include声明的代码中增加一行:
#include <stdlib.h>

重新make就可以了。
make
make install

检查是否安装成功:
cd /home/ImageMagick-6.8.6/bin
./convert -resize 50x50 test.jpg new.jpg

7.安装JMagick
tar xzvf JMagick-6.2.6-0.tar.gz
cd JMagick-6.2.6-0
autoconf
./configure --prefix=/opt/JMagick --with-magick-home=/opt/ImageMagick-6.2.6 --enable-share --enable-static --with-java-home=/home/jdk1.6.0_13
make all
make install
make test

生成/opt/JMagick文件夹lib下有jmagick.jar,libJMagick.so
拷贝jmagick.jar,libJMagick.so到如下目录:
1.WEB容器的lib下,如:/home/resin-3.1.12/lib,/home/tomcat-6.0.5/lib
2.JDK的lib下,/home/jdk1.6.0_13/lib
3.ImageMagick的lib下,/opt/ImageMagick/lib

8.配置环境变量
export PATH=$PATH:/opt/ImageMagick/bin
export LD_LIBRARY_PATH=:/opt/JMagick/lib:/opt/ImageMagick/lib
export DYLD_LIBRARY_PATH=:/opt/JMagick/lib:/opt/ImageMagick/lib
export CLASSPATH=$CLASSPATH:/opt/JMagick/lib

9.使用时注意:在Web Application Server(Resin,Tomcat),需要再运行时加入参数: -Djmagick.systemclassloader=no
或者在程序中写入:System.setProperty("jmagick.systemclassloader", "no");

10.异常
magick.MagickException: Cannot obtain image handle
这个异常出现的情况有很多种,有可能是图片的路径不对,也有可能环境变量配置不正确,也有可能是内部程序异常。
使用过程中异常的常见的出现次序:
(1)java.lang.NoClassDefFoundError: Could not initialize class magick.ImageInfo (环境变量、lib下对应的Jar相关)
(2)java.lang.UnsatisfiedLinkError: no JMagick in java.library.path (Resin,Tomcat的lib下无jmagick.jar,libJMagick.so文件相关)
(3)magick.MagickException: Cannot obtain image handle (多种情况!)
注:资源包中包含了必要的.tar.gz安装包,ImageMagick-6.5太大了点,自己去官网下载 Jmagick包中的Changelog.txt中有ImageMagick与JMagick版本对应的关系的说明 ) 安装说明: ================================== cd /usr/bin/ rm java rm javac ln -s /usr/java/jdk6/bin/java java ln -s /usr/java/jdk6/bin/javac javac 如果java javac已经指对目录了,上面就不用设置了 ========================================================== ImageMagick 是一个功能很强的图片处理程序。可应用在多种操作系统平台上。 安装ImageMagickJMagick 如果安装了老版本ImageMagick的rpm包,请先删除 安装环境要求: 确认已经安装了zlib、freetype、libpngjpeg-6b等lib的开发包,可以用rpm -aq查询,如果没有的请先安装。 /*------------------- 观察配置后给出来的支持图形格式,看看该图形格式支持是否是yes,如果不是,那么必须先安装该图形格式的本地库。 例如,你应该检查是否已经安装如下rpm包: rpm –qa |grep libpng rpm –qa |grep libpng-devel rpm –qa |grep libjpeg rpm –qa |grep gd-devel 如果你希望支持tiff格式,还应该检查 rpm –qa |grep libtiff 如果没有安装,那么在Linux安装光盘找到相应rpm包安装上, 再次configure直到确认需要的图形格式全部支持为止,然后编译安装: *-----------/ *安装jpeg包: http://www.ijg.org/files/jpegsrc.v6b.tar.gz tar -zvxf jpegsrc.v6b.tar.gz cd jpeg-6b/ ./configure --enable-shared --enable-static ; make ; make install *安装png包:先在http://sourceforge.net/projects/libpng/上下载最新的libpng包 tar -xzvf libpng-1.2.12.tar.gz cd libpng-1.2.12 cp scripts/makefile.std makefile make make install *编译并安装tiff格式支持文件, tar zvxf tiff-3.8.2.tar.gz ./configure make make install ---------------------------------------------------------- (些步可不做)修改ImageMagick的配置文件 configure --without-jpeg=false disable JPEG support --without-png=false disable PNG support --without-tiff=false disable TIFF support -------------------------------------------------------- 先在http://www.yeo.id.au/jmagick/上下载最新的ImageMagickJMagick安装ImageMagick包 tar xzvf ImageMagick-6.5.3-2.tar.gz ./configure --prefix=/opt/ImageMagick --enable-share --enable-static make make install 使用convert 看看是否可以转换文件 测试:convert -geometry 600x200 1503.jpg 1503_small.gif 安装JMagick包 tar xzvf jmagick-6.4.0.tar.gz (# chmod * 否则这个包内的文件无权限执行) autoconf ./configure --prefix=/opt/JMagick --with-magick-home=/opt/ImageMagick --enable-share --enable-static --with-java-ho
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值