objective-c - 如何读取一张照片元数据中的 "{TIFF}"信息

标签 objective-c xcode nested nsdictionary

我是 objective-c 的新手,我在读取 UIImagePickerControllerMediaMetaData 中的信息时遇到问题。

-(void) imagePickerController:(UIImagePickerController *)imagepicker didFinishPickingMediaWithInfo:(NSDictionary *)info {

//This line is fine.
NSDictionary *metadata = [info objectForKey:UIImagePickerControllerMediaMetadata];

//This line fail to operate...
NSArray *tiffData = [metadata objectForKey:Exif];

我可以获得元数据。然而,元数据中的信息有点困惑,下面显示了元数据中的内容。

UIImagePickerControllerMediaMetadata =     {
    DPIHeight = 72;
    DPIWidth = 72;
    Orientation = 6;
    "{Exif}" =         {
        ApertureValue = "2.526068811667588";
        BrightnessValue = "-1.739497174308802";
        ColorSpace = 1;
        DateTimeDigitized = "2012:02:21 11:53:44";
        DateTimeOriginal = "2012:02:21 11:53:44";
        ExposureMode = 0;
        ExposureProgram = 2;
        ExposureTime = "0.06666666666666667";
        FNumber = "2.4";
        Flash = 32;
        FocalLenIn35mmFilm = 32;
        FocalLength = "2.03";
        ISOSpeedRatings =             (
            800
        );
        MeteringMode = 5;
        PixelXDimension = 960;
        PixelYDimension = 720;
        SceneType = 1;
        SensingMethod = 2;
        Sharpness = 0;
        ShutterSpeedValue = "3.906905022631062";
        WhiteBalance = 0;
    };
    "{TIFF}" =         {
        DateTime = "2012:02:21 11:53:44";
        Make = Apple;
        Model = "iPad 2";
        Software = "5.0.1";
        XResolution = 72;
        YResolution = 72;
    };
};

那么如何读取“{Exif}”和“{TIFF}”?

谢谢你帮助我。我到处找,只是没能得到答案......

最佳答案

{EXIF}{TIFF} 条目是元数据字典中包含的字典。您可以使用以下代码获取对它们的引用:

NSDictionary *metadata = [info objectForKey:UIImagePickerControllerMediaMetadata];
NSDictionary *exifMetadata = [metadata objectForKey:(id)kCGImagePropertyExifDictionary];
NSDictionary *tiffMetadata = [metadata objectForKey:(id)kCGImagePropertyTiffDictionary];

CGImageProperties Reference 文档页面中描述了所有元数据键。 (id) 转换是必需的,因为所有键都是 CFStringRef,并且需要免费桥接到 NSString

关于objective-c - 如何读取一张照片元数据中的 "{TIFF}"信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9377478/

相关文章:

c++ - 访问封闭类的 protected 成员 [嵌套类]

objective-c - 使用 fmdb 打印准备好的语句

objective-c - NSTokenField 中的自定义标记

iPhone 应用程序在发布版本中中断,而不是在调试版本中中断

xcode - 快速 UIActivityIndi​​catorView 建议

visual-studio - 从源代码管理中排除嵌套文件

javascript - 嵌套三元的最佳替代方案是什么?

iphone - 调用了 "StopUpdatingLocation"但 GPS 箭头没有消失

ios - 在Objective-C中合并排序

ios - 减少 iPhone 应用程序的内存使用