如何解决颤振图像选择器使用提供程序和 flutter_image_compress 减小文件大小
我正在使用图像选择器从设备(应用程序)中选择图像,然后将该文件存储在这样的提供程序类中。
File? _img;
get img=> _img;
void putbannerimg(File img) {
_img = img;
notifyListeners();
}
我发现图像选择器不能压缩 png 图像,我尝试用 flutter_image_compress 压缩它
compressFile() async {
final formservice = Provider.of<PostForm>(context,listen: false);
File file = formservice.bannerfile;
final result = await FlutterImageCompress.compressWithFile(
file.absolute.path,quality: 54,);
formservice.putbannerimg(File.fromRawPath(result!));
} 我尝试过这种方式和其他多种方式,但遇到不同的错误我想像这样将此文件上传到 firebase 存储中
var task = storageicon.putFile(formservice.iconfile);
请告诉我哪里出错了,没有压缩文件一切正常
编辑:我发现路径应该是一个字符串,我该如何解析其中的本地代码文件
解决方法
如果您使用的是“flutter_image_compress”软件包
您可能需要对手机上存储的文件使用压缩功能,如下所示:
Future<File> testCompressAndGetFile(File file,String targetPath) async {
var result = await FlutterImageCompress.compressAndGetFile(
file.absolute.path,targetPath,quality: 88,rotate: 180,);
print(file.lengthSync());
print(result.lengthSync());
return result;
}
“compressAndGetFile()”返回一个文件,而“compressWithFile()”返回一个 Uint8List。
如果我理解您的最后一个问题,您希望默认使用应用程序内置的图像。 为此,您必须打开“pubsepc.yaml”,转到“flutter:”标记并添加“assets:”,如下所示:
flutter:
assets:
- path
“path”,在我的例子中,描述了一个包含图片等资产的顶级文件夹。 你可以随意描述它的名字。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。