【问题标题】:Quartz 2D: how apply UIImageView transformation to a CGImage?Quartz 2D:如何将 UIImageView 转换应用于 CGImage?
【发布时间】:2011-01-18 17:00:22
【问题描述】:

我有一个 UIImageView,用户可以旋转和调整触摸屏幕的大小。 我想将用户对 UIImageView 所做的相同更改应用于其中的 UIImage。 然后我将使用 UIImage 来屏蔽另一个图像。

请你解释一下这样做的正确程序是什么?

主要问题是我不能直接将 UIImageView 的仿射变换矩阵应用到 [UIImage CGImage],因为它们使用不同的坐标系。

【问题讨论】:

  • 是否可以直接转换为CGImage?如果您正在讨论在绘制CGContext 时对其进行转换,请查看CGContextGetUserSpaceToDeviceSpaceTransform 上的文档。您可以将此函数返回的转换应用于 UIImageView 的转换。然后,将生成的组合变换应用于您绘制图像的上下文。

标签: uiimageview transformation cgcontext quartz-2d cgimage


【解决方案1】:

您必须采取的步骤是:

  1. 创建一个新的图形上下文
  2. 将 UIImageView 中的转换应用到上下文
  3. 将原始图像绘制到上下文中
  4. 从上下文中提取新图像

您需要注意的是倒置坐标系,以及旋转图像的边界矩形现在比原来更大的事实,您在创建上下文时必须考虑到这一点。

见我之前的帖子:Creating a UIImage from a rotated UIImageView

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-23
    • 2016-01-06
    • 2011-04-14
    • 2010-10-02
    • 1970-01-01
    • 1970-01-01
    • 2020-07-23
    相关资源
    最近更新 更多