java 图片高宽_java压缩图片设置宽高

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

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值