Cocoa:用图像填充NSBezierPath

时间:2009-06-08 23:55:53

标签: objective-c cocoa image

我正在尝试找出如何绘制路径,然后用图像中的内容填充它,例如一个.png。我有各种形状的瓷砖(方形,三角形等,每个都由NSBezierPath定义。我可以用纯色填充它们,但我也希望能够用某种位图图像填充它们而不是纯色。< / p>

2 个答案:

答案 0 :(得分:2)

我相信你想要的是在当前图形上下文中剪切绘图。 Apple很好docs on this。他们的代码示例非常出色,并且是在调用drawRect:之前如何在Cocoa配置的图形上下文中执行相当高效的绘制的典型示例。

基本上,当您调用drawRect时,无论您最终绘制的是什么,都会被当前图形上下文的剪切路径(也就是配置为[myBezierPath addClip]的路径)自动屏蔽。 addClip是专门用于修改当前图形上下文的方法,在调用addClip之前,该上下文被“锁定”为drawRect方法的目标。

答案 1 :(得分:0)

Jarret的答案可能是最好的选择,但是如果你想避免弄乱图形上下文,你也可以使用NSColor的{​​{1}}类方法。这基本上允许您在通常使用颜色的任何地方使用图像。