为什么旋转UIImage

时间:2013-05-29 07:00:14

标签: iphone ios6 uiimageview uiimage

除了将拍摄的图像设置为UIImageview

之外,我什么都没做
  • 没有额外的自定义设置
  • 没有转变
  • 没有调整大小,没有

然后我的图像视图返回旋转图像的原因。

我使用

找到了解决方案
UIImage* rotatedImage = [UIImage imageWithCGImage:image.CGImage 
                                 scale:1.0 
                                 orientation:UIImageOrientationRight];

现在,我得到原始图像。但我只是想知道automatic rotated image的原因。

注意:只有从相机拍摄照片时才会发生这种情况,如果我们从画廊中选择照片,那么它就不会旋转了。看起来很合适。

任何帮助表示赞赏!!

1 个答案:

答案 0 :(得分:0)

这可能取决于您的相机最终添加的额外“拍摄信息”。例如。如果您使用iPhone以纵向模式拍摄照片(“垂直”),则图像仍将具有原始尺寸(2048x1536),但“方向”拍摄信息设置为“旋转90度”。可能UIImageView不会读取拍摄信息并将图像显示为“原始”,即旋转(这是传感器物理拍摄的图像)。

考虑一下:如果您旋转iPhone,物理传感器也会旋转,iPhone“人工”显示图像供您正确显示。

您可以通过iPhone在两个方向拍摄两张照片,然后将iPhone连接到Mac并启动“图像捕捉”应用程序来检查。您将看到两张照片的大小相同,但其中一张将垂直旋转。您可以使用预览来检查拍摄信息。

就“从画廊拍摄的照片”而言,我的猜测是画廊为您定位并返回给您而不是原始图像,但是应用了方向后的图像(就像您在代码中所做的那样) )。