从CGContextRef获取UIBezierPath或CGPath

4

我有一个贝塞尔路径在当前的图形上下文中,我想将其存储为UIBezierPath或CGPath。你知道如何从CGContextRef中获取路径吗?

3个回答

6
您可以使用CGContextCopyPath复制上下文当前路径。
没有函数可以复制剪辑路径。 如果您使用了CGContextClipToMask,则剪辑区域不会由路径定义。

我在Context上画了一张图像,现在我想从上下文中获取CGPath,我尝试使用CGContextCopy来获取,但它不起作用。 - Ranjit
如果您在上下文中绘制了位图图像(例如使用CGContextDrawImage),则核心图形不会为您将其转换为路径。 如果您在上下文中创建了路径,然后对其进行描边或填充(例如使用CGContextFillPath),则需要在描边或填充之前复制该路径,因为核心图形在绘制路径后会清除其当前路径。 - rob mayoff

2
您可以使用CGContextCopyPath函数:
CGPathRef myPath = CGContextCopyPath(context);

0

Swift 4.0 及以上版本

您可以直接使用复制路径。

let copy = context.path

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接