Swift jpegData(compressionQuality:) 在使用 compressionQuality 0 时返回比 0.1

问题描述 投票:0回答:2

在过去一个小时左右的时间里,我想知道为什么我的图像在使用

uiImage.jpegData(compressionQuality: 0)
的最高压缩率下仍然很大。

如果我使用 compressionQuality

0
我的 ~5Mb 图像被压缩到 ~2Mb 的文件大小。但是一旦我使用
0.1
我的文件大小就会减少到700Kb.

我发现这个关于 iOS 的 HEIC 图像压缩的帖子 (www.raywenderlich.com)。示例项目是完美的演示。

为什么会这样? 那是错误还是功能,或者我在这里做错了什么?

编辑: 示例代码:

let sometimesLargerThan:Data = UIImage("imageInBundle.jpg").jpegData(compressionQuality: 0)

let this:Data = UIImage("imageInBundle.jpg").jpegData(compressionQuality: 0.1)
swift uiimage
2个回答
0
投票

这很奇怪 - 这是函数的 url - compressionQuality。

两次压缩的图像尺寸是否相同?这是我唯一想到的,否则,它可能是一个错误。

https://developer.apple.com/documentation/uikit/uiimage/1624115-jpegdata

压缩质量 生成的 JPEG 图像的质量,表示为 0.0 到 1.0 之间的值。值 0.0 表示最大压缩(或最低质量),而值 1.0 表示最小压缩(或最佳质量)。


0
投票

Bug 今天仍然存在。似乎 .1 压缩质量是您可以获得的最小质量,因为一旦变小(.05 甚至 .00),图像尺寸就会再次变大。

© www.soinside.com 2019 - 2024. All rights reserved.