0

除了将捕获的图像设置为UIImageview

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

那么为什么我的图像视图返回旋转图像。

我找到了解决方案

UIImage* rotatedImage = [UIImage imageWithCGImage:image.CGImage 
                                 scale:1.0 
                                 orientation:UIImageOrientationRight];

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

注意:这仅在从 cam 中捕获图片时发生,如果我们从图库中选择图片,则它不会旋转并且看起来正确。

任何帮助表示赞赏!

4

1 回答 1

0

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

考虑一下:如果您旋转 iPhone,物理传感器也会旋转,并且 iPhone“人为”地显示您要正确显示的图像。

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

至于“从画廊拍摄的图片”,我的猜测是画廊会为您进行定向并返回给您的不是原始图像,而是应用定向后的图像(就像您在代码中所做的那样)。

于 2013-05-29T09:49:04.083 回答