Android:从DB中的二进制数据加载的图像将不会显示

时间:2018-04-18 04:37:22

标签: java android sql-server image base64

我正在开发一个应用,用户可以在其中上传图片作为短篇博文的一部分;然后,此映像将进行base64编码并存储在MS SQL Server数据库中。当我稍后尝试查看图像时,它不会显示。我在ImageView中有一个占位符,当要加载图像但实际上没有图像显示时,它会消失。

编码图片:

ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
img.compress(Bitmap.CompressFormat.JPEG, 35, byteArrayOutputStream);
byte[] byteArray = byteArrayOutputStream.toByteArray();
String image = Base64.encodeToString(byteArray, Base64.DEFAULT);

解码图像并放入ImageView

byte[] decodeString = Base64.decode(blog.getImage(), Base64.DEFAULT);
Bitmap decodebitmap = BitmapFactory.decodeByteArray(decodeString, 0, decodeString.length);
image1.setImageBitmap(decodebitmap);

非常感谢任何有关我出错的地方的帮助。

1 个答案:

答案 0 :(得分:0)

使用此功能从base64获取Bitmap

public static Bitmap decodeBase64(String input)
    {
        byte[] decodedBytes = Base64.decode(input, 0);
        return BitmapFactory.decodeByteArray(decodedBytes, 0, decodedBytes.length);
    }

此功能会将上述位图设置为ImageView

private void setImage(ImageView iv,Bitmap bitmap)
{
    iv.setImageBitmap(bitmap);
}