📜  将base64转换为位图android - Java(1)

📅  最后修改于: 2023-12-03 15:39:13.868000             🧑  作者: Mango

将Base64字符串转换为位图(Android - Java)

在Android应用程序中,我们经常需要将Base64字符串转换为位图(Bitmap)对象。这可以通过以下简单的Java代码来完成。

步骤1:导入Base64类

Java类库中有一个名为Base64的类,它提供了将Base64编码字符串转换为原始字节数组和将字节数组编码为Base64字符串的方法。因此,首先需要导入这个类。

import android.util.Base64;
步骤2:将Base64字符串转换为字节数组

在将Base64字符串转换为位图之前,需要先将其转换为字节数组。可以通过以下代码实现。

byte[] decodedString = Base64.decode(base64String, Base64.DEFAULT);

这里,base64String是要转换的Base64字符串,decodedString是转换后的字节数组。

步骤3:将字节数组转换为位图

有了字节数组,就可以使用BitmapFactory类的decodeByteArray()方法将其转换为位图对象。

Bitmap bitmap = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);

这里,decodedString是要转换的字节数组,bitmap是转换后的位图对象。

完整代码
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.util.Base64;

public class Base64Utils {
    
    public static Bitmap decodeBase64(String base64Str) {
        byte[] decodedString = Base64.decode(base64Str, Base64.DEFAULT);
        return BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);
    }
}
使用示例
String base64String = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAASCAMAAAB/2U7WAAAAA3NCSVQICAjb4U/gAAACGVBMVEUBOjQXOjQXPDIcOjQXPDJcOzUcPDJcPDQXPDIcPDJcOzMcPDJcPDhU5v+OAAAAAXRSTlMAQObYZgAAAKNJREFUKM+d0sEBACAMAw/EF7+vANBvWpxRnqh4jNU1fLoGYt6wwGkVipbPn+A7jcDIwYiCL+MSLdukFkSrSlKXnwsh9r5x7wB3BDGEkgjMCgBvjiJfC+YdAAAAAASUVORK5CYII=";
Bitmap bitmap = Base64Utils.decodeBase64(base64String);

以上代码将Base64字符串转换为位图对象。如果Base64字符串是按照“data:image/png;base64”格式编码的,则需要去掉前缀以获取正确的Base64字符串。