JMagick+ImageMagic处理图片(高质量)

项目需要简单处理一些用户上传的图片,如缩略图、剪切、旋转、水印等。试过很多方法,包括STRUS自带的、jimi、jai等,图片质量不能让人满意。面前在试用JMagick+ImageMagic,比较而言生成缩略图已经很好了,将碰到的一些问题总结下,同志们少走点弯路。
1、jmagick下载
最新的地址http://downloads.jmagick.org/
这个地址包含了最新的文档和ImageMagic

2、windows下安装
A、ImageMagick选择独立安装版本如

ImageMagick-6.3.9-0-Q8-windows-dll.exe,jmagick-win-6.3.9-Q8.zip;

两个版本号一定要相同; 
   这个一路next;新版本一般都会将安装目录写入环境变量path。保险起见,你可以在装好后检查下。
B、jmagick解压后将jmagick.dll拷入system32下,然后将jmagick.jar放入你项目的WEB-INF\lib下即可。
安装完成
未解决:Q16和Q8在图片质量上有区别?
3、程序中在使用jmagick前写
//Tell jmagick.magick.Magick to not use the system ClassLoader
System.setProperty("jmagick.systemclassloader","no");
4、在ECLIPSE+tomcat下报错,将eclipse下tomcat服务器配置在path中加入jmagick.dll的路径如c:\system32.
这个问题折腾了半天,将JMagick和ImageMagic安装后一直在报错,换了所有的版本都不行,后来无意中直接启动tomcat发现跑起来很顺利,才…… 
***测试过程中遇到的一些问题:

1。web应用如果部署到tomcat下,那么最好在catalina.bat文件中改变如下设置

set JAVA_OPTS=%JAVA_OPTS% -Xms256M -Xmx768M -XX:MaxPermSize=128M -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file="${catalina.base}\conf\logging.properties"
 避免heap溢出的问题,参数看你自己的机器而定。( -Xms256M -Xmx768M -XX:MaxPermSize=128M )

  1.     #   
  2.     # A fatal error has been detected by the Java Runtime Environment:   
  3.     #   
  4.     #  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x7c9469da, pid=3192, tid=3212  
  5.     #   
  6.     # JRE version: 6.0_20-b02   
  7.     # Java VM: Java HotSpot(TM) Client VM (16.3-b01 mixed mode, sharing windows-x86 )   
  8.     # Problematic frame:   
  9.     # C  [ntdll.dll+0x369da]  

这个异常,我用xp测试的时候出现过;网上的是配置环境的问题:jdk或jmagick版本不同的问题;不过我的都是相同的,也出现这个问题;后来我启动ImageMagick Display程序之后,再运行测试用例时,就没有出现异常了;关于jMagick的例子,网上很多,请自己寻找;

你可能感兴趣的:(tomcat,Web)