首页 > 解决方案 > 将图像转换为 LIst 时出错飘飘然

问题描述

我正在尝试将转换后图像的文件类型转换为列表,但出现以下错误

 for (int i = 0;i < widget.image.length;i++) {
   var path = await FlutterAbsolutePath.getAbsolutePath(
     widget.image[i].identifier);
     print("path");
     print(path);
     File compressedFile =await FlutterNativeImage.compressImage(path, 
     quality: 90);
     final List<Asset> image=compressedFile;
     Navigator.push(context,MaterialPageRoute(builder: (context) => 
     Share_Convert_Iamge(image: image)),
   );

在此处输入图像描述

标签: imageflutterdart

解决方案


因此,据我所知,您想创建一个图像列表。因此,如果我的假设是正确的,您应该执行以下操作:

final List<File> images = List<File>();
 for (int i = 0; i < widget.image.length;i++) {
   var path = await FlutterAbsolutePath.getAbsolutePath(widget.image[i].identifier);
     print("path");
     print(path);
     File compressedFile = await FlutterNativeImage.compressImage(path, quality: 90);
     images.add(compressedFile);
     Navigator.push(context,MaterialPageRoute(builder: (context) => 
     Share_Convert_Iamge(image: images)),
   );

现在,我不完全理解你的问题。但是你做错了:变量“image”是“List”类型的,这意味着它包含一个“Asset”类型的对象列表。但是变量“compressedFile”的类型是“File”。现在,就像您不能将浮点值分配给整数类型的变量一样,例如:

// This will give you an error.
int x = 12.56;

// This will work.
float x = 12.56;

因此,错误只是类型不匹配的一种情况。

现在,如果要在某处显示图像,可以使用以下 Widget:

Image.file(file_variable)

在这里,file_variable 是“文件”类型。


推荐阅读