我正在加载标有任意EXIF方向数据(8个方向之一)的JPG。我下载了八个示例图片文件from here(从this blog post链接)。
图像8表示EXIF标签8,其是90度顺时针旋转。这可以通过在愚蠢的观察器中查看此图像来确认,如Paintbrush。
但是,当我在iOS项目中将其加载到UIImage中并在其上调用-imageOrientation
时,我得到UIImageOrientationLeft
。根据{{3}},
UIImageOrientationLeft
图像旋转90度逆时针,如图所示。
...这不是底层图片的样子。
EXIF方向6的情况恰恰相反,我希望它显示为Left,但显示为Right。
这里的文档错了吗?我错过了一些明显的东西吗感谢。
答案 0 :(得分:8)
我有一段时间遇到同样的问题。似乎UIImageOrientation文档描述了如果应用指定的方向,直立图像会发生什么。例如,如果您拍摄直立图像并应用UIImageOrientationLeft,它将逆时针旋转90°。
另一方面,exif文档描述了图像数据的方向是什么,以生成直立图像。因此,对于EXIF代码8,图像数据必须顺时针旋转90°才能生成直立的图像。
事实证明,只有UIImageOrientationLeft和UIImageOrientationRight才会出现这个问题,因为所有其他问题都以同样的方式出现。
答案 1 :(得分:1)
我认为问题在于原点(应用旋转的地方)。使用UIImage时,原点位于左上角,使用CGImage时,原点位于左下角。
答案 2 :(得分:0)