Michael Paus
08/17/2023, 12:07 PMval PNG_BASE64_HEADER = "data:image/png;base64,"
@OptIn(ExperimentalEncodingApi::class)
private fun resolveImage(imgBase64: String?): ByteArray? {
try {
return imgBase64?.let {
if (it.startsWith(PNG_BASE64_HEADER)) {
Base64.Default.decode(it.replaceFirst(PNG_BASE64_HEADER,""))
} else {
log.debug { "Unknown image format: '${imgBase64.take(20)}'" }
null
}
}
} catch (e: Exception) {
throw Exception("Could not resolve image from base 64 string.", e)
}
}
You can then get the image via:
Image.makeFromEncoded(encodedImageData).toComposeImageBitmap()
ribesg
08/17/2023, 1:28 PMif (imgBase64 == null) return null
on the first line of this function would make it much easier to read