CGContextSetShadowWithColor和Shadow Color

时间:2013-11-11 01:12:16

标签: objective-c macos cocoa osx-mountain-lion shadow

我一直在寻找在NSImage上投射内部发光(阴影)的方法。我已经登陆this topic了。本主题下给出的代码看起来很有希望。现在对我来说这是一个陌生的领域。无论如何,我坚持以下几行。

CGContextSetShadowWithColor(c,CGSizeMake(0,-1),innerShadowBlurRadius,CGColorGetConstantColor(kCGColorBlack));

更具体地说,我不太了解颜色部分。根据文档,最后一个术语是 CGColorRef ,我从未使用过。我想这是用于Quartz 2D绘图的颜色类型。换句话说,可以用Quartz 2D理解的语言指定颜色吗?无论如何,文档进一步表明有三种颜色常数。 kCGColorWhite kCGColorBlack kCGColorClear 。这是否意味着我不能在这方面指定RGB颜色?

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

不,这不是它的意思,是的,你可以指定RGB值;可能只是没有你想象的方式。 Quartz使用称为CGColorSpaceRef的东西,您可以将其视为多维 - 每个维度代表一个特定的颜色组件。一个例子是RGB颜色空间中的颜色,如三维(红色,绿色和蓝色)。每个组件的强度由浮点值表示,其范围和含义取决于所讨论的色彩空间。

这可以为您提供更加简洁的信息:

https://developer.apple.com/library/mac/documentation/GraphicsImaging/Reference/CGColorSpace/Reference/reference.html#//apple_ref/doc/uid/TP30000949

具体来看看:

CGColorCreateGenericRGB

Creates a color in the Generic RGB color space.

CGColorRef CGColorCreateGenericRGB(
   CGFloat red,
   CGFloat green,
   CGFloat blue,
   CGFloat alpha
);

以及Constant Colors

上的部分