Я пытаюсь написать асинхронную функцию для сохранения рисунка с холстом в файл. По какой-то причине функция не завершена, то есть файл не создан. Мне интересно, если процесс просто занимает много времени, так как флаттер не выдает никакой ошибки.
void _saveImage() async {
final recorder = new ui.PictureRecorder();
final canvas = new Canvas(recorder);
MyPainter mypainter = new MyPainter(
shapes: _shapes,
lineColor: Colors.amber,
width: 1.0
);
mypainter.paint(canvas,Size(1280, 720));
final picture = recorder.endRecording();
final img = await picture.toImage(1280, 720);
final pngBytes = await img.toByteData(format: ImageByteFormat.png); //This line will not work
File('/home/filename.png').writeAsBytesSync(await pngBytes.buffer.asInt8List());
}
Редактировать: В настоящее время toByteData
не поддерживается флаттером, см. https://github.com/flutter/flutter/issues/44908.