3

私のAndroidアプリケーションでは、画像をバイト配列に変換し、文字列にエンコードして、データベースに保存できるようにしたいと考えています。しかし、画像を圧縮した後、サイズが小さすぎます..元のサイズを維持したい..助けてください..

  final Bitmap image=(images.get(position));

ByteArrayOutputStream bytes = new ByteArrayOutputStream(); 
                image.compress(Bitmap.CompressFormat.PNG, 100, bytes);

                byte[] b = bytes.toByteArray();
                 encodedImageString = Base64.encodeToString(b, Base64.DEFAULT);
4

1 に答える 1

0

以下を使用して、圧縮せずにデータベースに保存できます。

Bitmap bitmap; // obtain bitmap object
int size = bitmap.getRowBytes() * bitmap.getHeight(); 
ByteBuffer b = ByteBuffer.allocate(size); 
bitmap.copyPixelsToBuffer(b); 
byte[] bytes = new byte[size];
b.get(bytes, 0, bytes.length);

その後、データベースに保存できbytesます。

于 2013-10-30T12:10:02.907 に答える