java 图片质量压缩
2016-02-23 09:57
543 查看
/** * 图片质量压缩 * @param file 要压缩的图片文件 * @param input 文件输入流 * @param quality 压缩质量(0-1) * @author ouyangyaxiong * 2016年2月23日 上午9:10:54 * @throws IOException * */ public static void imgCompress(File file, InputStream input, float quality ) throws IOException{ Iterator<ImageWriter> imgWriters = ImageIO.getImageWritersByFormatName("jpg"); ImageWriter imgWriter = imgWriters.next(); ImageWriteParam param = imgWriter.getDefaultWriteParam(); param.setCompressionMode(ImageWriteParam.MODE_EXPLICIT); param.setCompressionQuality(quality); OutputStream output = new FileOutputStream(file);//创建输出流 ImageOutputStream imgOutput = ImageIO.createImageOutputStream(output); imgWriter.setOutput(imgOutput); BufferedImage bufferedImg = ImageIO.read(input); IIOImage iioimg = new IIOImage(bufferedImg, null, null); imgWriter.write(null, iioimg, param); output.close(); imgOutput.close(); imgWriter.dispose(); }
注意:这里如果压缩透明背景的png图片会出现背景变黑的情况
参考:http://www.tutorialspoint.com/java_dip/image_compression_technique.htm,http://stackoverflow.com/questions/22812325/java-image-compression
相关文章推荐
- [Spring]02_Spring框架和MVC原理
- java实现定时任务的三种方法
- java spring mvc时间String转Date(二)
- Java transient关键字使用
- myeclipse添加server library
- Java生成验证码工具
- Java 反射机制 .class .getClass() Class.forName("") .TYPE int void
- Eclipse修改svn地址
- 使用SpringSecurity3用户验证(异常信息,验证码)
- JAVA_面向对象_练习_封装_02_EncapsulationDaemon02.java
- JAVA_面向对象_练习_封装_02_EncapsulationDaemon02.java
- Struts2动态方法调用
- 【转】java中三个类别加载器的关系以及各自加载的类的范围
- JAVA_面向对象_练习_封装_01_EncapsulationDaemon01.java
- JAVA_面向对象_练习_封装_01_EncapsulationDaemon01.java
- JRE与JDK的区别
- IOC
- JDK1.8的一些改动
- 在Eclipse中打开文件夹
- java UncaughtExceptionHandler 处理线程意外中止