webview.capturePicture() から取得した画像をキャプチャして sqliteDatabase に保存しようとしています。そのためには、画像をバイト [] に変換してテーブルに BLOB として保存できるようにする必要があります。 、そしてそのバイト[]を取得してビットマップに戻すことができます。
これが私がやっていることです:
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() メソッドが ByteArrayOutputStream ではなく OutputStream を返すためでしょうか?
どんな助けでも大歓迎です。