我想从图片中获取exif。我如何以最佳方式做到这一点?
NSData *dataOfImageFromGallery = UIImageJPEGRepresentation (workingImage,0.5);
CGImageSourceRef imageSource;
imageSource = CGImageSourceCreateWithData((__bridge CFDataRef)dataOfImageFromGallery, NULL);
if (imageSource == NULL) {
// Error loading image ...
return; }
NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys: [NSNumber numberWithBool:NO], (NSString *)kCGImageSourceShouldCache, nil];
CFDictionaryRef imageProperties = CGImageSourceCopyPropertiesAtIndex(imageSource, 0, (__bridge CFDictionaryRef)options);
if (imageProperties) {
NSNumber *width = (__bridge NSNumber *)CFDictionaryGetValue(imageProperties, kCGImagePropertyPixelWidth);
NSNumber *height = (__bridge NSNumber *)CFDictionaryGetValue(imageProperties, kCGImagePropertyPixelHeight);
CFRelease(imageProperties);
NSLog(@"width: %@", width);
NSLog(@"height: %@", height);
}
此打印width
和height
,但CGImageProperties.h
库文件中ImageIO.h
的EXIF属性约为40,我不知道如何一次打印所有内容。
答案 0 :(得分:2)
使用exiftool, 我的simple project基于exiftool
答案 1 :(得分:0)
如果您的目标是IOS 4及更高版本,则应使用ALAssetsLibrary。 这里有很多线程描述了ALAssetsLibrary以及如何从图像中获取EXIF数据。
请注意,如果用户不允许您的APP ALAssetsLibrary的位置服务将无效并将报告错误(访问被拒绝)
答案 2 :(得分:0)
如果您要做的只是记录imageProperties
字典的全部内容,那么就这样做:
NSLog(@"imageProperties: %@", imageProperties);
如果那不是您要找的,请澄清您的问题。