6

我正在加载标有任意 EXIF 方向数据(8 个方向之一)的 JPG。我从这里下载了八个示例图像文件(链接自这篇博文)。

图 8 代表 EXIF 标签 8,顺时针旋转 90 度。这可以通过在诸如画笔之类的哑查看器中查看此图像来确认。

但是,当我将它加载到我的 iOS 项目的 UIImage 中并调用-imageOrientation它时,我得到UIImageOrientationLeft. 根据这里的文档

UIImageOrientationLeft

图像逆时针旋转 90 度,如此处所示。

...这不是底层图像的样子。

EXIF 方向 6 正好相反,我希望它显示为左,但它显示为右。

这里的文档错了吗?我错过了一些明显的东西吗?谢谢。

4

3 回答 3

8

我有一段时间有同样的问题。似乎 UIImageOrientation 文档描述了如果您应用指定的方向,直立图像会发生什么。例如,如果您拍摄一个直立图像并应用 UIImageOrientationLeft,它将逆时针旋转 90°。

另一方面,exif 文档描述了图像数据的方向是生成直立图像。因此,对于 EXIF 代码 8,图像数据必须顺时针旋转 90° 才能产生直立的图像显示。

事实证明,只有 UIImageOrientationLeft 和 UIImageOrientationRight 有这个问题,因为不管你怎么看,其余的都是一样的。

于 2011-08-29T23:03:34.030 回答
1

我认为问题出在原点(应用旋转的地方)。使用 UIImage 时,原点位于左上角,使用 CGImage 时,原点位于左下角。

于 2011-09-04T06:27:58.687 回答
0

我找到了一个有趣的答案:http ://blog.logichigh.com/2008/06/05/uiimage-fix/

于 2011-09-05T08:23:36.777 回答