Я пытаюсь захватить изображение, которое я получаю от webview.capturePicture(), чтобы сохранить его в sqliteDatabase, для этого мне нужно преобразовать изображение в байт [], чтобы иметь возможность сохранить его как BLOB в моей таблице , а затем получить этот byte[] и преобразовать его обратно в растровое изображение.
Вот что я делаю:
Picture p = webView.capturePicture();
ByteArrayOutputStream bos = new ByteArrayOutputStream();
p.writeToStream(bos);
byte[] ba = bos.toByteArray());
Затем я получаю изображение:
byte[] image = cursor.getBlob(imageColumnIndex);
Bitmap bm = BitmapFactory.decodeByteArray(image, 0, image.length);
Я могу получить байт [] просто отлично, но я все время получаю нулевое растровое изображение от bitmapfactory.
Я также заметил, что если я log.d(TAG, ""+bos), я получаю длинную последовательность байтов, как и ожидалось, но если я делаю то же самое с ba сразу после того, как я делаю bos.toByteArray(), я просто получаю короткий массив, что-то вроде этого: [B@2b0a7c60
Я предполагаю, что у меня возникли проблемы с преобразованием OutputStream в byteArray. Может ли это быть связано с тем, что метод capturePiture() возвращает OutputStream вместо ByteArrayOutputStream?
Любая помощь будет оценена по достоинству.