ImageMagick一个优秀的图像处理软件,JMagick是对ImageMagickJAVA面向对象化包装。
现在谈谈如何在WINDOWS环境下、LINUX环境下这两款软件的安装与使用。并制作了一个缩略图的产生程序。
1、安装
在WINDOWS下安装及使用都相当简单。先去下载IImageMagic WINDOWS的安装包,安装一把就可以了。安装完结之后,一般都把DLL加入到类路径中去了。安装最新版的就可以了(6.0.4版)
安装JMagick,直接得到它的二进制包就可以了(5.6.0)版。将JAR文件放到JAVA类路径下面,将DLL文件放到SYSTEM32目录下,就OK了。
在UNIX环境下安装比较麻烦。
偶这里是用TAR包安装的。先去下载,这里都使用5。6。0版本。
先安装ImageMagick
过程:
解开包文件
./configure 配置文件
make all
make install
就OK了。当然你在配置文件的时候,可以控制一些配置。以保证安装成功。
对JMagick也是同样操作。
解开包文件
./configure 配置文件
make all
make install
make test
一般测试通过就OK了。
生成的静态类库或动态类库一般位于/usr/local/lib目录下。
如果需要在程序中使用,需要输出LD_LIBRARY_PATH目录。就不多说了。
2、使用
private boolean genearateSumImg(String orgImg) {
boolean result = false;
//取得原文件
try {
MagickImage image = new MagickImage( new ImageInfo( orgImg ) );
int scalex = 80;
int scaley = 80;
MagickImage small = image.scaleImage( scalex,scaley);
small.setFileName( orgImg+IMAGE_SUM_POSTFIX);
small.writeImage( new ImageInfo() );
result = true;
} catch (Exception e1) {
e1.printStackTrace();
}
return result;
}
以上是一个简单的生成缩略图的函数,可以EJB等处使用。
3、可能存在的问题及解决办法
在WEBLOGIC或者TOMCAT中使用。JMagick缺少是采用系统类加载器加载的,当然你也可以修改这个类加载器。
System.setProperty("jmagick.systemclassloader","no");
如采用如上的方法。
参考http://www.yeo.id.au/jmagick/ ,要在tomcat中使用JMagicK需要这三步:
1. Put Jmagick.jar in your WEBINF/lib dir
2. Put the following line in an initialization part of your webapp:
//Tell jmagick.magick.Magick to not use the system ClassLoader
System.setProperty("jmagick.systemclassloader","no");
3. make sure the Jmagick.dll and Imagemagick dlls are on the system
path
以上3步缺一不可
java.lang.UnsatisfiedLinkError: no JMagick in java.library.path
一般是没有输出库文件路径造成的。
NoDecodeDelegateForThisImageFormat: NoDecodeDelegateForThisImageFormat
一般是LINUX中没有安装一些SO文件造成的,可去下载来,在配置能看到输出的情况的,回答YES这个格式也就支持了。