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

How to convert base64 string into image in kotlin android

我有一个表示位图图像的 Base64 字符串。

我需要再次将该字符串转换为位图图像,以便在我的 Android 应用程序的 ImageView 上使用它

怎么做?

您可以使用 android 方法

这里 imageString 是您的图片的 base64String。

这是 java 代码:

byte[] decodedByte = Base64.decode(imageString, Base64.DEFAULT);
Bitmap bitmap = BitmapFactory.decodeByteArray(decodedByte, 0, decodedString.length); 

这里是科特林代码:

val decodedByte = Base64.decode(imageString, Base64.DEFAULT)
val bitmap = BitmapFactory.decodeByteArray(decodedByte, 0, decodedString.length) 

之后就可以设置到图片视图中了

yourimage.setImageBitmap(bitmap);

您可以使用此代码进行解码:-

val imageBytes = Base64.decode(base64String, Base64.DEFAULT)
val decodedImage = BitmapFactory.decodeByteArray(imageBytes, 0, imageBytes.length)
imageView.setImageBitmap(decodedImage)

根据上面的回答,我把它做成了一个函数。

科特林: 你可以创建一个这样的函数

 fun decodePicString (encodedString: String): Bitmap {

    val imageBytes = Base64.decode(encodedString, Base64.DEFAULT)
    val decodedImage = BitmapFactory.decodeByteArray(imageBytes, 0, imageBytes.size)

    return decodedImage
}    

然后调用它并将其设置为您的 imgView 像这样:

val mImgView = findViewById<ImageView>(R.id.imageView)
mImageView.setImageBitmap(decodePicString(your encoded string for the picture))

对于那些寻求 Base64 转化(不仅仅是 Android)的一般答案的人:

你可以利用java.util.Base64

to encode

val imageString = Base64.getEncoder().encode(imageBytes)

to decode

val imageBytes = Base64.getDecoder().decode(imageString)

在 Kotlin 中,您可以只对 byteArray 使用 decode 函数...

private fun stringToBitmap(encodedString: String): Bitmap {
        val imageBytes = decode(encodedString, DEFAULT)
        return BitmapFactory.decodeByteArray(imageBytes, 0, imageBytes.size)
    }