Различия Bitmap.Config с / без альфа-канала на холсте - PullRequest
1 голос
/ 20 февраля 2011

Я рисую некоторые растровые изображения на холсте. Некоторые (большинство) из этих растровых изображений используют альфа-канал, и прозрачность / прозрачность имеют решающее значение для правильного изображения. Это необходимо из-за некоторых манипуляций с изображениями, которые я выполняю на протяжении Activity.

В конце концов пользователь завершает свою задачу, и я беру холст и сохраняю его в PNG с помощью этого метода:

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

На данный момент я больше не делаю никаких изменений в канве / изображении, но отображаю изображение в Canvas в другом Activity. Я хочу, чтобы он выглядел точно так же, как и в предыдущем Activity, поэтому имеет ли значение, если я использую Bitmap.Config.RGB_565 вместо этого или я потеряю информацию?

1 Ответ

7 голосов
/ 20 февраля 2011

Вы обязательно потеряете информацию, если будете использовать Bitmap.Config.RGB_565. Он может быть не различим на дисплее телефона, но при переходе от RGB_8888 к RGB_565 вы переходите от 24 бит информации о цвете (не считая альфа) к 16 битам информации о цвете. Вместо 256 различных значений красного, зеленого и синего в RGB_8888 в RGB_565 есть только 64 различных значения зеленого и 32 различных значения красного и синего. Это может привести к полосатости или другим видам артефактов квантования в вашем изображении RGB_565.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...