夹到图像面具与可可

时间:2012-05-20 11:37:58

标签: objective-c xcode cocoa nsimage clip

我正在尝试实现类似于XCode 4中的tabbar:

enter image description here

我可以使用自定义图像实现一个简单的制表符控件,但我想以编程方式应用该内部阴影效果。我想提供只使用一种颜色的简单图标,没有任何渐变或阴影效果,基本上只是图标的形状。然后我会把它漆成黑色,模糊并绘制它。在绘图过程中,我需要剪切到原始形状。有人能指出我正确的方向/班级吗?我搜索了Cocoa Drawing文档但没有找到任何内容。谢谢!

1 个答案:

答案 0 :(得分:4)

NSImage有一个“模板图像”的概念。这是一个黑色和清晰的图像,适用于各种处理,如翻转,压花,雕刻等。

按名称加载的NSImage名称以“模板”结尾,会自动标记为模板图像。否则,您可以使用-setTemplate:将图像标记为模板。您可以使用-isTemplate检查图片是否为模板。

作为模板的图像本身并不会改变图像的渲染方式。这是代码可以查看的一些元数据,并决定改变它呈现图像的方式。关于如何执行渲染的文档并不多。相反,你应该利用NSCell提供的内置支持,这是AppKit中唯一关注图像是否是模板的类。

older AppKit release notes中有更详细的描述。

也就是说,如果您仍在寻找制作图像蒙版并剪裁它,您可能需要下载到Core Graphics。 CGImage直接支持掩码图像的概念。 CGContext支持使用CGContextClipToMask()裁剪到蒙版图像。请参阅Quartz 2D Programming Guide