我正在尝试使用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应该是什么?它应该依赖于在创建索引颜色空间时传入的基色空间吗?
答案 0 :(得分:3)
对于索引颜色空间,颜色有一个组件,它是颜色表的索引:
CGFloat myComponentArray[] = { index, alpha };
在您的情况下,颜色表有2个条目,因此索引必须为0或1。