有没有一种方法可以将资产映像用作文件。我需要一个文件,以便可以使用http通过互联网对其进行测试。我已经尝试了Stackoverflow.com(How to load images with image.file)的一些答案,但得到一个错误“无法打开文件,(操作系统错误:没有这样的文件或目录,errno = 2)'。附加的代码行也给出了一个错误。
File f = File('images/myImage.jpg');
RaisedButton(
onPressed: ()=> showDialog(
context: context,
builder: (_) => Container(child: Image.file(f),)),
child: Text('Show Image'),)
使用Image.memory小部件(工作)
Future<Null> myGetByte() async {
_byteData = await rootBundle.load('images/myImage.jpg');
}
/// called inside build function
Future<File> fileByte = myGetByte();
/// Show Image
Container(child: fileByte != null
? Image.memory(_byteData.buffer.asUint8List(_byteData.offsetInBytes, _
byteData.lengthInBytes))
: Text('No Image File'))),
3条答案
按热度按时间yeotifhr1#
您可以通过
rootBundle
访问 *byte数据 *,然后将其保存到path_provider
获取的设备临时目录中(需要添加依赖项)。在你的例子中,你可以这样调用这个函数:
有关写入字节数据的更多信息,请参见check out this answer。
你需要
await
Future
,为了做到这一点,使函数async
:frebpwbc2#
不提供路径从资源获取文件。
t3psigkw3#
使用flutter_absolute_path包。
Flutter绝对路径:^1.0.6
在pubsec.yaml
要从此格式转换文件路径:
到
======