我基于ALAssetsLibrary
编写了一个自定义图像选择器,一切正常,但是VoiceOver
,每张照片都只代表“按钮”,我认为这不好。
所以我检查了 iOS 内置的 Photo
应用程序,VoiceOver
为每张照片说出了以下信息:
- 它是
照片
或视频
或屏幕截图
等。 - 它是
肖像
或风景
。 - 它的
创建日期
。 清晰
或模糊
。亮
或暗
。
我想我可以从ALAsset
的属性中获取前三个,即
ALAssetPropertyType
ALAssetPropertyOrientation
ALAssetPropertyDate
但是清晰度和亮度怎么样?我可以从图像元数据中获取它们或导出它们吗?
更新:
在照片的 EXIF 元数据中:
- 亮度适用于直接从相机拍摄的照片,但从网络保存或从屏幕捕获的照片始终返回零值。
- exif中的清晰度始终为nil,从文档来看,清晰度值是“应用于图像的清晰度”,所以我认为它是由图像处理应用程序(例如Aperture)使用的
但是 Photos.app
对于任何类型的照片总是具有正确的亮度和清晰度值,我们自己可以做到这一点吗?
最佳答案
您可以使用 EXIF
元数据获取值。
这里我写了一个例子:
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/