压缩图片方案
上传图片同一张照片23M,手机系统剪裁后不能上传,提示图片不能超过2M,手机系统不剪裁可以上传,判断有问题
如下步骤处理
1.据图片格式决定质量降低的步长
static int _getQualityStep(String extension) {
// 对于PNG等无损格式,可以加大步长,因为质量参数对其影响机制不同
return (extension == 'png') ? 10 : 5;
}
- 循环质量,判断图片大小是否满足要求
flutter: 图片选择成功,开始处理
flutter: 原始图片大小: 2.429793357849121 MB
flutter: 质量 90% 压缩后: 3.1823205947875977 MB
flutter: 质量 85% 压缩后: 2.8928775787353516 MB
flutter: 质量 80% 压缩后: 2.498446464538574 MB
flutter: 质量 75% 压缩后: 2.4492578506469727 MB
flutter: 质量 70% 压缩后: 2.3891944885253906 MB
flutter: 质量 65% 压缩后: 2.2195205688476562 MB
flutter: 质量 60% 压缩后: 2.0848846435546875 MB
flutter: 质量 55% 压缩后: 1.332777976989746 MB
flutter: 通过质量压缩成功达到目标大小
微信公众号

