Android: изображение не сохраняет свой первоначальный цвет с использованием canvas.drawBitmap - PullRequest
0 голосов
/ 19 января 2011

Я занимаюсь разработкой приложения для Android и столкнулся со странной проблемой.Я делаю некоторую обработку изображений на SurfaceView.Я рисую обработанное изображение, используя холст и следующий метод:

canvas.drawBitmap(image, x, y, paint)

Мой SurfaceView имеет цветной фон (# 3500ffff, вид очень темно-зеленый), и когда изображение нарисовано, я могу заметитьчто его оригинальные цвета не сохранились.Он имеет очень легкий темно-зеленый оттенок, как если бы альфа-изображение было изменено.

Кто-нибудь уже сталкивался с этой проблемой?У вас есть идея, как это исправить?

Ответы [ 2 ]

1 голос
/ 20 января 2011

Это может произойти с 16-битным адресатом.16-битные буферы кодируют пиксели в формате 565, что обеспечивает более высокую точность в зеленом канале, что иногда приводит к зеленоватым оттенкам.32-битное назначение / битовая карта решит эту проблему.

0 голосов
/ 20 января 2011

Предполагая, что ваше изображение не является прозрачным, как вы определяли краску, оно не должно быть прозрачным цветом или использовать какой-либо специальный эффект. Попробуйте использовать null для рисования.

Другое дело, что вы рисуете сначала изображение или фон? Просто интересно, если ваш порядок рисования правильный.

Если вы установите непрозрачную поверхность, изменится ли изображение?

Еще одна вещь, которую я заметил и которая связана с синхронизацией событий, заключается в том, что иногда рисование на поверхности создает полупрозрачный спрайт при очень быстром перемещении пальца по экрану, который инициализирует рисование.

...