这是一个问题:
java image compression for any image format(jpg, PNG, gif)
守则就在这里:
File input = new File("digital_image_processing.jpg");
BufferedImage image = ImageIO.read(input);
File compressedImageFile = new File("compress.jpg");
OutputStream os = new FileOutputStream(compressedImageFile);
Iterator<ImageWriter>writers = ImageIO.getImageWritersByFormatName("jpg");
ImageWriter writer = (ImageWriter) writers.next();
ImageOutputStream ios = ImageIO.createImageOutputStream(os);
writer.setOutput(ios);
ImageWriteParam param = writer.getDefaultWriteParam();
param.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
param.setCompressionQuality(0.05f);
writer.write(null, new IIOImage(image, null, null), param);
问题:
我已经尝试过上面的代码,图像压缩发生了
原始尺寸:2209 Kb实际尺寸:633 Kb压缩质量:0.98f
但压缩后图像看起来不一样,图像非常有光泽,对于某些图像来说难以读取图像并从中获取细节
无法在此处上传图片,因为它超过2 MB。请在此网址上找到图片:https://ibb.co/jgO2WF。
请将其保存为jpg格式,并尝试使用上述逻辑压缩图像,并在压缩前后检查图像。可以使它不那么有光泽或更具可读性吗?
当用jpeg而不是jpg替换格式并尝试压缩jpeg图像时,它就像一个美女。