Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.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
在flatter中,如何加载本地图像作为ui.image在画布中绘制它?_Image_Flutter_Canvas_Load_Drawimage - Fatal编程技术网

在flatter中,如何加载本地图像作为ui.image在画布中绘制它?

在flatter中,如何加载本地图像作为ui.image在画布中绘制它?,image,flutter,canvas,load,drawimage,Image,Flutter,Canvas,Load,Drawimage,我阅读了几乎所有的帖子,但仍然找不到合适的方法(如果有的话)将本地图像加载为ui.image,以便可以在flatter中的canvas.drawImage中使用。我用下面的代码块从资产映像中获取ui.image。然而,32x32大小的图像需要几秒钟的时间,我无法确定它何时完全加载并准备在画布中绘制 static Future<ui.Image> askImage(String path) async { Completer<ImageInfo> completer

我阅读了几乎所有的帖子,但仍然找不到合适的方法(如果有的话)将本地图像加载为ui.image,以便可以在flatter中的
canvas.drawImage
中使用。我用下面的代码块从资产映像中获取
ui.image
。然而,32x32大小的图像需要几秒钟的时间,我无法确定它何时完全加载并准备在画布中绘制

static Future<ui.Image> askImage(String path) async {
    Completer<ImageInfo> completer = Completer();
    final img = Image(image: AssetImage(path));
    img.image
        .resolve(ImageConfiguration())
        .addListener(ImageStreamListener((ImageInfo info, bool _) {
      completer.complete(info);
    }));
    ImageInfo imageInfo = await completer.future;
    return imageInfo.image;
  }

  static ui.Image load2(String xxxx) {
    ui.Image info;
    askImage(xxxx).then((info) {
      if (info != null) {
        print(info.width);
        print(info.height);
      }
      return (info);
    });
  }
静态未来askImage(字符串路径)异步{
Completer Completer=Completer();
最终img=图像(图像:AssetImage(路径));
图像
.resolve(ImageConfiguration())
.addListener(ImageStreamListener((ImageInfo信息,bool){
完成者。完成(信息);
}));
ImageInfo ImageInfo=等待完成者.future;
返回imageInfo.image;
}
静态ui.Image load2(字符串xxxx){
ui.图像信息;
askImage(xxxx)。然后((信息){
如果(信息!=null){
打印(信息宽度);
打印(信息高度);
}
返回(信息);
});
}

我也在看图像包的https://pub.dev/packages/image'但我不知道如何将
Image
从该软件包转换为
ui.Image
,这是flatter中
canvas.drawImage
功能所需的。我在这里也看到了一篇老文章(),但我不确定ImageResource来自何处。

我找到了这篇讨论的线索。我需要类似的函数在initState开始时同步预加载一组ui.Image。我要试一试。我找到了这个讨论的线索。我需要类似的函数在initState开始时同步预加载一组ui.Image。我要试一试。