在flatter中,如何加载本地图像作为ui.image在画布中绘制它?
我阅读了几乎所有的帖子,但仍然找不到合适的方法(如果有的话)将本地图像加载为ui.image,以便可以在flatter中的在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
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。我要试一试。