另外,哪种方法(jpeg,png,gif)在带宽方面最适合压缩?
答案 0 :(得分:5)
使用何种格式:
除非你有令人信服的理由不使用PNG,否则我会推荐它。 More details
使用相同的图像,但使用不同的格式,图像质量通常与图像大小大致相反。我建议使用PNG,如果您的PNG太大,请使用JPEG。 PNG还有支持透明度的好处。
GIF实际上只适用于小型计算机生成的图像,如图标或排版。以上链接还包含图像大小比较。
与往常一样,最好的测试是为您的应用程序全部尝试并进行比较;但是,对于大多数情况下,PNG是一个合理的默认值,其中这种分析的返回值最小。
创建JPEG,PNG或GIF:
从Java BufferedImage
实际创建JPEG,PNG或GIF。查看Sun / Oracle的this tutorial。有很多内容可以帮助您,last section明确地解决了创建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...
}
答案 1 :(得分:2)
压缩由各种文件格式本身(JPEG,PNG,GIF等)处理。
“带宽最佳”是一个完全主观的问题,取决于图像本身的大小和内容。
例如,具有少量颜色和少量“平滑”(例如像素图形)的小图像将很好地处理PNG和GIF格式。具有多种颜色和大量平滑处理的较大图像(例如照片)将使用JPEG做得更好,并且使用该格式,您还可以控制编码期间的压缩/质量。
答案 2 :(得分:0)
JPEG最有可能。它默认为75%压缩,但缺乏质量。
如果你想要质量:使用png。你得到透明度,jpg不支持。 pngs的质量也列为100%。如果你想要很好的质量,但文件大小很小,你总是可以使用png并使用压缩类型,类似于文件的base-64。然后只需解压缩并存储图像。它将使用较低的内存量来存储图像,但可以让您有效地保持质量不变。