色空間
PDF で、ストロークや塗りつぶしなどの色を指定する際には、まず、色空間を指定する必要があります。
(色空間の概念は PDF 1.1 で追加されました)
グラフィック命令で描画色などを指定する際には、各色空間に応じた値を指定します。
デフォルトの色空間はグレイスケール (DeviceGray) で、色の初期値は黒となっています。
(色空間の概念は PDF 1.1 で追加されました)
グラフィック命令で描画色などを指定する際には、各色空間に応じた値を指定します。
デフォルトの色空間はグレイスケール (DeviceGray) で、色の初期値は黒となっています。
色空間の種類
「デバイスの色空間」「CIE ベースの色空間」「特殊な色空間」の3つに分けられます。
デバイスの色空間 | (PDF 1.1) DeviceGray, DeviceRGB, DeviceCMYK |
---|---|
CIE ベースの色空間 | (PDF 1.1) ColGray, ColRGB, Lab (PDF 1.3) ICCBased |
特殊な色空間 | (PDF 1.1) Indexed (PDF 1.2) Pattern, Separation (PDF 1.3) DeviceN |
デバイスの色空間
デバイスの色空間 (出力デバイスにおける色空間) は、以下の3つが使用できます。
基本的にはこれらを使います。
CS, cs 命令で色空間が設定された場合、色の初期値は黒に設定されます。
基本的にはこれらを使います。
DeviceGray | グレイスケール。 色は1つの数値。0.0 (黒)〜1.0 (白) |
---|---|
DeviceRGB | RGB。 色は 0.0〜1.0 の範囲の3つの数値 (R G B の順) |
DeviceCMYK | CMYK。印刷用です。 色は 0.0〜1.0 (インクの量) の範囲の4つの数値 (C M Y K の順) |
CS, cs 命令で色空間が設定された場合、色の初期値は黒に設定されます。
色関係のグラフィック命令
オペランド | 命令 | 説明 |
---|---|---|
name | CS | (PDF 1.1) ストローク描画用の色空間を設定。 色空間が追加パラメータなしで指定できるタイプの場合 (DeviceGray など) は、タイプの名前を指定します。 追加パラメータが必要なタイプの場合、リソース辞書の ColorSpace エントリの辞書で定義された名前を指定します。 |
name | cs | (PDF 1.1) 塗りつぶしなど、ストローク以外の描画用の色空間を設定。 値は CS と同じ。 |
color | SC | (PDF 1.1) ストロークの色を設定。値は各色空間によります。 |
color | SCN | (PDF 1.2) SC と同じ。 Pattern, Separation, DeviceN, ICCBased のタイプがサポートされている。 |
color | sc | (PDF 1.1) ストローク以外の色を設定 |
color | scn | (PDF 1.2) ストローク以外の色を設定。 Pattern, Separation, DeviceN, ICCBased のタイプがサポートされている。 |
gray | G, g | 色空間を DeviceGray に設定し、同時に色を設定する。 G はストローク用、g はストローク以外用。 |
r g b | RG, rg | 色空間を DeviceRGB に設定し、同時に色を設定する。 RG はストローク用、rg はストローク以外用。 |
c m y k | K, k | 色空間を DeviceCMYK に設定し、同時に色を設定する。 K はストローク用、k はストローク以外用。 |
CIE ベースの色空間
CIE ベースの色空間では、人間の視覚に関連する方法で色を指定することで、異なる出力デバイスで一貫した結果を出します。
色空間の指定時は、色空間のタイプの名前と、パラメータを、配列で指定します。
ここでは、ICC プロファイルを使用する ICCBased のみ説明します。
色空間の指定時は、色空間のタイプの名前と、パラメータを、配列で指定します。
ここでは、ICC プロファイルを使用する ICCBased のみ説明します。
ICCBased [PDF 1.3]
ICC (International Color Consortium) で定義されているカラープロファイルに基づいた色空間を指定します。
色空間の指定時は、[ /ICCBased stream ] という形で記述し、stream には、ICC プロファイルのデータが含まれたストリームオブジェクトを指定します。
このストリームの辞書には、以下の追加エントリを含めます。
なお、PDF の各バージョンによって、対応している ICC 仕様バージョンが異なります。
新しい ICC バージョンも使用することは出来ますが、確実に対応できるとは限らないため、出来るだけ PDF バージョンに応じたバージョンのものを使用するか、代替色空間を指定してください。
色空間の指定時は、[ /ICCBased stream ] という形で記述し、stream には、ICC プロファイルのデータが含まれたストリームオブジェクトを指定します。
このストリームの辞書には、以下の追加エントリを含めます。
N | integer | (必須) プロファイルの色空間の色成分の数。 グレイスケールなら1、RGB なら3、CMYK なら4。 |
---|---|---|
Alternate | array or name | ストリームデータで指定された色空間がサポートされていない場合に使用される代替色空間。 N で指定された色成分を持つ色空間を指定する (Pattern を除く)。 省略された場合、DeviceGray, DeviceRGB, DeviceCMYK のいずれか。 |
Range | array | 各色成分の最大値と最小値を指定した配列。 [min0 max0 min1 max1...] ICC プロファイルの情報と一致する必要がある。 デフォルトは 0.0 と 1.0。 |
Metadata | stream | (PDF 1.4) メタデータストリーム |
なお、PDF の各バージョンによって、対応している ICC 仕様バージョンが異なります。
1.3 | 3.3 |
---|---|
1.4 | ICC.1:1998-09 および ICC.1A:1999-04 |
1.5 | ICC.1:2001-12 |
1.6 | ICC.1:2003-09 |
1.7 | ICC.1:2004-10 |
新しい ICC バージョンも使用することは出来ますが、確実に対応できるとは限らないため、出来るだけ PDF バージョンに応じたバージョンのものを使用するか、代替色空間を指定してください。
印刷用途に使う PDF の場合、RGB 色空間にする場合は、プロファイルを埋め込むことが推奨されます。
(プロファイルを指定せずに作成した場合、通常は sRGB として扱うのが一般的です)
CMYK 色空間の場合は、プロファイルを埋め込む必要はありません。
(プロファイルを指定せずに作成した場合、通常は sRGB として扱うのが一般的です)
CMYK 色空間の場合は、プロファイルを埋め込む必要はありません。
使用例
DeviceRGB
>> 12.pdf
/DeviceRGB CS /DeviceRGB cs 0 0 1 SC % ストロークの色を青に 1 0 0 sc % 塗りつぶしの色を赤に 200 500 200 200 re b % ストロークと塗りつぶしを描画 ------------- (この場合、以下でも同じです) 0 0 1 RG % DeviceRGB に設定して色をセット 1 0 0 rg 200 500 200 200 re b
ICCBased
3 0 obj << /Type /Page /Parent 2 0 R /MediaBox [ 0 0 612 792 ] /Resources 5 0 R /Contents 7 0 R >> endobj % リソース辞書 5 0 obj << /ColorSpace << /CS1 [/ICCBased 6 0 R] >> % /CS1 という名前で色空間を定義 >> endobj % ICCBased のストリーム 6 0 obj << /Length 700988 /Filter /ASCII85Decode /N 4 % 色成分4個 = CMYK >> stream ...ICC profile... endstream endobj % コンテンツストリーム 7 0 obj << /Length 58 >> stream /CS1 CS % 色空間を /CS1 という名前で定義されたものに設定 /CS1 cs 0 0 1 0 SC % CMYK 色 1 0 0 0 sc 200 500 200 200 re b endstream endobj