JSP高清缩略图JMagick使用

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

你可能感兴趣的:(jmagick)