

Abbildung: Das hufeisenförmige CIE-Diagramm (schematisch)

Abbildung: Die CIE-XYZ-Abbildung in [Foley et al.]
Die folgende Tabelle weist Bildschirm-typische Werte für Rot, Grün
und Blau aus:
Diese Werte werden auch als "Phosphor Chromaticities" bezeichnet.
Auf entsprechende Art und Weise könnte ein Drucker-Hersteller auch CMY oder CMYK im XYZ-Farbraum abbilden.
Auszug aus der Messreihe (die letzten acht Messungen bei Blau = 1.0 und
Grün = 1.0):
Diese XYZ-Werte beschreiben auf dem Farbkopierer CLC 500 einen Farbverlauf, der von Zyan nach Weiss geht. Siehe dazu: Ivan Pontiggia: Color correction for a laser copier and implementation of a testbed, Université de Neuchâtel, 1993. Abbildung: die Farben MIT Blauanteil (gif).
[/CIEBasedABC << /RangeABC [0 0.9505 0 1 0 1.0890] /RangeLMN [0 0.9505 0 1 0 1.0890] /WhitePoint [0.9505 1 1.0890] >>] setcolorspaceDer Operand im Beispiel ist ein Array, der aus dem Namen CIEBasedABC und einem Dictionary besteht, das drei Einträge enthält. Ein Range-Eintrag gibt jeweils den Wertebereich (von, bis) der drei Dimensionen A, B und C an; die Voreinstellung lautet [0 1 0 1 0 1]. Und WhitePoint ortet den "hellsten" Punkt im dreidimensionalen Farbraum.
Adobe Systems entschied, das XYZ-System als internen geräteunabhängigen Farbraum zu verwenden! Eine Farbraum-Definition vom Typ CIEBasedABC ist daher immer eine Transformation des XYZ-Raums; so kann z.B. CIE L*a*b* (gif) als XYZ-Transformation formuliert werden (mittels des Dictionary-Eintrags /DecodeLMN). Die Zwischendarstellung nennt sich LMN. Bei der Umrechnung
ABC -> LMN -> XYZkönnen maximal vier Phasen unterschieden werden:
Fig. 4.5 im Reference Manual (2nd edition) gibt einen Ueberblick zum Thema "color specification".
Dazu ein Beispiel aus NextStep:
%!PS-Adobe-3.0 Resource-ColorSpace
%%DocumentSuppliedResources: colorspace NXCalibratedRGB
%%Creator: NeXT Computer, Inc.
%%CreationDate: 22 November 1991
%%LanguageLevel: 2
%%VMlocation: global
%%VMusage: 3444 632
%%EndComments
%%BeginResource: colorspace NXCalibratedRGB
% NXCalibratedRGB -- based on the CCIR Rec 701 (XA/11) phosphor set, at D65
%
% Phosphor chromaticities:
% xr = .640 ; yr = .330;
% xg = .300 ; yg = .600;
% xb = .150 ; yb = .060;
% White point chromaticities:
% xw = .3127 ; yw = .3290;
%
[
/CIEBasedABC <<
/MatrixLMN [
.4124 .2126 .0193
.3576 .7152 .1192
.1805 .0722 .9505
]
/WhitePoint [ 0.9505 1 1.089 ]
>>
]
/NXCalibratedRGB exch /ColorSpace defineresource pop
%%EndResource
Der Operator defineresource definiert den CIE-Farbraum als Ressource namens NXCalibratedRGB. Dieser Farbraum wird als Transformation von XYZ beschrieben. Die Matrixmultiplikation mit LMN wandelt jeweils drei Farbwerte in XYZ um. Die Einträge DecodeABC, MatrixABC und DecodeLMN sind nicht erforderlich. Um direkt den setcolorspace-Operator aufzurufen, könnten Sie einfach die zweitletzte Zeile durch setcolorspace ersetzen.Die Farbumwandlung vom CIE-Farbraum zu einem Farbgerät erfordert zwei Operationen:
0.3 0.1 0.05 setcolor % Farbraum CIE XYZ 50 100 0 setcolor % Farbraum CIE L*a*b*Beide Beispiele geben im jeweiligen Farbraum eine rote Farbe.
Die vorne erwähnten acht XYZ-Messungen für den Laserkopierer CLC 500 können wie folgt interpretiert werden:
%!PS-Adobe-3.0 EPSF-3.0
%%Title: XYZ
%%Creator: (Peter Vollenweider)
%%CreationDate: 10 August 1993
%%BoundingBox: 0 92 64 100
%%LanguageLevel: 2
%%EndComments
%%BeginResource: colorspace XYZ
[/CIEBasedABC <<
/RangeABC [0.01 0.89 0.01 1 0.01 1.11]
/RangeLMN [0.01 0.89 0.01 1 0.01 1.11]
/WhitePoint [0.89 1 1.11]
>>] setcolorspace
%%EndResource
/N 100 def % Position oben
/LOOP {
/N N 8 sub def
0 1 7 {
/M exch 8 mul def % Pos. horizontal
/Z exch 100 div def % Z vom Stack holen
/Y exch 100 div def % Y vom Stack holen
/X exch 100 div def % X vom Stack holen
X Y Z setcolor
M N 8 8 rectfill
} for
} def
16.24 24.02 59.97
21.84 29.31 74.71
35.67 43.46 88.47
46.83 54.23 96.02
59.20 65.71 102.76
77.26 81.59 109.44
87.99 90.26 111.29
88.53 90.78 111.32
LOOP
showpage
Die obige PostScript-Applikation definiert die Prozedur LOOP, welche
für jede der acht Messungen ein kleines farbiges Quadrat druckt
(rectfill). Ein Rechteck wird an der Position (M,N) plaziert. Bevor der
Operator setcolor aufgerufen werden kann, muss die Applikation den
XYZ-Farbraum definiert haben. Jede Messung besteht aus einem X-, Y- und
Z-Wert; die Werte müssen nach dem Einlesen noch durch 100 dividiert
werden. Zur Verdeutlichung werden die drei Farbwerte als Variablen X, Y, Z
definiert.
Abbildung: Die 512 XYZ-Messungen interpretiert
Falls Sie einen neueren PostScript-Viewer (z.B. GhostScript 3.0) haben, können Sie das entsprechende PostScript-Programm XYZ.ps anklicken.
Weitere Funktionen von Level 2.