Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image 异步函数未完成_Image_Flutter_Async Await_Save_Flutter Web - Fatal编程技术网

Image 异步函数未完成

Image 异步函数未完成,image,flutter,async-await,save,flutter-web,Image,Flutter,Async Await,Save,Flutter Web,我正在尝试编写一个异步函数,用于将带有画布的图形保存到文件。由于某些原因,函数未完成,这意味着未创建文件。我想知道这个过程是否需要很长时间,因为颤振不会抛出任何错误 void _saveImage() async { final recorder = new ui.PictureRecorder(); final canvas = new Canvas(recorder); MyPainter mypainter = new MyPainter( sh

我正在尝试编写一个异步函数,用于将带有画布的图形保存到文件。由于某些原因,函数未完成,这意味着未创建文件。我想知道这个过程是否需要很长时间,因为颤振不会抛出任何错误

  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());
  }

编辑:当前颤振web不支持
toByteData
,请参阅

是否尝试在步骤之间添加一些
print()
s?如果是这样,您会看到什么?代码一直运行到第行
final pngBytes=wait img.toByteData(格式:ImageByteFormat.png)。也使用了
try/catch
,但没有看到任何错误。嗯,奇怪,你确定吗?toByteData()应该可以正常工作,因为/home/filename.png看起来可疑,所以可能在编写时出错……在指定正确的目录后,在android设备上工作正常。