JSP高清缩略图JMagick使用

来源:互联网 发布:网络推广管理制度 编辑:程序博客网 时间:2024/04/28 15:25

JSP高清缩略图JMagick使用,实现了对图片的多种操作,合成图片,缩略图、复制数据等等...。

首先下载:
http://downloads.jmagick.org/6.3.9/ImageMagick-6.3.9-0-Q16-windows-dll.exe
http://downloads.jmagick.org/6.3.9/jmagick-win-6.3.9-Q16.zip

 

安装ImageMagick-6.3.9-0-Q16-windows-dll.exe程序在F盘如:F:/ImageMagick可以自由选择。然后配置环境Path加入ImageMagick的安装目录;F:/ImageMagick。
解压jmagick-win-6.3.9-Q16.zip,将jmagick-win-6.3.9-Q16.zip里的jmagick.jar。放到TOMCAT安装目录/lib/里和Java安装目录/jdk/jre/lib/ext/里。再把jmagick.dll 放到TOMCAT安装目录/bin/目录下就ok了。以下是封装BEAN对图片缩放剪切代码:

Jmagick.java

package Image;import magick.*;import java.awt.*; public class Jmagick {//图片缩放public void Jwh(String URLPath ,String srcImage, String DestImage, int WLen, int HLen){        MagickImage scaled = null;        Rectangle rect = null;         int x=0;        int y=0;        int lw=0;        int lh=0;        try{       ImageInfo info = new ImageInfo(URLPath+srcImage);       MagickImage image = new MagickImage(info);            //取长宽       Dimension dim = image.getDimension();       double wImage = dim.getWidth();       double hImage = dim.getHeight();       if (HLen==0) {   //正常缩小         Boolean bWBig = wImage > hImage? true:false ;       if (bWBig) {//长大过高       hImage = WLen * ( hImage / wImage);       wImage = WLen;       } else {//反之        wImage = WLen * ( wImage / hImage);        hImage = WLen;       }       } else {//剪切缩小       Boolean bWBig = wImage-WLen < hImage-HLen? true:false ;       if (bWBig) {//长大过高       hImage = WLen * ( hImage / wImage);       wImage = WLen;       } else {//反之        wImage = HLen * ( wImage / hImage);        hImage = HLen;       }}lw=(int)wImage;lh=(int)hImage;//输出scaled = image.scaleImage(lw, lh);if (HLen>0) {//剪切缩小必须是JPG格式        x=(lw-WLen)/2;        y=(lh-HLen)/2;        lw=lw-(lw-WLen);        lh=lh-(lh-HLen);        rect = new Rectangle(x, y, lw, lh);           scaled = scaled.cropImage(rect);  }        scaled.setFileName(URLPath+DestImage);         scaled.writeImage(info);        scaled.destroyImages();       }catch(MagickApiException ex){       }catch(MagickException ex){       } finally {                    scaled.destroyImages();       }       }}

编译后Jmagick.class放在/WEB-INF/classes/Image/文件夹下

使用方式:

String Path="/1.gif";String PathS="/12.gif";int Ww=100;int Hh=0;//设置Hh高度为0的时候是按图片的宽度比例缩放图片,设置图片Hh大于0以上就按指定大小图片比例剪切为不变形的缩放图片。Image.Jmagick   Jmagick=new   Image.Jmagick();Jmagick.Jwh(getServletContext().getRealPath("/"),Path,PathS,Ww,Hh);

  

原创粉丝点击