1

对于任何给定的文件数据大小,我希望能够调整(或压缩) UIImage 的大小以适应该数据限制。这个问题不是关于如何调整大小或如何检查文件大小......它是关于一种以高性能方式获得它的算法。

已经在这里搜索,我发现这个线程讨论了以线性或二进制算法降低图像 jpeg 质量。这不是很高效,最多需要几十秒。

我在 iOS 上工作,所以图像可以接近 10MB(来自 iPhone 4S)。我的目标虽然可变,但目前是 3145728 字节。

我目前正在使用UIImageJPEGRepresentation压缩一点,但要达到我的低目标,对于这么大的照片,我似乎不得不损失很多质量。UIImage大小和NSData大小之间有关系吗?是否有一些功能我可以说:

area * X = dataSize

...并解决比例因子,以便我可以一次性调整大小?

4

1 回答 1

1

在查看您链接到的线程后,我有一个想法:压缩 10MB 图像会相对较慢。如何将大小调整为更小(以便压缩更快),然后执行压缩算法(来自链接)。那么这可以作为压缩10MB图像大小的指导吗?这个想法是相同图像的压缩率应该相似,与大小无关。

假设 1000x1000 像素压缩为 10MB,目标大小为 3MB。

然后说以相同质量压缩的较小的 100x100 像素(例如)是C MB。然后在 100x100 图像上执行二分搜索算法,直到 size = C * (3/10)。然后对 1000x1000 图像使用此压缩质量以获得约 3MB 图像。

注意:我不知道这会有多好——这只是一个建议。为较小尺寸的图像选择什么尺寸(我使用 100x100)也只是一个猜测,需要进行一些试验。

于 2012-06-25T02:10:02.640 回答