【问题标题】:Display a rotated image upright垂直显示旋转的图像
【发布时间】:2011-05-16 03:07:58
【问题描述】:

我有一个名为“test.png”的左向图像(如 UIImageOrientationLeft 文档的“R”图像注释),我首先使用 UIImage 将其读入,然后使用该图像数据创建另一个 UIImage第一个和方向信息,如下所示:

UIImage *image = [UIImage imageNamed:@"test"];
image = [UIImage imageWithCGImage:image.CGImage scale:1.f orientation:UIImageOrientationLeft];
UIImageView *imageView = [[[UIImageView alloc] initWithImage:image] autorelease];
[imageView sizeToFit];

但是在 imageView 上显示的图像是颠倒的。怎么了?

【问题讨论】:

    标签: ios uiimage


    【解决方案1】:

    在过去的几周里,我在这个话题上花了很多时间。 This 可能会对您有所帮助,但要获得更深入的解释,请查看 this link

    在这两个帖子之间,有关于为什么旋转图像的信息,以及如何自己旋转它们。

    【讨论】:

      【解决方案2】:

      这是因为 UIImage 应该自动处理方向,在这种情况下,它被翻转了两次。注意:当涉及到 RAW 图像时,不应依赖各种图像处理对象提供的数据。

      【讨论】:

      • 那么问题是从 UIImage 读取的 CGImage 数据可能不是我所期望的?如果我自己将原始数据读入 CGImage,那么我仍然可以使用 imageWithCGImage:scale:orientation: 来创建我想要的 UIImage,对吧?
      • 您可以使用方法组合以任何您喜欢的方式加载图像,但要为 RAW 图像的一些问题做好准备,因为自从我上次检查以来,仍然存在获取正确方向的错误,例如:尼康 RAW 照片。
      【解决方案3】:

      好吧,这有点令人困惑。 UIImageOrientationLeft 对应于 EXIF 方向标签 6 而不是 8。UIImageOrientationLeft 中的“左”表示图像需要向左旋转才能正确显示,而不是图像被旋转左。因此在UIImageUIImageOrientationLeft 中加载的左向图像在显示时将再次向左旋转,从而导致图像上下颠倒。

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-28
      • 1970-01-01
      • 2012-07-02
      相关资源
      最近更新 更多