Java-如何压缩BuffereImage?

Java-如何压缩BuffereImage?,java,compression,bufferedimage,Java,Compression,Bufferedimage,另外,哪种方法(jpeg、png、gif)最适合于频带压缩?jpeg最有可能。默认为75%压缩,但缺少质量 如果你想要质量:使用png。您可以获得jpg不支持的透明度。PNG的质量也被列为100%。如果您希望质量好,但文件大小小,您可以始终使用png并使用压缩类型,类似于文件的base-64。然后将其解压缩并存储图像。它将使用低内存量来存储图像,但将允许您有效地保持图像质量不变 压缩由各种文件格式(JPEG、PNG、GIF等)自己处理 “带宽最佳”是一个完全主观的问题,取决于图像本身的大小和内容

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

jpeg最有可能。默认为75%压缩,但缺少质量


如果你想要质量:使用png。您可以获得jpg不支持的透明度。PNG的质量也被列为100%。如果您希望质量好,但文件大小小,您可以始终使用png并使用压缩类型,类似于文件的base-64。然后将其解压缩并存储图像。它将使用低内存量来存储图像,但将允许您有效地保持图像质量不变

压缩由各种文件格式(JPEG、PNG、GIF等)自己处理

“带宽最佳”是一个完全主观的问题,取决于图像本身的大小和内容


例如,具有少量颜色和少量“平滑”(例如像素图形)的小图像将适合PNG和GIF格式。具有多种颜色和大量平滑处理的较大图像(例如照片)使用该格式效果更好。使用该格式,您还可以控制编码过程中的压缩/质量。

使用何种格式:

  • 是lossey压缩-您将丢失详细信息。(质量水平是可控的,这很有帮助)
  • 是无损压缩,但它转换为8位颜色空间会扭曲许多图像,尤其是自然图像
  • 是无损压缩
除非您有令人信服的理由不使用PNG,否则我建议您使用它

对于相同的图像,但使用不同的格式,图像质量通常与图像大小近似成反比。我建议使用PNG,如果PNG太大,请使用JPEG。PNG还有支持透明度的好处

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

和往常一样,最好的测试是为您的应用程序尝试所有测试并进行比较;然而,对于大多数情况,PNG是一个合理的默认值,在这种情况下,此类分析的返回值最小

创建JPEG、PNG或GIF:

就从Java
BuffereImage
实际创建JPEG、PNG或GIF而言。请从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...
}

勾选此项:但我首先如何压缩它?编辑以解决您的问题:)