2011-02-11 99 views
1

我将图像从Mac桌面应用程序传输到iPad应用程序,但沿途我失去了所有图像的EXIF数据。图像元数据丢失

的设置如下:

在Mac: 1 - 从图像 2抢的NSData - 调整图像 3 - 通过无线网络

发送图像到iPad应用程序在iPad: 4 - 将NSData写入文件 5 - 从文件读取图像

一旦NSData进入iPa d,EXIF数据似乎丢失了。如果我手动打开图像,则不会找到EXIF数据。

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

我使用ImageIO框架访问两个平台上的数据。 iPad/iPhone上的ImageIO有可能以不同的方式做出不同的事情并剥离或不支持EXIF数据?

欢迎任何指针。

回答

1

我使用ImageIO框架访问两个平台上的数据。 iPad/iPhone上的ImageIO有可能以不同的方式做出不同的事情并剥离或不支持EXIF数据?

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

更可能是你是不支持EXIF数据。

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

在我看来,在Mac上完成所有操作并简单地将最终图像发送到iPad会更容易。在向下调整大小的情况下,这甚至会使速度更快,因为您将传输更少的数据(较小的图像)。

+0

感谢您的回复,彼得。正如我在开篇文章中所写的那样,调整大小是在Mac上完成的,包括元数据在内的调整大小的图像被发送到iPad(作为NSData实例),但元数据在该行程中的某个位置被丢弃,这就是令人惊讶的我(因此我的问题在这里)。我会进一步挖掘,试图找到原因和解决方案。 – 2011-02-14 11:54:38