[править] Проблема в том, что код, который я пытаюсь использовать, не работает внутри изолята. Когда я пробую ту же оду за пределами изоли, это работает. Так что, вероятно, следует проверить проблемы на GitHub Flutter или Submut Nex. [edit2] не нашел проблему для этого, только что отправил: https://github.com/flutter/flutter/issues/55654
Я могу преобразовать CameraImage в png с этим куском кода ( https://gist.github.com/Alby-o/fe87e35bc21d534c8220aed7df028e03), а затем отобразите png с виджетом Image, но преобразование png очень медленное. Я хотел бы преобразовать CameraImage в ui.Image, а затем использовать виджет RawImage для его отображения. Это звучит возможно. Но когда я пробую этот фрагмент кода, я получаю сообщение об ошибке в строке ui.decodeImageFromPixels:
Future<ui.Image> makeUiImage(List<int> pixels,int width,int height) {
final c = Completer<ui.Image>();
ui.decodeImageFromPixels(
pixels,
width,
height,
ui.PixelFormat.rgba8888,
c.complete,
);
return c.future;
}
Future<ui.Image> convertCameraImageToUiImage(CameraImage image) async {
int startTime = DateTime.now().millisecondsSinceEpoch;
int time;
imglib.Image img = convertCameraImage(image);
time = DateTime.now().millisecondsSinceEpoch;
print("Converted in "+(time-startTime).toString()+"ms img "+img.toString()+" ("+img.width.toString()+","+img.height.toString()+")");
startTime=time;
ui.Image ret = await makeUiImage(img.getBytes(), image.width, image.height);
return ret;
}
E / flutter (1194): [ОШИБКА: flutter / runtime / dart_isolate. cc (915)]
Необработанное исключение: E / flutter (1194): ошибка: нативная функция 'instantiateImageCode c' (5 аргументов) не может быть найдена
E / флаттер (1194): # 0 decodeImageFromPixels.
(дартс: ui / painting.dart: 1740: 36) E / флаттер (1194): # 1 _futurize
(дарт: ui /painting.dart:4296:34) E / флаттер (1194): # 2
decodeImageFromPixels (дарт: ui / painting.dart: 1739: 37) E / флаттер (
1194) : # 3 makeUiImage
(пакет: flutterapp / utils / image_converter.dart: 37: 3) E / flutter (
1194): # 4 convertCameraImageToUiImage
(пакет: flutterapp / utils / image_converter.dart: 54: 24) E / flutter (
1194): # 5 processCameraImageIsolate.
(пакет: flutterapp / cameraoverlay2.dart: 448: 5) E / флаттер (1194): # 6
_RootZone.r unUnaryGuarded (dart: async / zone.dart: 1316: 10) E / flutter (1194): # 7
_BufferingStreamSubscription._sendData
(dart: async / stream_impl.dart: 338: 11) E / трепетание (1194): # 8
_BufferingStreamSubscription._add (dart: async / stream_impl.dart: 265: 7) E / трепетание (1194): # 9 _SyncStreamControllerDispatch._sendData
( async / stream_controller.dart: 766: 19) E / flutter (1194): # 10
_StreamController._add (dart: async / stream_controller.dart: 642: 7) E / flutter (1194): # 11 _StreamController.add
(dart: async / stream_controller.dart: 588: 5) E / flutter (1194): # 12
_RawReceivePortImpl._handleMessage (dart: isolate-patch / isolate_patch.dart: 174: 12)