从UIImagePickerController中挑选时的UIImage大小变化

ris*_*shi 5 iphone objective-c uiimagepickercontroller uiimage ios

从图像中选择图像UIImageController并计算其大小时,图像大小会有变化,即磁盘中图像的大小不同.

有没有办法获得合适的尺寸?

我试过的 -

  1. 使用UIImagePNGReprensentation&将图像转换为数据UIImageJPEGReprensentation.这种方法的问题 -

一个.这种方法耗费内存,因此看起来不太好.

湾 大小不一,我可以理解它将图像转换为数据然后计算大小,因此大小不同.

但无论我搜索到什么,每一个接受的答案都是围绕着这个.

  1. 使用ALAssetsLibrary获得的图像尺寸,但由此计算尺寸也不符磁盘的大小.

我使用了以下方法 - assetForURL: resultBlock:^(ALAsset *asset) failureBlock:

  1. 使用CGImageRef方法CGImageGetBytesPerRow,但这也没有给出期望的结果.

还有其他任何我错过的方法吗?

编辑 -

所以这是尺寸差异 -

当我在finder中检查图像大小时 - 5.3 MB

当我使用 - 检查UIImage对象大小时 -

UIImageJPEGRepresentation(图像.1.0) - 2.29 MB

当我使用ALAsset Library检查图像大小时 - 4.4 MB

Tar*_*agi -1

我需要类似的东西并遇到了同样的问题。事实证明,稍微调整一下品质因数就可以实现这一点。

UIImageJPEGRepresentation(image, 0.67)
Run Code Online (Sandbox Code Playgroud)

理想情况下,quality应该1.0以最精确的形式计算图像尺寸。结果它为您提供了异常大的 1.0 质量值。

我在任何地方都找不到此记录,必须将上述解决方案保留在我的照片应用程序中。对于我的用例来说,它运行得很好。这并不理想,您可能需要进一步调整它以最适合您的用例。