将NSShadow用于非矩形形状

时间:2011-06-20 09:15:43

标签: objective-c cocoa drawing shadow

我在CIImage对象中绘制了各种非矩形形状的阴影。我通过继承CIFilter并结合我自己的滤波器内核和高斯模糊滤波器来做到这一点。我想知道是否可以通过使用NSShadow来实现性能提升。

另外我不确定NSShadow是否可用于绘制非矩形形状的阴影?例如,在another question的答案中,我发现为了使用NSShadow,首先需要创建一个形状的NSBezierPath。

在这种情况下尝试使用NSShadow的任何提示,建议还是我完全不在这里?

1 个答案:

答案 0 :(得分:1)

我不知道它是否会更快,但肯定会更容易。请记住,您拥有的代码越少,您拥有的错误就越少。

NSShadow适用于任何形状,矩形或其他形状。事实上,我们通常不会将某些事物视为阴影的事实上可以实现为阴影。例如,发光只是一个白色的“阴影”。我猜测聚焦环在内部是阴影。

您无需创建NSBezierPath。用阴影绘制图像可以正常工作。唯一没有的是绘制渐变(如在NSGradient中)。

为了其他读者的利益:所有这些同样适用于Quartz,CGContext的阴影属性以及CGGradient和CGShading的排除。