2013-08-24 31 views
2

我寫了一個基於ALAssetsLibrary的自定義圖像選擇器,一切正常,但每張照片都只代表「按鈕」,我認爲這並不好。如何在iOS上實現ALAsset照片的可訪問性

於是我查了Photo應用程序,內置的iOS,VoiceOver發言以下爲每張照片的信息:

  1. 這是photovideoscreenshot
  2. 這是portraitlandscape
  3. 它的creation date
  4. 這是sharpblurry
  5. 這是brightdark

我想我可以得到前三ALAsset的特性,這是

  1. ALAssetPropertyType
  2. ALAssetPropertyOrientation
  3. ALAssetPropertyDate

但如何莎爾pness亮度?我可以從圖像元數據中獲取它們還是派生出它們?

更新:

在照片的EXIF元數據:

  1. 亮度可直接從相機拍攝的照片,但照片從網上保存或從屏幕總是返回零值抓獲。
  2. 清晰度總是NIL在Exif中,從文檔,銳度值是「應用到圖像的清晰度」,所以我認爲它是用來通過圖像處理應用程序(如孔徑)

Photos.app對於任何類型的照片總是具有正確的亮度和清晰度值,是否可以自己做到這一點?

回答

2

您可以使用EXIF元數據獲取值。

所有按鍵都在蘋果的文檔herehere

這裏refferenced我寫了一個例子:

NSDictionary *allMetadata = [[asset defaultRepresentation] metadata]; 

NSDictionary *exif = [allMetadata objectForKey:(NSString*)kCGImagePropertyExifDictionary]; 

,比獲得sharpnessbrightness

NSNumber *sharpness = [exif objectForKey:(NSString*)kCGImagePropertyExifSharpness]; 
NSNumber *brightness = [exif objectForKey:(NSString*)kCGImagePropertyExifBrightnessValue]; 
+0

我發現了兩個問題,1。亮度可用於直接從相機拍攝的照片,但從網絡保存或從屏幕捕捉的照片總是返回零值。 2.銳度始終爲零,從文件中,銳度值爲「應用於圖像的銳度」,所以我認爲它被圖像處理應用程序(如Aperture)使用?這兩個問題不會發生在Photos.app中。 – naituw

+0

不要忘記添加'#import ' –