Flutter- 尝试从 AssetImage 加载时发生超时
Flutter- Timeout occurred trying to load from AssetImage
我正在尝试使用 palette_generator 从图像中获取颜色。我正在将图像传递给生成调色板的方法,这样我就可以从中获取主色。但是当我尝试获取该调色板颜色时,出现错误,因为“尝试从 AssetImage(bundle: null, name: “1.jpg”) 加载时发生超时”并且日志猫显示“无法加载资产:1.jpg “
但是如果我使用 Image.asset() 加载图像,则该图像在构建方法中完美加载。
注意 - 不存在 flutter 资产文件夹链接问题
这是我的代码
Future<PaletteGenerator>_updatePaletteGenerator ()async
{
paletteGenerator = await PaletteGenerator.fromImageProvider(
Image.asset("1.jpg").image,
);
return paletteGenerator;
}
以上方法用于生成调色板
现在这是我的构建方法
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text("Image from assets"),
),
body: Column (
mainAxisAlignment: MainAxisAlignment.center,
children:<Widget>[
Row(
mainAxisAlignment: MainAxisAlignment.start,
children:<Widget>[
new Image.asset('assets/images/6.jpg',
color: face, colorBlendMode:BlendMode.modulate ,
fit:BoxFit.cover,
height: 50,
width: 50,
),
new Image.asset('assets/images/1.jpg',
color: face, colorBlendMode: BlendMode.modulate,
fit:BoxFit.cover,
height: 200,
width: 200,
),]),
FutureBuilder<PaletteGenerator>(
future: _updatePaletteGenerator(), // async work
builder: (BuildContext context, AsyncSnapshot<PaletteGenerator> snapshot) {
switch (snapshot.connectionState) {
case ConnectionState.waiting: return new Text('Loading....');
default:
if (snapshot.hasError)
return new Text('Error: ${snapshot.error}');
else
return new Text('Result: ${snapshot.data.dominantColor}');
}
},
)
// <-- image
])),
);
}
图像在构建方法中完美加载,没有这样的pubspec.yaml资产问题
问题是在您的 _updatePaletteGenerator
中,您提供给 Image.asset() 的路径是错误的。你必须给 'assets/images/1.jpg'
我正在尝试使用 palette_generator 从图像中获取颜色。我正在将图像传递给生成调色板的方法,这样我就可以从中获取主色。但是当我尝试获取该调色板颜色时,出现错误,因为“尝试从 AssetImage(bundle: null, name: “1.jpg”) 加载时发生超时”并且日志猫显示“无法加载资产:1.jpg “
但是如果我使用 Image.asset() 加载图像,则该图像在构建方法中完美加载。
注意 - 不存在 flutter 资产文件夹链接问题
这是我的代码
Future<PaletteGenerator>_updatePaletteGenerator ()async
{
paletteGenerator = await PaletteGenerator.fromImageProvider(
Image.asset("1.jpg").image,
);
return paletteGenerator;
}
以上方法用于生成调色板 现在这是我的构建方法
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text("Image from assets"),
),
body: Column (
mainAxisAlignment: MainAxisAlignment.center,
children:<Widget>[
Row(
mainAxisAlignment: MainAxisAlignment.start,
children:<Widget>[
new Image.asset('assets/images/6.jpg',
color: face, colorBlendMode:BlendMode.modulate ,
fit:BoxFit.cover,
height: 50,
width: 50,
),
new Image.asset('assets/images/1.jpg',
color: face, colorBlendMode: BlendMode.modulate,
fit:BoxFit.cover,
height: 200,
width: 200,
),]),
FutureBuilder<PaletteGenerator>(
future: _updatePaletteGenerator(), // async work
builder: (BuildContext context, AsyncSnapshot<PaletteGenerator> snapshot) {
switch (snapshot.connectionState) {
case ConnectionState.waiting: return new Text('Loading....');
default:
if (snapshot.hasError)
return new Text('Error: ${snapshot.error}');
else
return new Text('Result: ${snapshot.data.dominantColor}');
}
},
)
// <-- image
])),
);
}
图像在构建方法中完美加载,没有这样的pubspec.yaml资产问题
问题是在您的 _updatePaletteGenerator
中,您提供给 Image.asset() 的路径是错误的。你必须给 'assets/images/1.jpg'