1

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

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

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

谢谢您的帮助。

4

1 回答 1

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

于 2013-11-11T01:33:33.257 回答