gpt4 book ai didi

iphone - UIGraphicsGetCurrentContext 值传递给 CGContextRef 不起作用?

转载 作者:行者123 更新时间:2023-12-03 18:54:35 26 4
gpt4 key购买 nike

CGContextRef currentContext = UIGraphicsGetCurrentContext();
UIGraphicsBeginImageContext(drawImage.frame.size);
[drawImage.image drawInRect:CGRectMake(0,0, drawImage.frame.size.width, drawImage.frame.size.height)];

CGContextSetRGBStrokeColor(currentContext, 0.0, 0.0, 0.0, 1.0);
UIBezierPath *path=[self pathFromPoint:currentPoint
toPoint:currentPoint];

CGContextBeginPath(currentContext);
CGContextAddPath(currentContext, path.CGPath);
CGContextDrawPath(currentContext, kCGPathFill);
drawImage.image = UIGraphicsGetImageFromCurrentImageContext();

在上面的代码中,CGContextRef currentContextUIGraphicsGetCurrentContext()创建,并将其传递给CGContextBeginPath CGContextAddPath CGContextDrawPath currentContext有参数,但它不起作用为我!当我在做touchMovie时。

当我直接传递 UIGraphicsGetCurrentContext() 代替 currentContext 时,它对我有用。我想知道为什么会这样?

@All 请就这个问题向我提出建议。

最佳答案

问题在于,启动图像上下文后,currentContext 不再是当前上下文:

CGContextRef currentContext = UIGraphicsGetCurrentContext();
UIGraphicsBeginImageContext(drawImage.frame.size);
// Now the image context is the new current context.

所以你应该颠倒这两行:

UIGraphicsBeginImageContext(drawImage.frame.size);
CGContextRef currentContext = UIGraphicsGetCurrentContext();

编辑

正如 Nicolas 所指出的,当您不再需要图像上下文时,应该结束它:

drawImage.image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext(); // Add this line.

编辑

另请注意,您正在设置描边颜色,但使用填充命令进行绘制。

所以你应该调用适当的颜色方法:

CGContextSetRGBFillColor(currentContext, 0.0, 1.0, 0.0, 1.0);

关于iphone - UIGraphicsGetCurrentContext 值传递给 CGContextRef 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9499954/

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