Android kotlin 将Base64字符串转换成Bitmap
前言
后端返回的验证码图片是Base64字符串,APP得将其转换成Bitmap,然后展示出来。
下面的字符串就是举例:
"data:image/png;base64,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"
代码
将Base64字符串转换成Bitmap
// 将base64字符串取出来,记得只需要后面编码的一段,不需要“base64”,转成Base64的ByteArray
val dec = Base64.decode(it.img.split(",")[1], Base64.DEFAULT)
// 将ByteArray转Bitmap
val bitmap = BitmapFactory.decodeByteArray(dec, 0, dec.size)
在jetpack compose的Image控件中显示Bitmap
Image(
bitmap = bitmap.asImageBitmap(),
contentDescription = "验证码"
)