2

ビットマップの透明度に関する奇妙な問題に巻き込まれ、画像を持っていて、それを Blob に変換してローカル データベースに保存しました。

私はこのイメージを持っています

ここに画像の説明を入力

Blobとして保存してフェッチした後、画像の背景が塗りつぶされます

ここに画像の説明を入力

なぜこれが起こっているのか、そしてそれを乗り越えるためのアイデア。

ありがとう。

これは、Byteに変換してデータベースに保存する方法です

public byte[] BitmapToByte(Bitmap bitmap)
    {
        ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
        bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos); //bm is the bitmap object   
        byte[] b = baos.toByteArray();
        return b;
    }

これは、データベースからBlobをビットマップとして取得する方法です

mImageView.setImageBitmap(BitmapFactory.decodeByteArray(blob, 0, blob.length));//カーソルによるブロブ

4

2 に答える 2

0

私の問題は修正されました

Bitmap.CompressFormat.JPG から Bitmap.CompressFormat.PNG

 public byte[] BitmapToByte(Bitmap bitmap)
        {
            ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
            //bitmap.compress(Bitmap.CompressFormat.JPG, 100, baos); //origin
            bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos); //fixed

            byte[] b = baos.toByteArray();
            return b;
        }
于 2015-11-23T07:43:34.677 に答える
0

解決策を手に入れました。これは、Android の Thumbnail フォルダーを使用する原因です (これにより、追加のプレビューが作成され、サムネイル カーソルがイメージ アダプターに渡されます)。データベースから直接画像を取得すると、透明になります。

于 2012-04-10T07:22:36.120 に答える