1

CGColorSpaceCreateIndexed()を使用してColorRefを作成しようとしています。インデックスカラー空間を使用する場合のコンポーネント配列の受け渡しのルールを理解したい。

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

Appleのドキュメントによると、配列には、指定された色空間のn個の色成分に対応するn + 1個の値が含まれ、その後にアルファ成分が続く必要があります。

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

インデックスカラースペースの場合、カラーには1つのコンポーネントがあります。これは、カラーテーブルへのインデックスです。

CGFloat myComponentArray[] = { index, alpha };

あなたの場合、カラーテーブルには2つのエントリがあるため、インデックスは0または1である必要があります。

于 2012-09-28T09:29:03.630 に答える