【问题标题】:Number Of Components in CGColorCreate() if colorspace is Indexed colorspace?如果颜色空间是索引颜色空间,则 CGColorCreate() 中的组件数?
【发布时间】:2023-03-25 04:08:01
【问题描述】:

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

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

Apple 文档说,该数组应包含 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 应该是什么?它是否应该依赖于在创建索引颜色空间时传入的基本颜色空间?

【问题讨论】:

    标签: objective-c macos cocoa quartz-graphics


    【解决方案1】:

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

    CGFloat myComponentArray[] = { index, alpha };
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-08
      • 1970-01-01
      • 2016-08-20
      相关资源
      最近更新 更多