现在的位置: 首页 > 综合 > 正文

JSP高清缩略图JMagick使用

2013年06月06日 ⁄ 综合 ⁄ 共 1881字 ⁄ 字号 评论关闭

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);

  

抱歉!评论已关闭.