网上大部分教程基于 image_compression_flutter , flutter_image_compress
这两个扩展不好用,他们只能压缩图片质量(不能修改图片尺寸),这样压缩效果不好.其实移动端不需要分辨率太高的图片,
在网上找到了一篇文章
https://juejin.cn/post/7231080269502431291
https://pub.dev/packages/image
介绍了dart的 image扩展,这是dart扩展所以可以在所有平台使用
Uint8List image = File(path).readAsBytesSync();
ImgCompression.Image? img = ImgCompression.decodeImage(image);
int width = img.width;
height = 1000 * height ~/ width;//修改尺寸
ImgCompression.Image resizedImage = ImgCompression.copyResize(img, width: 1000, height: height);
//压缩图片 质量 70
Uint8List image2 = ImgCompression.encodeJpg(resizedImage,quality: 70);
//使用 encodePng 等函数 可以修改图片格式