2

我基于 编写了一个自定义图像选择器ALAssetsLibrary,一切正常,但是VoiceOver,每张照片都只表示为“按钮”,我认为这不好。

所以我检查了PhotoiOS 内置的应用程序,VoiceOver为每张照片说出以下信息:

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

我想我可以从的属性中获得前三个ALAsset,即

  1. ALAssetPropertyType
  2. ALAssetPropertyOrientation
  3. ALAssetPropertyDate

但是锐度亮度呢?我可以从图像元数据中获取它们或将它们导出吗?

更新:

在照片的 EXIF 元数据中:

  1. 亮度适用于直接从相机拍摄的照片,但从网络保存或从屏幕捕获的照片始终返回 nil 值。
  2. exif中的锐度始终为零,从文档中,锐度值是“应用于图像的锐度”,所以我认为它被图像处理应用程序(如Aperture)使用

但是Photos.app对于任何类型的照片,总是要有正确的亮度和锐度值,我们自己可以做到吗?

4

1 回答 1

2

您可以使用元数据获取值EXIF

所有的键都在Apple 的文档中引用在 这里这里

这里我写了一个例子:

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

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

而不是得到sharpnessbrightness

NSNumber *sharpness = [exif objectForKey:(NSString*)kCGImagePropertyExifSharpness];
NSNumber *brightness = [exif objectForKey:(NSString*)kCGImagePropertyExifBrightnessValue];
于 2013-08-24T13:45:00.430 回答