如何针对特定目标文件大小优化UIImage调整大小?

时间:2012-06-25 01:34:57

标签: ios optimization uiimage compression nsdata

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

在这里搜索,我发现this thread谈到了以线性或二进制算法降低图像jpeg质量。这不是很有效,最多需要几十秒钟。

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

我目前正在使用UIImageJPEGRepresentation来压缩一点,但是为了达到我的低目标,似乎我必须为这么大的照片丢失很多质量。 UIImage尺寸和NSData尺寸之间是否存在关系?是否有一些功能,我可以说:

area * X = dataSize

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

1 个答案:

答案 0 :(得分:1)

在查看您链接到的主题后,我刚才有了一个想法:压缩10MB图像会相对较慢。如何调整大小(使压缩更快),然后执行压缩算法(从链接)。这可以用作压缩10MB图像大小的指南吗?这个想法是同一图像的压缩比应该相似,与大小无关。

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

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

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