如何使用 Coil 在 Android 中显示 Base64 编码的图像?

问题描述 投票:0回答:1

我尝试使用 Coil 在 Android 应用程序中显示编码为 Base64 字符串的 PNG 图像,但没有显示任何内容。我的 Base64 字符串开头如下:

data:image/png;base64,iVBORw0KGgo...
我正在尝试使用线圈进行解码和显示。

这是代码片段:

val base64ImageString = "data:image/png;base64,iVBORw0KGgo..." // Your Base64 string here    
val imageLoader = ImageLoader(context)
val request = ImageRequest.Builder(context)
    .data(base64ImageString)
    .target(imageView)
    .build()

imageLoader.enqueue(request)
android android-jetpack-compose base64 png coil
1个回答
0
投票

我发现问题是由于在解码 Base64 字符串之前没有正确剥离 data:image/png;base64, 前缀。这是正确的方法:

// Kotlin code snippet
val base64ImageStringWithPrefix = "data:image/png;base64,iVBORw0KGgo..." // Full Base64 string
val base64ImageString = base64ImageStringWithPrefix.substringAfter("base64,")

val imageByteArray = Base64.decode(base64ImageString, Base64.DEFAULT)

// Use Coil to load the byte array into the ImageView
val imageLoader = ImageLoader(context)
val request = ImageRequest.Builder(context)
    .data(imageByteArray)
    .target(imageView)
    .listener(
        onError = { _, throwable ->
            // Log or handle the error
            throwable.printStackTrace()
        }
    )
    .build()

imageLoader.enqueue(request)
© www.soinside.com 2019 - 2024. All rights reserved.