flutter_image_compress 的质量如何

问题描述

我发现 Flutter_image_compress 的质量压缩不是基于百分比。例如像 4.58MB 的图像压缩质量 50 后返回 590KB。这是否意味着质量不是百分比?

参考:https://jtmuller5-98869.medium.com/image-compression-in-flutter-e0585ce960cc

解决方法

quality 不是百分比。它传递到底层 JPEG 压缩器,因此您必须查看底层压缩器如何解释它。但即使这样也可能没有很好的记录。

例如,在 iOS 上,the implementationquality 除以 100 以将其转换为 0.0 到 1.0 范围内的数字,并将结果分数用作 kCGImageDestinationLossyCompressionQuality 参数。 Apple 记录该参数如下:

写入图像目标时要使用的所需压缩质量。如果存在,与此键关联的值必须是 CFNumberRef0.0 范围内的 1.0 数据类型。如果目标格式支持,1.0 值指定使用无损压缩。 0.0 的值意味着使用最大压缩。

您可能还想阅读JPEG image compression FAQ answer about quality