我正在尝试捕获从webview.capturePicture()获取的图片,并将其保存到sqliteDatabase中。为此,我需要将图像转换为byte[],以便能够将其保存为BLOB在我的表中,然后能够检索该byte[]并将其转换回位图。
这是我正在进行的操作:
我可以很好地检索byte [],但我总是从bitmapfactory得到一个空位图。
我还注意到,如果我log.d(TAG,“”+bos),我将获得预期的长字节序列,但如果我在执行完bos.toByteArray()后对ba执行同样的操作,我只会得到一个短数组,像这样:[B@2b0a7c60
我猜想我可能遇到了将OutputStream转换为byteArray的问题。这可能是因为capturePiture()方法返回的是OutputStream而不是ByteArrayOutputStream吗?
任何帮助都将不胜感激。
这是我正在进行的操作:
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);
我可以很好地检索byte [],但我总是从bitmapfactory得到一个空位图。
我还注意到,如果我log.d(TAG,“”+bos),我将获得预期的长字节序列,但如果我在执行完bos.toByteArray()后对ba执行同样的操作,我只会得到一个短数组,像这样:[B@2b0a7c60
我猜想我可能遇到了将OutputStream转换为byteArray的问题。这可能是因为capturePiture()方法返回的是OutputStream而不是ByteArrayOutputStream吗?
任何帮助都将不胜感激。