2012-06-30 45 views
1

我有一个UIImagePickerViewController,我救了我的形象在我的应用只是UIImagePickerControllerOriginalImage和:UIImagePicker和UIImage的大小

[self.fileManager createFileAtPath:aPath contents:UIImageJPEGRepresentation(image, 1.f) attributes:nil]; 

结果:

从Photo.app
  • 原始图像 - > 2.2 Mo
  • 从我的应用程序中新保存的图像 - > 5.3带有JPEG表示的Moo & 10.8具有PNG表示的Mo!

所以我的问题很简单:为什么?以及如何达到Photo.app大小?

感谢您的帮助:)

+0

嗨@Pierre我有同样的问题。在网上搜索3天后,我找不到解释或解决方案。你解决了吗? –

回答

1

正如你可能知道,在UIImageJPEGRepresentation传递的第二个参数定义的压缩质量(1为最高)。由于图像被分解为基本数据,然后重新压缩(jpeg是一种压缩图像格式),结果可能会导致较差的压缩(较大的文件),当然图像质量也不会更好。尝试将参数降低到0.0到1.0之间的某个值,然后查看何时获得文件大小的最佳匹配(对于每个处理的图像都是唯一的,所以请尝试在中间找到一个合适的值)。

+0

因此,Apple正在重新压缩来自Photo.app的图像?这意味着他们有两张我正在拍摄的照片:一张没有压缩,一张没有压缩(用于显示)。当我从我的选择中选择一张照片时,他们会给我一张没有压缩的照片?这很奇怪吗? – Pierre

+0

我只是说UIImage被返回,因为UIImagePickerControllerOriginalImage不等于设备上存储的图像,至少不是文件大小。唯一有效的解释是压缩的不同。确实很奇怪,但我不知道为什么会发生这种情况。 – Stavash