像iOS一样的NSImage Overlay / Mask Gradient

时间:2011-01-27 18:35:01

标签: cocoa core-graphics nsimage uitabbaritem

我希望用Cocoa / Core Graphics复制这个过程,这个过程似乎是在为UITabBarItem设置图像时在iOS上发生的。选择标签栏项目后,图像将以渐变覆盖。

例如,

enter image description here

...变为

enter image description here

我不确定我应该做些什么才能达到这个效果。看起来图像掩盖了渐变。任何指向正确的方向(或代码!)都会非常感激。

1 个答案:

答案 0 :(得分:3)

您可以使用带alpha通道的单色CGImage(与大多数iPhone工具/标签栏图标一样)作为遮罩。基本上,您将CGContextClipToMask与单色图像一起使用。然后你绘制渐变,然后剪切到蒙版图像。您可能还想看一下UMEKit的代码,它在Mac OS X上实现了这种效果(还没有看到它们是如何做到的,可能有几种方法)。