是否可以在Android上控制png编码的图像质量?

时间:2016-07-10 17:33:51

标签: android image png

我正在尝试使用

将位图转换为PNG
bitmap.compress(Bitmap.CompressFormat.PNG, quality, outStream);

然后共享该文件。根据{{​​3}} quality参数,PNG格式会被忽略。

我可以在将位图转换为PNG的同时控制图像质量,尽管它是无损格式吗?

或者我应该使用JPEG,考虑到我要分享的图像没有任何透明度。另一方面,据我所知,图像的某些部分(约30-40%)填充了相同的颜色,这是PNG的效果很好。

1 个答案:

答案 0 :(得分:2)

PNG没有品质因素。 PNG压缩是无损的(即质量总是100%)。

然而,您可以在将图像质量传递到压缩器之前降低图像质量,方法是减少颜色数量和透明度等级,而不是使用消除锯齿等,以使图像数据更具可压缩性。 / p>

之后您还可以使用单独的优化器重新压缩PNG文件,例如pngquant,pngcrush,imagemagick / graphicsmagick,zopflipng或optipng。

请注意,imagemagick / graphicsmagick确实具有PNG压缩的“质量”值,但它具有与JPEG文件不同的含义(较高的PNG“质量”通常意味着更好的压缩,但图像外观没有变化)。