您的位置:首页 > 编程语言 > Java开发

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: