【问题标题】:CGImageCreateWithImageInRect not working properlyCGImageCreateWithImageInRect 无法正常工作
【发布时间】:2013-11-14 08:36:37
【问题描述】:

我正在尝试使用 CGImageCreateWithImageInRect 从图像中获取子图像,但它无法正常工作。它从图像中的随机位置返回图像,而不是我指定的位置。请看下图;

我的代码是:

CGImageRef imageRef = CGImageCreateWithImageInRect([image CGImage], CGRectMake(524, 1331, 600, 600));
UIImage *croppedImage = [UIImage imageWithCGImage:imageRef];
CGImageRelease(imageRef);

但这不起作用。我做错了什么?

谢谢!

【问题讨论】:

  • 除了@HalR 的回答,注意在Core Graphics 中y 轴默认是翻转的,所以这里你可能希望y = 0。
  • 支持克利夫兰 :)

标签: iphone objective-c cocoa-touch uiimage


【解决方案1】:

您的图像可能设置了与您期望的不同的 UIImageOrientation。 iOS 会正确显示图像,但图像会横向存储(因为没有更好的术语)。

所以当你说给我从 x, y 开始的 rect 时,你会得到 y, x 或者一些随机的疯狂,因为你正在访问一个超出正常范围的 rect。

This answer 谈论固定方向。

【讨论】:

    【解决方案2】:

    请看后面的答案,你需要变换矩形或变换图像。我更喜欢变换矩形。

    https://stackoverflow.com/a/21560825/2482283

    【讨论】:

      猜你喜欢
      • 2016-12-01
      • 1970-01-01
      • 2016-09-01
      • 2012-07-11
      • 2018-04-08
      • 2017-04-20
      • 2018-10-02
      • 2016-09-04
      • 2010-10-06
      相关资源
      最近更新 更多