Java - 如何压缩BufferedImage?

lla*_*pia 2 java compression bufferedimage

另外,哪种方法(jpeg,png,gif)最适合带宽压缩?

voi*_*gic 5

使用什么格式:

  • JPG/JPEG是lossey压缩 - 你将失去细节.(质量水平可控,这有助于)
  • GIF是无损压缩,但它转换为8位色彩空间会扭曲许多图像,尤其是自然图像.
  • PNG是无损压缩.

除非你有令人信服的理由不使用PNG,否则我会推荐它.更多细节

使用相同的图像,但使用不同的格式,图像质量通常与图像大小大致相反.我建议使用PNG,如果您的PNG太大,请使用JPEG.巴布亚新几内亚还有支持透明度的好处.

GIF实际上只适用于小型计算机生成的图像,如图标或排版.以上链接还包含图像大小比较.

与往常一样,最好的测试是将它们全部用于您的应用并进行比较; 但是,对于大多数情况下,PNG是一个合理的默认值,其中这种分析的返回值最小.

创建JPEG,PNG或GIF:

至于实际从Java创建JPEG,PNG或GIF BufferedImage.查看Sun/Oracle的本教程.有很多内容可以帮助您,最后一节明确地涉及创建JPEG,PNG和GIF.以下是来自上述链接教程的修改后的剪辑:

try {
    BufferedImage bufImg = getBufferedImage(); //get BufferedImage from your code...
    File fout = new File("saved.png");
    ImageIO.write(bufImg, "png", fout);
} catch (IOException e) {
    //handle exception...
}
Run Code Online (Sandbox Code Playgroud)

  • 但是我首先如何压缩它? (2认同)