Tod*_*orf 7 macos cgcontext quartz-2d ios
鉴于:
ctx带框架的CGContextRef(){0,0,100,100} r带框架的rect(){25,25,50,50}将上下文剪辑到该矩形很容易:
CGContextClipToRect(ctx, r);
Run Code Online (Sandbox Code Playgroud)
掩盖下面的红色区域(红色==掩码):

但是我想反转这个剪切矩形以将其转换为剪贴蒙版.期望的结果是掩盖下面的红色部分(红色==掩码):

我想在运行时以编程方式执行此操作.
我不希望手动准备一个位图图像与我的应用程序静态发货.
鉴于ctx并且r,如何在运行时最容易/直接地完成?
rob*_*off 16
请阅读Quartz 2D Programming Guide的"填充路径"部分中的填充规则.
在您的情况下,最简单的方法是使用偶数填充规则.创建一个由小矩形和一个更大的矩形组成的路径:
CGContextBeginPath(ctx);
CGContextAddRect(ctx, CGRectMake(25,25,50,50));
CGContextAddRect(ctx, CGRectInfinite);
Run Code Online (Sandbox Code Playgroud)
然后,使用奇偶填充规则将此路径交叉到剪切路径:
CGContextEOClip(ctx);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1852 次 |
| 最近记录: |