丢失图像元数据

时间:2011-02-11 12:33:56

标签: iphone macos ios core-graphics

我正在将图像从Mac桌面应用程序传输到iPad应用程序,但在此过程中我丢失了所有图像的EXIF数据。

设置如下:

在Mac上: 1 - 从图像中获取NSData 2 - 调整图像大小 3 - 通过无线网络将图像发送到iPad应用程序

在iPad上: 4 - 将NSData写入文件 5 - 从文件中读取图像

一旦NSData进入iPad,EXIF数据似乎就丢失了。如果我手动打开图像,则无法找到EXIF数据。

您是否知道为什么EXIF数据会丢失?调整大小操作不会影响EXIF数据(我已经检查过),但是一旦NSData到达iPad,我就没有任何EXIF数据(甚至在我将数据写入磁盘之前)。我认为我从Mac发送到iPad的数据是相同的。

我使用ImageIO框架访问两个平台上的数据。 iPad / iPhone上的ImageIO是否可能以不同的方式处理并剥离或不支持EXIF数据?

欢迎提出任何指示。

1 个答案:

答案 0 :(得分:1)

  

我使用ImageIO框架访问两个平台上的数据。 iPad / iPhone上的ImageIO是否可能以不同的方式处理并剥离或不支持EXIF数据?

是的,这是可能的,但不太可能。

更有可能不支持EXIF数据。

CGImage对象只是一个图像;如果您只从文件中提取CGImage,那么您只获得图像,而不是EXIF或其他属性(例如,分辨率,颜色空间)数据。您需要get,传输和apply属性词典以及图像。

在我看来,在Mac上执行此操作会更容易,只需将最终图像发送到iPad即可。在向下调整大小的情况下,这甚至可以使它更快,因为您将传输更少的数据(更小的图像)。