使用丢失的EXIF标记更正存储在文档中的UIImage的方向

时间:2012-04-13 14:16:38

标签: iphone ios ipad uiimage uiimageorientation

关于使用iPad相机拍摄的UIImages的方向,我在SO上遇到过类似的问题。基本上,我正在使用iPad上的相机拍摄UIImage。当我显示它时,它已经旋转了90度。

通过阅读其他问题和答案,我现在明白,当相机拍照时,它会存储一个EXIF标签,用于确定照片的方向。这通常允许所有Mac和iOS应用程序读取此方向数据。但是,我将我的图像存储在文档目录中作为NSData(已通过UIImagePNGRepresentation转换并将URL保存在核心数据中。我假设执行此操作的过程导致我丢失方向EXIF标记,因此当它被检索时显示不正确。

有人能想出办法纠正这个问题吗?

欢迎提出想法,建议和指示。

非常感谢

3 个答案:

答案 0 :(得分:3)

EXIF是图像文件中的内容,而不是UIImage。使用相机拍照时,UIImagePicker永远不会将其保存在文件中,因此,还没有EXIF。

在你的情况下,问题不在于iPad的方向。我相信UIImagePNGRepresentation总是保存它旋转90度(无论旋转)。您只需要在生成PNG之前旋转它。我不知道为什么会这样做,但你只需要解决它。

答案 1 :(得分:2)

EXIF元数据的方向不准确,它在GPS数据中是准确的,它只能检测90& 180& 270有一些错误案例试试这个

iOS UIImagePickerController result image orientation after upload

祝你好运

答案 2 :(得分:0)

看一下这个库:http://vocaro.com/trevor/blog/2009/10/12/resize-a-uiimage-the-right-way/他有代码拍摄图像并通过转换来删除方向信息。