1

我正在尝试使用 CGColorSpaceCreateIndexed() 创建 ColorRef。当我们使用索引颜色空间时,我想了解传递组件数组的规则。

CGColorRef CGColorCreate (
   CGColorSpaceRef colorspace,
   const CGFloat components[]
);

Apple doc 说,该数组应包含 n+1 个值,这些值对应于指定颜色空间中的 n 个颜色分量,然后是 alpha 分量。

unsigned char colorTable[] = {2,120,150,180,200,220,10, 30};
CGColorSpaceRef cs = CGColorSpaceCreateIndexed(CGColorSpaceCreateDeviceCMYK(), 1, colorTable);

现在,如果我使用这个色彩空间创建一种颜色,

const CGFloat myComponentArray[] = ??;
CGColorRef colorref = CGColorCreate (cs, myComponentArray);

myComponentArray 应该是什么?它是否应该取决于在创建索引颜色空间时传入的基本颜色空间?

4

1 回答 1

3

对于索引颜色空间,颜色有一个分量,即颜色表的索引:

CGFloat myComponentArray[] = { index, alpha };

在您的情况下,颜色表有 2 个条目,因此索引必须为 0 或 1。

于 2012-09-28T09:29:03.630 回答