如何在iOS上实现ALAsset照片的可访问性

时间:2013-08-24 13:08:37

标签: ios accessibility exif alassetslibrary voiceover

我根据ALAssetsLibrary编写了一个自定义图片选择器,一切正常,但VoiceOver,每张照片仅代表“按钮”,我认为这不好。

所以我检查了在iOS中构建的Photo应用,VoiceOver讲了每张照片的以下信息:

  1. photovideoscreenshot等。
  2. portraitlandscape
  3. creation date
  4. sharpblurry
  5. brightdark
  6. 我想我可以从ALAsset的属性中获取前三个,这是

    1. ALAssetPropertyType
    2. ALAssetPropertyOrientation
    3. ALAssetPropertyDate
    4. 清晰度亮度怎么样?我可以从图像元数据中获取它们还是将它们导出?

      更新:

      在Photo的EXIF元数据中:

      1. 直接从相机拍摄的照片可以提供亮度,但从网络保存或从屏幕捕获的照片始终返回零值。
      2. 锐度在exif中始终为零,从文档中,锐度值是“应用于图像的锐度”,所以我认为它是由图像处理应用程序(如Aperture)使用
      3. 但是Photos.app对于任何类型的照片总是具有正确的亮度和清晰度值,是否可以自己做到这一点?

1 个答案:

答案 0 :(得分:2)

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

所有密钥都在 Apple的文档 herehere

中引用

我在这里写了一个例子:

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

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

而不是sharpnessbrightness

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