问题描述
我发现 Flutter_image_compress 的质量压缩不是基于百分比。例如像 4.58MB 的图像压缩质量 50 后返回 590KB。这是否意味着质量不是百分比?
参考:https://jtmuller5-98869.medium.com/image-compression-in-flutter-e0585ce960cc
解决方法
quality
不是百分比。它传递到底层 JPEG 压缩器,因此您必须查看底层压缩器如何解释它。但即使这样也可能没有很好的记录。
例如,在 iOS 上,the implementation 将 quality
除以 100 以将其转换为 0.0 到 1.0 范围内的数字,并将结果分数用作 kCGImageDestinationLossyCompressionQuality
参数。 Apple 记录该参数如下:
写入图像目标时要使用的所需压缩质量。如果存在,与此键关联的值必须是 CFNumberRef
到 0.0
范围内的 1.0
数据类型。如果目标格式支持,1.0
值指定使用无损压缩。 0.0
的值意味着使用最大压缩。