我正在使用ALAssetsLibrary
从图像中读取图像元数据(例如EXIF和XMP):
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
URL* refurl = (NSURL*)[info objectForKey: UIImagePickerControllerReferenceURL];
ALAssetsLibraryAssetForURLResultBlock resultblock = ^(ALAsset *myasset)
{
NSLog(@"Metadata: %@", myasset.defaultRepresentation.metadata);
}
mAssetslibrary = [[ALAssetsLibrary alloc] init];
[mAssetslibrary assetForURL:refurl
resultBlock:resultblock
failureBlock:failureblock];
}
对于使用相机拍摄的图像或来自图库的其他图像,此工作正常,并显示所有元数据。但对于过滤的图像(例如使用iOS照片过滤器),只返回非常少的元数据(仅限图像尺寸)。
访问过滤后的图像数据会返回过滤后的图像,因此图像数据很好,只缺少元数据:
ALAssetRepresentation *rep = [myasset defaultRepresentation];
[rep getBytes:imageDataBytes fromOffset:0 length:imageDataSize error:nil];
如何获取应用了iOS照片滤镜的图像的元数据?
此致
答案 0 :(得分:1)
目前你无法做到。它是Photo API中iOS 8中的众多错误之一。