Bitmap.compress возвращает false для рисунка

У меня есть код, в котором пользователь рисует что-то на экране, и я хочу сохранить его как 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 } 

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

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

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

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

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