在Java中保存到磁盘之前压缩映像

时间:2011-04-15 14:48:03

标签: java image compression

是否可以在保存之前压缩图像? 我正在使用Robot类来捕获图像,它返回一个BufferedImage。 如何压缩此图像然后保存?

2 个答案:

答案 0 :(得分:3)

.png个文件是(无损)压缩图像。

您可以ImageIO.write()使用save a .png image

ImageIO.write(myBufferedImage, "png", outputfile);

答案 1 :(得分:0)

有颜色压缩(“压缩质量”)并且存在分辨率压缩(“调整大小”)。例如。我使用非常低的“压缩质量”得到了一张4mb照片到270K,但看起来很糟糕,但是我使用合理的质量但尺寸更小将它降低到12K。

我建议调整大小:

https://github.com/rkalla/imgscalr/blob/master/src/main/java/org/imgscalr/Scalr.java

我希望调整大小是标准Java库的一部分,但它似乎不是,(或标准方法存在图像质量问题?)。但是里亚德的图书馆真的很小 - 它只是一个班级。我只是将这个类复制到我的项目中,因为我从来没有学过如何使用Maven,而且效果很好。 How can I compress images using java?

我对压缩质量的建议:请参阅fujy的答案:

How can I compress images using java?