Android - Jak przekonwertować obraz z webview.capturePicture () na bajt [] iz powrotem na bitmapę

Próbuję przechwycić obraz, który otrzymuję z webview.capturePicture (), aby zapisać go do bazy danych sqliteDatabase, aby zrobić, muszę przekonwertować obraz na bajt [], aby móc zapisać go jako BLOB w mojej tabeli , a następnie przez możliwość pobrania tego bajtu [] i przekonwertowania go z powrotem na bitmapę.

Oto co robię:

<code>Picture p = webView.capturePicture();  
ByteArrayOutputStream bos = new ByteArrayOutputStream();  
p.writeToStream(bos);

byte[] ba = bos.toByteArray());
</code>

Następnie odzyskuję obraz według:

<code>byte[] image = cursor.getBlob(imageColumnIndex);
Bitmap bm = BitmapFactory.decodeByteArray(image, 0, image.length);
</code>

Mogę dobrze pobrać bajt [], ale cały czas otrzymuję zerową mapę bitową z bitmapfactory.

Zauważam też, że jeśli I log.d (TAG, "+ bos) otrzymam długą sekwencję bajtów zgodnie z oczekiwaniami, ale jeśli zrobię to samo z ba zaraz po tym, jak zrobię bos.toByteArray (), otrzymam po prostu krótką tablicę, coś takiego: [B @ 2b0a7c60

Zgaduję, że mam problem z przekonwertowaniem przez OutputStream na byteArray. Czy to możliwe, ponieważ metoda capturePiture () zwraca OutputStream zamiast ByteArrayOutputStream?

Każda pomoc byłaby doceniana.

questionAnswers(1)

yourAnswerToTheQuestion