0
回答
JMagick ImageMagic的使用
终于搞明白,存储TCO原来是这样算的>>>   
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这个格式也就支持了。
举报
红薯
发帖于9年前 0回/2K+阅
顶部