Bitmap.Config画布上有/无alpha通道的差异

时间:2011-02-20 14:11:27

标签: android canvas bitmap

我正在绘制一些Bitmaps到画布。这些位图中的一些(大多数)使用alpha通道,透明度/半透明度对于图像看起来正确至关重要。这是必要的,因为我在整个Activity中执行了一些图像处理。

最终用户完成了他们的任务,我使用画布并使用此方法将其保存到PNG:

Bitmap.createBitmap(this.getWidth(), this.getHeight(), Bitmap.Config.ARGB_8888);

此时我不再对画布/图像进行任何修改,但我确实将图像显示在另一个Canvas中的Activity。我希望它与上一个Activity中的 完全 相同,所以如果我使用Bitmap.Config.RGB_565代替或者我会丢失信息,这是否重要?

1 个答案:

答案 0 :(得分:7)

如果您使用Bitmap.Config.RGB_565,肯定会丢失信息。它可能在手机显示屏上无法辨别,但当您从RGB_8888转到RGB_565时,您将从24位颜色信息(不计算alpha)变为16位颜色信息。 RGB_8888中没有256个不同的红色,绿色和蓝色值,RGB_565中只有64个不同的绿色值和32个不同的红色和蓝色值。这可能会导致RGB_565图像中出现条带或其他类型的量化伪像。