用 CGPathRef 屏蔽 CGContext?

Posted

技术标签:

【中文标题】用 CGPathRef 屏蔽 CGContext?【英文标题】:Masking CGContext with a CGPathRef? 【发布时间】:2012-02-29 16:18:02 【问题描述】:

我正在使用 CGContext 进行一些绘图。我目前正在使用这样的 png 文件屏蔽绘图:

UIImage * myImage = [UIImage imageNamed:@"frame.png"];
CGContextRef context = UIGraphicsGetCurrentContext ();
CGContextClipToMask(context, self.view.bounds, myImage.CGImage);

这很好用,但现在我想使用现有的 CGPathRef 作为我的掩码。 我应该看一下将 CGPathRef 转换为 UIImage 和上面的掩码吗? 如果是这样,我将如何进行转换? -或者- 有没有更好的方法来解决这个问题?

【问题讨论】:

【参考方案1】:
CGContextAddPath(context, yourPath);
CGContextClip(context);

【讨论】:

这适用于矩形和椭圆。但如果路径是由 addArcWithCenter:radius:... 创建的,则不适用于我,而当我只需要保留一条像素线时。 不想被剪裁怎么办?例如,如果我们想屏蔽图像上的自定义路径而不将其剪切到路径的边界? @cxa

以上是关于用 CGPathRef 屏蔽 CGContext?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 CGContext 模糊线条的边缘

通过 CGContext 绘制 UIButton 图像

CGContext 的奇怪错误

仅在模拟器中出现 CGContext 错误?

呈现 UIAlertController 时出现 CGContext 错误

绘图(CGcontext)