【问题标题】:Retrieve byte[] in android from JSON webservice从 JSON 网络服务检索 android 中的 byte[]
【发布时间】:2013-02-22 10:05:21
【问题描述】:

我成功地将图像以 BLOB 格式存储在数据库中。

webservices模型类中图片的数据类型为byte []。

网络服务:

@POST
@Consumes("application/json")
@Produces("application/json")
@Path("login")
public User Login(User input) {

请求:

[
    {
        "id": 2,
        "password": "******",
        "username": "haris",
        "image": "iVBORw0KGgoAAAANSUhEUgAizDMizDMizDMizDMizDMizDMizDMizDMizDMizDMiz/JPL/AOc68RGNGkMYAAAAAElFTkSuQmCC"
    }
]

我们可以看到json服务转换成String,byte[]转换成String。

我尝试将字符串转换为字节[],但结果我看不到任何图片数据。

byte [] byteData = new byte[imageData().length()];
            
imageView.setImageBitmap(getImage(byteData));


public static Bitmap getImage(byte[] image) {
    return BitmapFactory.decodeByteArray(image, 0, image.length);
}

【问题讨论】:

  • 这看起来像 Base64 编码,使用 64=2^6 字符 A-Za-z-9/+ 来编码 6 位,需要 4 个字符代表 3 个字节。

标签: java android arrays rest blob


【解决方案1】:

这样使用

byte[] decodedString = Base64.decode(img, Base64.DEFAULT);
Bitmap bitmap = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);
if (bitmap != null) {
Drawable image = new BitmapDrawable(Bitmap.createScaledBitmap(bitmap, 90, 100, true));
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多