2012-06-30 46 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