How to use image loaders with Canvas and drawImage? It seems Canvas API requires ImageBitmap instead of Painter, so the image loader APIs like coil rememberImagePainter don't work.
yschimke
10/17/2021, 3:17 PM
So far came up with the following. But I guess need to put this behind some facade like rememberImageBitmap. Am I missing something?
Copy code
var imageBitmap by remember { mutableStateOf<ImageBitmap?>(null) }
val imageLoader = LocalImageLoader.current
val context = LocalContext.current
LaunchedEffect(key1 = null) {
val result = imageLoader.execute(ImageRequest.Builder(context)
.data("<https://upload.wikimedia.org/wikipedia/commons/3/31/Wiki_logo_Nupedia.jpg>")
.allowConversionToBitmap(true)
.build())
imageBitmap = result.drawable?.toBitmap()?.asImageBitmap()
}
a
Albert Chang
10/17/2021, 3:19 PM
Painter
class has a
draw()
function.
y
yschimke
10/17/2021, 3:27 PM
Perfect, thanks. DrawScope.draw(). That's a nice pattern for extending the Canvas API.