java高品质缩略图生成方法,Jmagick使用1

现在web应用经常会用到缩略图。然后一旦生成的缩略图小于100px   *   100px,一些常用的java包,生成的图片确实有点惨不忍睹。  
    
            现在介绍使用Jmagick的使用,可以生成质量很好的缩略图,当然还有其他很多图像处理的方法。  
    
          首先jmagick(http://www.yeo.id.au/jmagick/)是ImageMagick(http://www.imagemagick.org/)的java   应用的接口。所以要先安装ImageMagick应用程序,你的java应用才能使用,在主页上你可以轻松找到下载的链接。  
    
        1。下载jmagick,imagemagick  
    
          2.安装ImageMagick,网站上有安装方法(windows,unnix),我只在win上做了安装,安装以后把安装目录下所有的dll文件copy到windows/system32/目录下。  
    
        3。下载的jmagick包含jmagick.jar,jmagick.dll文件,jmagick.dll需要copy到windows/system32/目录下。  
    
          4。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   )  
    
          5。还要注意如果部署到web应用,你在使用的class里面需要  
    
              System.setProperty("jmagick.systemclassloader","no");  
    
            要不然会报出UnsatisfiedLinkError:   no   JMagick   in   java.library.path.    
    
            实例如下:  
    
    public   void   resize(String   picFrom,String   picTo)   {  
            try   {  
                //   Resize  
                ImageInfo   info   =   new   ImageInfo(picFrom);  
                MagickImage   image   =   new   MagickImage(new   ImageInfo(picFrom));  
                MagickImage   scaled   =   image.scaleImage(100,   86);//小图片文件的大小.  
                scaled.setFileName(picTo);  
                scaled.writeImage(info);  
    
            }     catch(MagickApiException   ex)   {  
    
            }     catch(MagickException   ex)   {  
    
            }  
        }  
    
  注:linux系统下,需要下载另外的包  
­
                          public   void   resize(int   w,   int   h)   throws   IOException   {  
    
                  try   {  
                  //   Resize  
                      System.setProperty("jmagick.systemclassloader","no");  
                  ImageInfo   info   =   new   ImageInfo(sourceFileName);  
                  MagickImage   image   =   new   MagickImage(info);  
                  MagickImage   scaled   =   image.scaleImage(w,   h);//小图片文件的大小.  
                  scaled.setFileName(destFile);  
                  scaled.writeImage(info);  
    
              }     catch(MagickApiException   ex)   {  
              System.out.println(ex);  
    
              }     catch(MagickException   ex)   {  
              System.out.println(ex);  
              }  
          } Top
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值