packagehtml2pdf_2;importjava.awt.Image;importjava.awt.image.BufferedImage;importjava.io.File;importjava.io.FileNotFoundException;importjava.io.FileOutputStream;importjava.io.IOException;importjavax.imageio.ImageIO;importcom.sun.image.codec.jpeg.JPEGCodec;importcom.sun.image.codec.jpeg.JPEGEncodeParam;importcom.sun.image.codec.jpeg.JPEGImageEncoder;public classImageZipUtil {/*** 等比例压缩图片文件
先保存原文件,再压缩、上传
*@paramoldFile 要进行压缩的文件
*@paramnewFile 新文件
*@paramwidth 宽度 //设置宽度时(高度传入0,等比例缩放)
*@paramheight 高度 //设置高度时(宽度传入0,等比例缩放)
*@paramquality 质量
*@return返回压缩后的文件的全路径*/
public static String zipImageFile(File oldFile,File newFile, int width, intheight,floatquality) {if (oldFile == null) {return null;
}try{/**对服务器上的临时文件进行处理*/Image srcFile=ImageIO.read(oldFile);int w = srcFile.getWidth(null);//System.out.println(w);
int h = srcFile.getHeight(null);//System.out.println(h);
doublebili;if(width>0){
bili=width/(double)w;
height= (int) (h*bili);
}else{if(height>0){
bili=height/(double)h;
width= (int) (w*bili);
}
}/**宽,高设定*/BufferedImage tag= newBufferedImage(width, height,
BufferedImage.TYPE_INT_RGB);
tag.getGraphics().drawImage(srcFile,0, 0, width, height, null);//String filePrex = oldFile.getName().substring(0, oldFile.getName().indexOf('.'));
/**压缩后的文件名*/
//newImage = filePrex + smallIcon+ oldFile.getName().substring(filePrex.length());
/**压缩之后临时存放位置*/FileOutputStream out= newFileOutputStream(newFile);
JPEGImageEncoder encoder=JPEGCodec.createJPEGEncoder(out);
JPEGEncodeParam jep=JPEGCodec.getDefaultJPEGEncodeParam(tag);/**压缩质量*/jep.setQuality(quality,true);
encoder.encode(tag, jep);
out.close();
}catch(FileNotFoundException e) {
e.printStackTrace();
}catch(IOException e) {
e.printStackTrace();
}returnnewFile.getAbsolutePath();
}/*** 按宽度高度压缩图片文件
先保存原文件,再压缩、上传
*@paramoldFile 要进行压缩的文件全路径
*@paramnewFile 新文件
*@paramwidth 宽度
*@paramheight 高度
*@paramquality 质量
*@return返回压缩后的文件的全路径*/
public static String zipWidthHeightImageFile(File oldFile,File newFile, int width, intheight,floatquality) {if (oldFile == null) {return null;
}try{/**对服务器上的临时文件进行处理*/Image srcFile=ImageIO.read(oldFile);int w = srcFile.getWidth(null);int h = srcFile.getHeight(null);/**宽,高设定*/BufferedImage tag= newBufferedImage(width, height,BufferedImage.TYPE_INT_RGB);
tag.getGraphics().drawImage(srcFile,0, 0, width, height, null);/**压缩之后临时存放位置*/FileOutputStream out= newFileOutputStream(newFile);
JPEGImageEncoder encoder=JPEGCodec.createJPEGEncoder(out);
JPEGEncodeParam jep=JPEGCodec.getDefaultJPEGEncodeParam(tag);/**压缩质量*/jep.setQuality(quality,true);
encoder.encode(tag, jep);
out.close();
}catch(FileNotFoundException e) {
e.printStackTrace();
}catch(IOException e) {
e.printStackTrace();
}returnnewFile.toString();
}/***
* @projectname 项目名称: html2pdf_2
* @packageclass 包及类名: html2pdf_2.ImageZipUtil.java
* @description 功能描述: 测试
*@author作 者: zhouzhiwei
*@param参 数:@paramargs
*@param参 数:@throwsIOException
*@return返回类型: void
* @createdate 建立日期: 2015年6月3日下午4:47:06*/
public static void main(String args[]) throwsIOException {
System.out.println(ImageZipUtil.zipImageFile(new File("d:/QQ截图20150602175637.png"),new File("E:/c2.jpg"), 400, 128, 3f));
}
}