【发布时间】:2013-10-29 17:49:39
【问题描述】:
我正在创建一个可以打开、编辑和保存照片的照片应用。我正在使用 GPUImage 处理我的照片,并且 EXIF 数据在此过程中丢失。因此,我以这种方式打开文件时正在读取 EXIF 数据:
NSImage *img = [[NSImage alloc] initWithContentsOfURL:url];
NSImageRep *rep = [[img representations] objectAtIndex:0];
NSMutableDictionary *exif = [((NSDictionary*)[(id)rep valueForProperty:NSImageEXIFData]) mutableCopy];
它包含几乎所有的 EXIF 数据,但由于某种原因它不包括 Camera Maker 和 Camera Model。保存时我需要保留所有数据,包括这些字段。打开图像文件时如何读取整个 EXIF 数据?我已经尝试了 CF 方法:
Working with images (CGImage), exif data, and file icons
但是除了文件大小之外,我无法使用该方法读取 任何 数据。有什么方法可以完整读取EXIF数据吗?
【问题讨论】:
-
以什么形式读取数据?
-
你这是什么意思?我想按原样读取数据,这并不重要。我需要做的就是在处理照片后将确切的数据写入新的 NSImage 。目前我正在使用这种方法获得一个 NSDictionary,但它不完整。
-
我只知道如何在 NSOutlineView 控件中发布整个提取。
-
好吧,那也行,如果能比我的方法提取更多,我可以检查相关部分。
标签: objective-c macos exif nsimage