2

陷入位图透明度的一个奇怪问题,我随身携带图像并将其转换为 Blob 并将其存储在本地数据库中。

我有这张图片

在此处输入图像描述

在将其存储为 Blob 并获取它之后,图像背景将被填充

在此处输入图像描述

知道为什么会发生这种情况,并解决它。

谢谢。

这就是我转换为字节并存储到数据库的方式

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

得到了解决方案,这是使用 Android 的缩略图文件夹的原因(它创建了额外的预览并且我将缩略图光标传递给图像适配器)。当我直接从数据库中获取图像时,它会变得透明。

于 2012-04-10T07:22:36.120 回答
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 回答