Flutter 图片压缩工具flutter_native_image,和multi_image_picker多图选择上传更绝配

Flutter 图片压缩工具有是有,但是真的太少了,国内的Flutter才刚入门级,很多东西难找资料,分享一个贼好用的图片压缩工具!
flutter_native_image: ^0.0.5;//图片压缩工具
flutter_absolute_path: ^1.0.6;//路径转换工具
multi_image_picker: ^4.6.7;//多图选择器
用法:可以查看Flutter pub网站,
eg: File compressedFile = await FlutterNativeImage.compressImage(filePath,
quality: 70, percentage: 50); 最简单用法 图片路径 压缩质量 比列

为什么说与多图选择上传更配?
很多人的多图选择器用的库是这个:
multi_image_picker: ^4.6.7
用法大家都能搜到:
List resultList = List();

String error = 'No Error Dectected';
ImageBean imageBean;

try {
  resultList = await MultiImagePicker.pickImages(
    maxImages: 9,//最大选择数
    enableCamera: true,//是否开启相机
    cupertinoOptions: CupertinoOptions(takePhotoIcon: "chat"),
    materialOptions: MaterialOptions(
      actionBarColor: "#abcdef",
      actionBarTitle: "Example App",
      allViewTitle: "All Photos",
      useDetailsView: true,
      selectCircleStrokeColor: "#000000",
    ),
  ); 
} on Exception catch (e) {
  error = e.toString();
}

直接返回的是 List resultList = List();


image.png

_identifier 图片路径
_name 图片名称
_originalWidth 资源图片宽度
_originalHeight 资源图片高度

我们需要把Asset 里面的图片路径转换成本地手机里面的路径,用路径转换工具
//获取图片路径
String filePath = await FlutterAbsolutePath.getAbsolutePath(assets.identifier);
//图片直接压缩
File compressedFile = await FlutterNativeImage.compressImage(filePath,
quality: 70, percentage: 50);
这样就能直接获取,几行代码搞定。
其余的luban等压缩工具,其中的路径转换很繁琐,对于新手而言,项目时间又紧没有太多时间去研究,直接用上吧,只要有图片上传工能,图片要是不压缩,你们的服务器到底有多牛逼!

你可能感兴趣的:(Flutter 图片压缩工具flutter_native_image,和multi_image_picker多图选择上传更绝配)