toImage method
Converts this image to a ui.Image. The caller is responsible for calling ui.Image.dispose() on the returned image.
Implementation
Future<ui.Image> toImage() async {
final rtByteArray = _withThrowingErrorHandler((errorHandler) {
return runtimecore.RT_Image_getBuffer(_handle, errorHandler);
});
// fromUint8List creates a copy
final buffer = await ImmutableBuffer.fromUint8List(
rtByteArray.data.asTypedList(rtByteArray.size));
final imageDescriptor = ui.ImageDescriptor.raw(buffer,
width: width, height: height, pixelFormat: ui.PixelFormat.rgba8888);
final codec = await imageDescriptor.instantiateCodec();
final frameInfo = await codec.getNextFrame();
final uiImage = frameInfo.image.clone();
frameInfo.image.dispose();
buffer.dispose();
return uiImage;
}