JMagick ImageMagic的使用

    技术2022-05-11  158

    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这个格式也就支持了。

    最新回复(0)