gpt4 book ai didi

iphone - 翻转上下文中的 CGBitmapContextCreateImage

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:11:41 25 4
gpt4 key购买 nike

我有一个上下文,我在上面进行了一些绘图。现在我想保存结果。由于反转上下文 y 轴首先我想翻转所有内容,然后创建图像:

// 1. Flip Y
CGContextTranslateCTM(context, 0, height);
CGContextScaleCTM(context, 1.0, -1.0);

// 2. Create image
CGImageRef rawMask = CGBitmapContextCreateImage(context);

但是图像没有翻转。即使我用 2 更改操作 1 的顺序,图像仍然不会翻转。我不明白为什么以及如何解决它。更重要的是“为什么”,因为在我的逻辑中,如果我用颠倒的方式翻转上下文,应该没问题。

最佳答案

CTM 会影响您在设置 CTM 后执行的绘图操作。也就是说,改变CTM可以改变你后续绘图操作修改了哪些像素。

CTM 不直接影响CGBitmapContextCreateImageCGBitmapContextCreateImage 只是将像素从上下文中复制到图像中。它根本不查看 CTM。

因此,您从问题中省略了程序的关键部分:实际修改像素的部分。正确的顺序是这样的:

// 1. Flip Y axis.
CGContextTranslateCTM(context, 0, height);
CGContextScaleCTM(context, 1.0, -1.0);

// 2. Draw into context. For example:
CGContextBeginPath(context);
CGContextAddEllipseInRect(context, someRect);
CGContextSetFillColorWithColor(context, ...);
CGContextFillPath(context);

// 3. Create image.
CGImageRef rawMask = CGBitmapContextCreateImage(context);

关于iphone - 翻转上下文中的 CGBitmapContextCreateImage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18266826/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com