【发布时间】:2011-07-13 14:00:07
【问题描述】:
Android 支持三种具有此评级的图像格式:
PNG(首选)、JPG(可接受)和 GIF(不鼓励)。 来源:http://developer.android.com/guide/topics/resources/drawable-resource.html#Bitmap
为什么 JPG 只被列为可接受的?对于没有透明度的图像,JPG 不是更好的格式吗,因为它们比 PNG:s 占用更少的空间?
还是 PNG 在运行时表现得更好,值得将全屏背景图像等存储为 PNG:s,即使它们往往会使 APK 变得更大?
我不太满意许多包含大量图形的应用程序占用了我的内部存储空间,因此它一直都满了。我的猜测是,当他们可以使用 JPG 时,他们在这个意义上通过使用 PNG 进行了糟糕的优化,因为开发人员指南说 PNG 是首选,但没有解释原因。谁能告诉我说 JPG 应该用于非透明图像时是否正确?
【问题讨论】:
-
这是个好问题。我敢肯定这是有原因的,但它们隐藏在我们隐藏的细节中。总的来说,我认为嵌入式操作系统最好使用一种图像格式作为原生格式,因为它必须处理更少的变化和猜测。 JPEG 确实有更好的压缩方案,但像 PNG 一样,有很多。 JPEG2000 的质量比普通的 JPEG 等要好。然而,PNG也是如此。关于 PNG 格式,我确定的一件事是它确实不必 必须使用 Alpha 通道。有纯 RGB PNG 编解码器,Android 也原生支持这些编解码器。
-
我们在这里也有同样的问题。对于 WP8,我将 png 用于具有透明度的图像,而将 jpeg 用于没有透明度的图像。具有 98% 质量的 jpeg 看起来仍然很棒,但已经开始节省 10-20% 的空间。在一种情况下,我保存了 75% 质量的图像,但您仍然看不到伪影(或者只是很少.. 源图像也不完美)。在另一种情况下,质量为 85% 的 jpeg 看起来已经很糟糕,我们将为此出口新的。所以只是说“压缩后的图像看起来很糟糕”是错误的。
标签: android image optimization resources drawable