如何在android中将base64字符串图像转换为blob?

时间:2014-10-18 06:34:37

标签: android

我有一个Base64字符串图像。我想将其转换为blob类型并将其保存在数据库中。 我有

String base64Image="iVBORw0KGgoAAAANSUhEUgAAAGAAAACgCAYAAADzcGmMAAAACSV...";

这就是我试过的......

 byte[] byteImage=org.apache.commons.codec.binary.Base64.decodeBase64(befImage.getBytes());

json.put("during_unloading_photo", byteImage); 

其中json是我的JSONObject和 during_unloading_photo是blob类型的列名。

2 个答案:

答案 0 :(得分:1)

要将blob保存到DataBase,您必须将base64 satring图片转换为Byte[],然后将byte[]保存到db。 用于将base64 string转换为位图

 public static Bitmap decodeBase64Profile(String input) {
    Bitmap bitmap = null;
    if (input != null) {
        byte[] decodedByte = Base64.decode(input, 0);
        bitmap = BitmapFactory
                .decodeByteArray(decodedByte, 0, decodedByte.length);
    }
    return bitmap;
}

现在您可以将此Bitmap转换为Byte[]赞:

public static byte[] getBytesFromBitmap(Bitmap bitmap) {
    if (bitmap!=null) {
        ByteArrayOutputStream stream = new ByteArrayOutputStream();
        bitmap.compress(Bitmap.CompressFormat.JPEG, 70, stream);
        return stream.toByteArray();
    }
    return null;
}

然后最后您可以将此字节[]保存到Db.make确保您的列名称typeblob

享受您的代码:) -

答案 1 :(得分:0)

getBytes为您提供字符串的字节,它不执行base64解码。您需要使用Base64解码器进行转换。一点点搜索将显示您可以使用的几个选项。