下载地址为:http://downloads.jmagick.org/
先下载安装 imagemagick-6.3.9-0-q16-windows-dll.exe,安装目录下(按自己所安装的目录找) 下的所有dll文件 copy 到系统盘下的 “c:windowssystem32”文件夹里.
再下载对应的jmagick jmagick-win-6.3.9-q16.zip 解压 jmagick.dll 复制到系统盘下的 “c:windowssystem32”文件夹里; jmagick.jar 复制到tomcat下的lib文件夹里 或所使用项目的web-inf下lib文件里
则等比例缩放
public static void changeimge(file img, int width, int height) {
try {
image image = imageio.read(img);
//图片尺寸的大小处理,如果长宽都小于规定大小,则返回,如果有一个大于规定大小,则等比例缩放
int srch = image.getheight(null);
int srcw = image.getwidth(null);
if (srch <= height && srcw <= width) {
return;
}
int tmph = width;
int tmpw = height;
//在长度和宽度都做了限制,不能超过设定值
while (srch > height || srcw > width) {
if(srcw > width) {
tmph = srch * width / srcw;
srch = tmph;
srcw=width;
}
if(srch > height) {
tmpw = srcw * height / srch;
srcw = tmpw;
srch=height;
}
}
bufferedimage bufferedimage = new bufferedimage(srcw, srch,
bufferedimage.type_3byte_bgr);
bufferedimage.getgraphics().drawimage(
image.getscaledinstance(srcw, srch, image.scale_smooth), 0,
0, srcw, srch, null);
fileoutputstream fos = new fileoutputstream(img);
jpegimageencoder encoder = jpegcodec.createjpegencoder(fos);
encoder.encode(bufferedimage);
fos.close();
// system.out.println("转换成功...");
} catch (ioexception e) {
e.printstacktrace();
throw new illegalstateexception("图片转换出错!", e);
}
}
代码二
java代码
import java.awt.dimension;
import java.awt.rectangle;
import java.text.simpledateformat;
import java.util.date;
import magick.compositeoperator;
import magick.compressiontype;
import magick.drawinfo;
import magick.imageinfo;
import magick.magickexception;
import magick.magickimage;
import magick.pixelpacket;
import magick.previewtype;
public class imageutils {
static{
//不能漏掉这个,不然jmagick.jar的路径找不到
system.setproperty("jmagick.systemclassloader","no");
}
看一款利用jmagick生成缩略图
import java.awt.dimension;
import java.awt.rectangle;
import java.awt.image.bufferedimage;
import java.io.file;
import java.text.simpledateformat;
import java.util.date;
import javax.imageio.imageio;
import magick.compositeoperator;
import magick.compressiontype;
import magick.drawinfo;
import magick.imageinfo;
import magick.magickexception;
import magick.magickimage;
import magick.pixelpacket;
import magick.previewtype;
public class imageutil2 {
static {
// 不能漏掉这个,不然jmagick.jar的路径找不到
system.setproperty("jmagick.systemclassloader", "no");
}
/**
* 压缩图片
*
* @param filepath 源文件路径
* @param topath 缩略图路径
*/
public void createimage(string filepath,string topath, int width, int height) {
imageinfo info = null;
magickimage image = null;
magickimage scaled = null;
try {
info = new imageinfo(filepath);
image = new magickimage(info);
scaled = image.scaleimage(width, height);// 小图片文件的大小.
scaled.setfilename(rootpath+topath);
scaled.writeimage(info);
} catch (exception e) {
e.printstacktrace();
} finally {
if(image!=null)
{
image.destroyimages();
}
if (scaled != null) {
scaled.destroyimages();
}
}
}
public static void main(string[] args) {
createimage("d:1012.jpg", "d:www.111cn.net_th.jpg", 110,100);
// system.out.println(isupdatebigpic("d:www.111cn.net11.jpg"));
}
}imagemagick是一套功能强大、稳定而且免费的工具集和开发包,可以用来读、写和处理超过89种基本格式的图片文件,包括流行的tiff, jpeg, gif, png, pdf以及photocd等格式。利用imagemagick,你可以根据web应用程序的需要动态生成图片, 还可以对一个(或一组)图片进行改变大小、旋转、锐化、减色或增加特效等操作,并将操作的结果以相同格式或其它格式保存。对图片的操作,即可以通过命令行进行,也可以用c/c++、perl、java、php教程、python或ruby编程来完成。同时imagemagick提供了一个高质量的2d工具包,部分支持svg。现在,imagemagic的主要精力集中在性能、减少bug以及提供稳定的api和abi上
http://m.bbyears.com/ps/27890.html
推荐访问:二维码 二维码解析 二维码制作 二氧化钛 二之国2 二五仔 二战 二元一次方程 二氧化硅