Bitmap.compress возвращает false для нарисованного изображения - PullRequest
7 голосов
/ 19 мая 2011

У меня есть некоторый код, где пользователь рисует что-то на экране, и я хочу сохранить его как PNG в байте []. Однако метод compress () возвращает false. Есть идеи, почему это так? Есть ли лучший способ получить байт []?

Bitmap bm = Bitmap.createBitmap(mWidth, mHeight, Bitmap.Config.ALPHA_8);
Canvas c = new Canvas(bm);
c.drawPath(mSignaturePath, mSignaturePaint);
ByteArrayOutputStream out = new ByteArrayOutputStream();
if (bm.compress(Bitmap.CompressFormat.PNG, 100, out)) {
    byte[] result = out.toByteArray(); // Never gets called
}

Заранее спасибо.

1 Ответ

8 голосов
/ 26 мая 2011

Проблема заключалась в том, как я создавал образ:

Bitmap bm = Bitmap.createBitmap(mWidth, mHeight, Bitmap.Config.ALPHA_8);

Когда я изменил его на Bitmap.Config.RGB_565, он работал нормально.

Спасибо Марку Мерфи (@commonsware) засовет в рабочее время!

...