ios - 如何在 iOS 上实现 ALAsset 照片的辅助功能

标签 ios accessibility exif alassetslibrary voiceover

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

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

  1. 它是照片视频屏幕截图等。
  2. 它是肖像风景
  3. 它的创建日期
  4. 清晰模糊

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

  1. ALAssetPropertyType
  2. ALAssetPropertyOrientation
  3. ALAssetPropertyDate

但是清晰度亮度怎么样?我可以从图像元数据中获取它们或导出它们吗?

更新:

在照片的 EXIF 元数据中:

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

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

最佳答案

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

所有按键均引用Apple 文档 herehere

这里我写了一个例子:

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

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

然后获得清晰度亮度

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

关于ios - 如何在 iOS 上实现 ALAsset 照片的辅助功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18418938/

相关文章:

ios - UITapGestureRecognizer 不工作 - Swift 3

iphone - 如何防止 VoiceOver 光标在布局更改时重置其位置

php - exif 在移动设备上使用 php 上传图片时剥离 GPS header ?

android - 无法在 Android 中使用 ExifInterface 设置拍摄日期/日期时间标签

php - 如何使用 php 自动旋转带有 exif 方向数据的图像

ios - 如何在 AsyncDisplayKit 中设置节点布局

ios - 与 FacebookSDK 集成时获取个人资料信息

ios - 是否可以隐藏滚动条(不删除滚动条)phonegap ios?

android - 如何以编程方式检测用户何时在android中打开/关闭对讲

javascript - 自定义下拉按钮的辅助功能