%!PS-Adobe-3.0 EPSF-3.0 www.ps.bam.de/INFDE07/7510/L7510ENA.PS/TXT 2001/01/25 %%BoundingBox: 0 0 595 842 %old %%BoundingBox: 14 08 584 828 %%Creator: K. Richter, BAM und TU Berlin 1998.09.01 %%+Copyright (c) DIN Deutsches Institut fuer Normung e.V. % Bezugsquelle Druck-Original: / Order of original print: % siehe / contact www.din.de und / and www.din.de/33866 % weitere technischen Informationen: / additional technical % informations: www.bam.de und / and http://o2.ps.bam.de % PostScript(PS)/PDF-Internet-Version 1.4, 2000 % % Mit freundlicher Genehmigung des VDE-Verlags Berlin Offenbach % konnten Bilder (Siemenssterne, CIE-Testfarben, RGB- und LAB- % Blumenmotiv) im PostScript- (PS-) und PDF-Programmcode fuer % Normungszwecke verwendet werden. Der PS-Code ist entnommen von % der CD-ROM zum Buch: K. Richter: Computergrafik und Farbmetrik: % Farbsysteme, PostScript, geraeteunabhaengige CIE-Farben % VDE-Verlag, Berlin, 1996, ISBN 3-8007-1775-1 mit 500 Bildern. % % With friendly permission of VDE-Verlag Berlin Offenbach it is % allowed to use pictures (Siemens-stars, CIE-test colours, RGB- % and LAB-flower motif) in PostScript- (PS-) and PDF-program code % for standardization purposes. The PS-code is taken from % the CD-ROM of the book: K. Richter: Computergrafik und Farbmetrik: % Farbsysteme, PostScript, geraeteunabhaengige CIE-Farben % VDE-Verlag, Berlin, 1996, ISBN 3-8007-1775-1 with 500 pictures. % % Rahmen geeignet fuer bis zu 16 EPS-Bilder (54 mm x 40 mm) auf DINA4 % Frame usefull for up to 16 EPS-Pictures (54 mm x 40 mm) on DINA4 % EPS-Funktionen aus PSL2-Handbuch /EPS-functions from PSL2-handbook /BeginEPSF { % def % Prepare for EPS file /b4_Inc_state save def % Save state for cleanup /dict_count countdictstack def /op_count count 1 sub def % Count objects on op stack userdict begin % Make userdict current dict /showpage {} def 0 setgray 0 setlinecap 1 setlinewidth 0 setlinejoin 10 setmiterlimit [] 0 setdash newpath /languagelevel where % If level not equal to 1 then {pop languagelevel where % If level not equal to 1 then 1 ne {false setstrokeadjust false setoverprint } if } if } bind def /EndEPSF { % def count op_count sub {pop} repeat countdictstack dict_count sub {end} repeat % Clean up dict stack b4_Inc_state restore } bind def /FS {findfont exch scalefont setfont} bind def /MM {72 25.4 div mul} def /str {8 string } bind def /languagelevel where {pop languagelevel} {1} ifelse /PSL12 exch def /dictende {counttomark 2 idiv dup dict begin {def} repeat pop currentdict end} bind def % !AUSTAUSCH Times-Roman -> Times-Roman-ISOLatin1=Times-I /Times-Roman findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /Times-ISOL1 exch definefont pop /Times-Italic findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /TimesI-ISOL1 exch definefont pop /Times-Bold findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /TimesB-ISOL1 exch definefont pop /Times-BoldItalic findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /TimesBI-ISOL1 exch definefont pop /TK {250 /Times-ISOL1 FS} bind def /TM {300 /Times-ISOL1 FS} bind def /TG {350 /Times-ISOL1 FS} bind def /TIK {250 /TimesI-ISOL1 FS} bind def /TIM {300 /TimesI-ISOL1 FS} bind def /TIG {350 /TimesI-ISOL1 FS} bind def /TBK {250 /TimesB-ISOL1 FS} bind def /TBM {300 /TimesB-ISOL1 FS} bind def /TBG {350 /TimesB-ISOL1 FS} bind def /TBIK {250 /TimesBI-ISOL1 FS} bind def /TBIM {300 /TimesBI-ISOL1 FS} bind def /TBIG {350 /TimesBI-ISOL1 FS} bind def /proz1 {pop} bind def /proz2 {sqrt} bind def /setgc {pop pop pop 1 exch sub setgray} bind def /setgm {pop pop 1 exch sub setgray pop} bind def /setgy {pop 1 exch sub setgray pop pop} bind def /setgn {1 exch sub setgray pop pop pop} bind def /setgf {/ncolor exch def /ycolor exch def /mcolor exch def /ccolor exch def 0 ccolor eq 0 mcolor eq and 0 ycolor eq and {1 ncolor sub setgray} {1 ccolor sub 0.71 mul 1 mcolor sub 0.22 mul add 1 ycolor sub 0.07 mul add setgray} ifelse } bind def /setsc {075 135 {proz1} setscreen } bind def /setsm {075 090 {proz1} setscreen } bind def /setsy {075 000 {proz1} setscreen } bind def /setsn {075 045 {proz1} setscreen } bind def /setsf {075 135 {proz1} 075 090 {proz1} 075 000 {proz1} 075 045 {proz1} setcolorscreen } bind def /setcmykcolorf {setcmykcolor setsf} bind def %fuer PSL1/2-Farbgeraet %ANFA HALBTON /Halbt { %wrbie:HALBTOA0.eps } bind def %ANFA CMYKDEF %CMYKDEA0 (A0=Standard-Drucker-CMYKDEF) 15.3.97 /tzac [1.000 0.933 0.867 0.800 0.733 0.667 0.600 0.533 0.467 0.400 0.333 0.267 0.200 0.132 0.067 0.000 1.000 0.750 0.500 0.250 0.000] def /tzam [1.000 0.933 0.867 0.800 0.733 0.667 0.600 0.533 0.467 0.400 0.333 0.267 0.200 0.132 0.067 0.000 1.000 0.750 0.500 0.250 0.000] def /tzay [1.000 0.933 0.867 0.800 0.733 0.667 0.600 0.533 0.467 0.400 0.333 0.267 0.200 0.132 0.067 0.000 1.000 0.750 0.500 0.250 0.000] def /tzan [1.000 0.933 0.867 0.800 0.733 0.667 0.600 0.533 0.467 0.400 0.333 0.267 0.200 0.132 0.067 0.000 1.000 0.750 0.500 0.250 0.000] def /tza0 [0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000] def /tza1 [1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000] def %ENDE CMYKD %ANFA SETCMYK /setcmyknew { %Ersatz setcolornew durch setcmykcolor1 ausz 1 eq {setgc half 0 eq {setsc} if} if %C ausz 2 eq {setgm half 0 eq {setsm} if} if %M ausz 3 eq {setgy half 0 eq {setsy} if} if %Y ausz 4 eq {pop pop pop /ccolor exch def ccolor 0 0 0 /setcmykcolor where %Abfrage Farb-/SW-Geraet {pop setcmykcolorf} %PSL1/2-Farb-Geraet {setgc setsc} %PSL1-SW-Geraet ifelse } if %Cbunt ausz 5 eq {pop pop /mcolor exch def pop 0 mcolor 0 0 /setcmykcolor where %Abfrage Farb-/SW-Geraet {pop setcmykcolorf} %PSL1/2-Farb-Geraet {setgm setsm} %PSL1-SW-Geraet ifelse } if %Mbunt ausz 6 eq {pop /ycolor exch def pop pop 0 0 ycolor 0 /setcmykcolor where %Abfrage Farb-/SW-Geraet {pop setcmykcolorf} %PSL1/2-Farb-Geraet {setgy setsy} %PSL1-SW-Geraet ifelse } if %Ybunt ausz 7 eq {setgn half 0 eq {setsn} if} if %N ausz 8 ge { /setcmykcolor where %Abfrage Farb-/SW-Geraet {pop setcmykcolorf} %PSL1/2-Farb-Geraet {setgf setsn} %PSL1-SW-Geraet ifelse } if %bei ausz=8: Farb- oder SW-Ausdruck je nach Drucker } bind def /rec %x, y width heigth {/heigth exch def /width exch def moveto width 0 rlineto 0 heigth rlineto width neg 0 rlineto closepath } bind def /colrecfi %x y width heigth c m y n {setcmyknew rec fill} bind def /colrecst %x y width heigth c m y n {setcmyknew rec stroke} bind def /tzo {0.0 1.0 1.0 0.0} bind def %Reproduktionsfarben /tzl {1.0 0.0 1.0 0.0} bind def /tzv {1.0 1.0 0.0 0.0} bind def /tzc {1.0 0.0 0.0 0.0} bind def /tzm {0.0 1.0 0.0 0.0} bind def /tzy {0.0 0.0 1.0 0.0} bind def /tza {1.0 1.0 1.0 1.0} bind def /tzn {0.0 0.0 0.0 1.00} bind def %Graureihe /tzd {0.0 0.0 0.0 0.75} bind def /tzz {0.0 0.0 0.0 0.50} bind def /tzh {0.0 0.0 0.0 0.25} bind def /tzw {0.0 0.0 0.0 0.00} bind def /tzr {0.0 1.0 0.5 0.0} bind def %Elementarfarben /tzg {1.0 0.0 0.5 0.0} bind def /tzb {1.0 0.5 0.0 0.0} bind def /tzj {0.0 0.0 1.0 0.0} bind def /tzrz {0.0 1.0 0.5 0.5} bind def %Elementarfarben vergraut /tzgz {1.0 0.0 0.5 0.5} bind def /tzbz {1.0 0.5 0.0 0.5} bind def /tzjz {0.0 0.0 1.0 0.5} bind def /tfo {tzo setcmyknew} bind def /tfl {tzl setcmyknew} bind def /tfv {tzv setcmyknew} bind def /tfc {tzc setcmyknew} bind def /tfm {tzm setcmyknew} bind def /tfy {tzy setcmyknew} bind def /tfa {tzy setcmyknew} bind def /tfn {tzn setcmyknew} bind def /tfd {tzd setcmyknew} bind def /tfz {tzz setcmyknew} bind def /tfh {tzh setcmyknew} bind def /tfw {tzw setcmyknew} bind def /tfr {tzr setcmyknew} bind def /tfg {tzg setcmyknew} bind def /tfb {tzb setcmyknew} bind def /tfj {tzj setcmyknew} bind def /tfrz {tzrz setcmyknew} bind def /tfgz {tzgz setcmyknew} bind def /tfbz {tzbz setcmyknew} bind def /tfjz {tzjz setcmyknew} bind def %ANFA OUTLINO0 951204 /pixf 1.0 def /ueg {1.6 pixf mul} bind def /uek {0.8 pixf mul} bind def /ues {0.7 pixf mul} bind def /pxd uek def /pyd uek def /pxwd ueg def /pywd ueg def /outxshowf {show} bind def /outxshow {show} bind def /SK {250 16.67 div 1 sub pixf mul /Symbol FS} bind def /SM {300 16.67 div 1 sub pixf mul /Symbol FS} bind def /SG {350 16.67 div 1 sub pixf mul /Symbol FS} bind def /outSK {250 16.67 div 1 sub pixf mul /Symbol FS outxshow} bind def /outSM {300 16.67 div 1 sub pixf mul /Symbol FS outxshow} bind def /outSG {350 16.67 div 1 sub pixf mul /Symbol FS outxshow} bind def /outshowf {setcmyknew show} bind def /outrecfi { %x y width heigth c m y k setcmyknew rec fill} bind def /outrecfi4 { %x y width heigth c m y k outrecfi} bind def /outrecfi3 { %x y width heigth c m y k outrecfi} bind def /outrecfi2 { %x y width heigth c m y k outrecfi} bind def /outlinetos { %px py c m y k setcmyknew lineto stroke} bind def /outstroke { %px1 py1 curveto ... curveto c m y k setcmyknew stroke} bind def /A4quer {598 0 translate 90 rotate} def %0 %1 %%EndProlog %%BeginPageSetup /#copies 1 def A4quer 1.0 1.0 scale /pgsave save def %%EndPageSetup 0.5 MM 0.5 MM translate %Verschiebung nach oben und links fuer Belichter gsave /SS$ [(G) (E) (S) (F) (I) (J) (M)] def /SX$ [(0) (1) (2) (3) (4) (5) (6) (7) (8) (9) (A) (B) (C) (D) (E) (F)] def /SY$ [(0) (1) (2) (3) (4) (5) (6) (7) (8) (9) (A) (B) (C) (D) (E) (F)] def % 0 1 2 3 4 5 % 6 7 8 9 10 11 /EX$ [(NA.PS/.TXT) (NB.PS/.BMP) (NG.PS/.GIF) (NH.PS/.HTM) (NI.PS/.HTM) (NJ.PS/.JPE) (NP.PS/.PDF) (NT.PS/.TIF) (NSA.PS/.PDF) (NSP.PS/.PDF) (NDA.PS/.PDF) (NDP.PS/.PDF)] def /lanindg1 1 def /lanindg2 1 def /xcolorg1 0 def /xcolorg2 0 def /xchartg1 0 def /xchartg2 0 def %lanindg1 1 lanindg2 {/lanindg exch def %out with lanindg begin %xcolorg1 1 xcolorg2 {/xcolorg exch def %out with xcolorg begin %xchartg1 1 xchartg2 {/xchartg exch def %out with xchartg begin /lanindg lanindg1 def /xcolorg xcolorg1 def /xchartg xchartg1 def /GSS$ SS$ lanindg get def /GSX$ SX$ xcolorg get def /GSY$ SY$ xchartg get def /GEX$ EX$ 0 get def gsave BeginEPSF 28 MM 197 MM translate 10 /Times-ISOL1 FS 1 1 scale -77 -91 translate %%BeginDocument: Bild 10 %Zeile 310 %%EndDocument EndEPSF grestore gsave BeginEPSF 28 MM 153 MM translate 10 /Times-ISOL1 FS 53 MM 1 MM moveto ( ) show 1 1 scale -77 -91 translate %%BeginDocument: Bild 11 %Zeile 320 %%EndDocument EndEPSF grestore gsave BeginEPSF 86 MM 153 MM translate 10 /Times-ISOL1 FS 53 MM 1 MM moveto ( ) show 1 1 scale -77 -91 translate %%BeginDocument: Bild 12 %Zeile 330 %%EndDocument EndEPSF grestore gsave BeginEPSF 28 MM 109 MM translate 10 /Times-ISOL1 FS 53 MM 1 MM moveto ( ) show 1 1 scale -77 -91 translate %%BeginDocument: Bild 13 %Zeile 340 %!PS-Adobe-3.0 EPSF-3.0 M7510-3N.EPS, N=2_2 20000816 %%BoundingBox: 50 80 395 332 %START PDFDE011.EPS /pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse /languagelevel where {pop languagelevel} {1} ifelse 2 lt { userdict (<<) cvn ([) cvn load put userdict (>>) cvn (]) cvn load put} if [ /Title (PostScript pictures: M7510-3N.EPS) /Author (compare K. Richter "Computergrafik ...": ISBN 3-8007-1775-1) /Subject (goto: http://o2.ps.bam.de or http://www.ps.bam.de) /Keywords (image reproduction, colour devices) /Creator (klaus.richter@bam.de) /CreationDate (D:2000081612000) /ModDate (D:2000081612000) /DOCINFO pdfmark [ /View [ /FitB ] /DOCVIEW pdfmark %END PDFDE011 %%Creator: K. Richter, BAM und TU Berlin, 20000816 %%+Copyright (c) 1996 VDE-Verlag Berlin Offenbach % !AUSTAUSCH Times-Roman -> Times-Roman-ISOLatin1=Times-I /Times-Roman findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /Times-ISOL1 exch definefont pop /Times-Italic findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /TimesI-ISOL1 exch definefont pop /Times-Bold findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /TimesB-ISOL1 exch definefont pop /Times-BoldItalic findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /TimesBI-ISOL1 exch definefont pop /FS {findfont exch scalefont setfont} bind def /MM {72 25.4 div mul} def %Umrechnung Inch -> mm /A4quer {598 0 translate 90 rotate} def /languagelevel where {pop languagelevel} {1} ifelse /PSL12 exch def /dictende {counttomark 2 idiv dup dict begin {def} repeat pop currentdict end} bind def % function to convert from LAB* co-ordinates to olv* co-ordinates % takes in three variables LAB* and returns the *color data for olv*. % definitions of TV-colours (Yw=88.60) in the LAB* system, % compare ISO/IEC 15775:1999-12 and DIS ISO/IEC 19839-1 to 4 % If these require changing only need to change them here %/C*LAB* [ 86.88 -46.18 -13.57 ] def % cyan in LAB* %/M*LAB* [ 57.50 94.35 -58.42 ] def % magenta in LAB* %/Y*LAB* [ 92.66 -20.71 90.75 ] def % yellow in LAB* %/O*LAB* [ 50.50 76.92 64.55 ] def % orange in LAB* %/L*LAB* [ 83.63 -82.77 79.90 ] def % leafgreen in LAB* %/V*LAB* [ 30.39 76.06 -103.6 ] def % violet in LAB* %/N*LAB* [ 0.01 0.01 0.01 ] def % black (noir=n) in LAB* %/W*LAB* [100.00 0.01 0.01 ] def % white %TV-NORMALISATION TO 100, SEE TABLE 9, DIS ISO/IEC 19839-1:2000-04 %ACCORDING TO ITU-R BT.709-2 /C*LAB* [ 91.11 -48.08 -14.13 ] def % cyan in LAB* /M*LAB* [ 60.32 98.24 -60.83 ] def % magenta in LAB* /Y*LAB* [ 97.14 -21.56 94.48 ] def % yellow in LAB* /O*LAB* [ 53.24 80.09 67.20 ] def % orange in LAB* /L*LAB* [ 87.74 -86.18 83.19 ] def % leafgreen in LAB* /V*LAB* [ 32.30 79.20 -107.9 ] def % violet in LAB* /N*LAB* [ 0.01 0.01 0.01 ] def % black (noir=n) in LAB* /W*LAB* [100.00 0.01 0.01 ] def % white /Ns*LAB* [ 0.01 0.01 0.01 ] def % system dapted black (noir=n) in LAB* -> 0.01, 0, 0 for sysada=1 /Ws*LAB* [100.00 0.01 0.01 ] def % system adapted white -> 100, 0, 0 for sysada=1 /Ns*L* Ns*LAB* 0 get def /Ns*A* Ns*LAB* 1 get def /Ns*B* Ns*LAB* 2 get def /Ws*L* Ws*LAB* 0 get def /Ws*A* Ws*LAB* 1 get def /Ws*B* Ws*LAB* 2 get def % Determine the angle in the A* B* plane of each of the colours defined above /C*Ang C*LAB* 2 get C*LAB* 1 get atan def /M*Ang M*LAB* 2 get M*LAB* 1 get atan def /Y*Ang Y*LAB* 2 get Y*LAB* 1 get atan def /O*Ang O*LAB* 2 get O*LAB* 1 get atan def /L*Ang L*LAB* 2 get L*LAB* 1 get atan def /V*Ang V*LAB* 2 get V*LAB* 1 get atan def /N*Ang N*LAB* 2 get N*LAB* 1 get atan def /W*Ang W*LAB* 2 get W*LAB* 1 get atan def % The detproc below finds the determinant of the Matrix: % | A1 B1 C1 D1 | % | A2 B2 C2 D2 | % | A3 B3 C3 D3 | % | A4 B4 C4 D4 | % /detproc { /term1 B2 C3 mul D4 mul C2 D3 mul B4 mul add D2 B3 mul C4 mul add B4 C3 mul D2 mul sub C4 D3 mul B2 mul sub D4 B3 mul C2 mul sub def /term2 A2 C3 mul D4 mul C2 D3 mul A4 mul add D2 A3 mul C4 mul add A4 C3 mul D2 mul sub C4 D3 mul A2 mul sub D4 A3 mul C2 mul sub def /term3 A2 B3 mul D4 mul B2 D3 mul A4 mul add D2 A3 mul B4 mul add A4 B3 mul D2 mul sub B4 D3 mul A2 mul sub D4 A3 mul B2 mul sub def /term4 A2 B3 mul C4 mul B2 C3 mul A4 mul add C2 A3 mul B4 mul add A4 B3 mul C2 mul sub B4 C3 mul A2 mul sub C4 A3 mul B2 mul sub def /det A1 term1 mul B1 term2 mul sub C1 term3 mul add D1 term4 mul sub def } bind def % The Coeffproc procedure solves for WhiteCoeff, Black Coeff, Col1Coeff and % Col2Coeff in the matrix equation below. It takes as inputs A1->A4 B1->B4 % C1->C4 D1->D4 and s,y,z,t. It solves for these using Cramer's rule. % Note: Cramer's rule is valid only for non-singular matrices, ie |A| not % equal to 0. % % | A1 B1 C1 D1 | |WhiteCoeff| |x| % | A2 B2 C2 D2 | |BlackCoeff| = |y| % | A3 B3 C3 D3 | |Col1Coeff | |z| % | A4 B4 C4 D4 | |Col2Coeff | |t| % A B = C % /Coeffproc { /t exch def /z exch def /y exch def /x exch def /D4 exch def /D3 exch def /D2 exch def /D1 exch def /C4 exch def /C3 exch def /C2 exch def /C1 exch def /B4 exch def /B3 exch def /B2 exch def /B1 exch def /A4 exch def /A3 exch def /A2 exch def /A1 exch def detproc /den det def % determine white coefficient /temp1 A1 def /temp2 A2 def /temp3 A3 def /temp4 A4 def /A1 x def /A2 y def /A3 z def /A4 t def detproc /numW det def /A1 temp1 def /A2 temp2 def /A3 temp3 def /A4 temp4 def % determine black coefficient /temp1 B1 def /temp2 B2 def /temp3 B3 def /temp4 B4 def /B1 x def /B2 y def /B3 z def /B4 t def detproc /numB det def /B1 temp1 def /B2 temp2 def /B3 temp3 def /B4 temp4 def % determine colour1 coefficient /temp1 C1 def /temp2 C2 def /temp3 C3 def /temp4 C4 def /C1 x def /C2 y def /C3 z def /C4 t def detproc /numCol1 det def /C1 temp1 def /C2 temp2 def /C3 temp3 def /C4 temp4 def % determine colour2 coefficient /temp1 D1 def /temp2 D2 def /temp3 D3 def /temp4 D4 def /D1 x def /D2 y def /D3 z def /D4 t def detproc /numCol2 det def /D1 temp1 def /D2 temp2 def /D3 temp3 def /D4 temp4 def /WhiteCoeff numW den div def /BlackCoeff numB den div def /Col1Coeff numCol1 den div def /Col2Coeff numCol2 den div def WhiteCoeff BlackCoeff Col1Coeff Col2Coeff % returns these *color data on the stack } bind def %%EndProlog gsave /sysada 1 def %sysada=0,1 system adaptation of 8 x 3 LAB*coordinates 0 1 7 {/i exch def %i=0,7 i 0 eq {/L* C*LAB* 0 get def /A* C*LAB* 1 get def /B* C*LAB* 2 get def} if i 1 eq {/L* M*LAB* 0 get def /A* M*LAB* 1 get def /B* M*LAB* 2 get def} if i 2 eq {/L* Y*LAB* 0 get def /A* Y*LAB* 1 get def /B* Y*LAB* 2 get def} if i 3 eq {/L* O*LAB* 0 get def /A* O*LAB* 1 get def /B* O*LAB* 2 get def} if i 4 eq {/L* L*LAB* 0 get def /A* L*LAB* 1 get def /B* L*LAB* 2 get def} if i 5 eq {/L* V*LAB* 0 get def /A* V*LAB* 1 get def /B* V*LAB* 2 get def} if i 6 eq {/L* N*LAB* 0 get def /A* N*LAB* 1 get def /B* N*LAB* 2 get def} if i 7 eq {/L* W*LAB* 0 get def /A* W*LAB* 1 get def /B* W*LAB* 2 get def} if /L*sa L* def /l*CIEsa L*sa Ns*L* sub Ws*L* Ns*L* sub div def %system adapted relative lightness /a*sa Ws*A* Ns*A* sub l*CIEsa mul def /b*sa Ws*B* Ns*B* sub l*CIEsa mul def /A*sa A* Ns*A* sub a*sa sub 0.0001 add def %0.0001 for atan /B*sa B* Ns*B* sub b*sa sub 0.0001 add def %0.0001 for atan sysada 0 eq {%sysada=0 i 0 eq {C*LAB* 0 L* put C*LAB* 1 A* put C*LAB* 2 B* put} if i 1 eq {M*LAB* 0 L* put M*LAB* 1 A* put M*LAB* 2 B* put} if i 2 eq {Y*LAB* 0 L* put Y*LAB* 1 A* put Y*LAB* 2 B* put} if i 3 eq {O*LAB* 0 L* put O*LAB* 1 A* put O*LAB* 2 B* put} if i 4 eq {L*LAB* 0 L* put L*LAB* 1 A* put L*LAB* 2 B* put} if i 5 eq {V*LAB* 0 L* put V*LAB* 1 A* put V*LAB* 2 B* put} if i 6 eq {N*LAB* 0 L* put N*LAB* 1 A* put N*LAB* 2 B* put} if i 7 eq {W*LAB* 0 L* put W*LAB* 1 A* put W*LAB* 2 B* put} if } %sysada=0 { %sysada=1 i 0 eq {C*LAB* 0 L*sa put C*LAB* 1 A*sa put C*LAB* 2 B*sa put} if i 1 eq {M*LAB* 0 L*sa put M*LAB* 1 A*sa put M*LAB* 2 B*sa put} if i 2 eq {Y*LAB* 0 L*sa put Y*LAB* 1 A*sa put Y*LAB* 2 B*sa put} if i 3 eq {O*LAB* 0 L*sa put O*LAB* 1 A*sa put O*LAB* 2 B*sa put} if i 4 eq {L*LAB* 0 L*sa put L*LAB* 1 A*sa put L*LAB* 2 B*sa put} if i 5 eq {V*LAB* 0 L*sa put V*LAB* 1 A*sa put V*LAB* 2 B*sa put} if i 6 eq {N*LAB* 0 L*sa put N*LAB* 1 A*sa put N*LAB* 2 B*sa put} if i 7 eq {W*LAB* 0 L*sa put W*LAB* 1 A*sa put W*LAB* 2 B*sa put} if } ifelse %sysada=0,1 } for %i=0,7 /C*L* C*LAB* 0 get def /C*A* C*LAB* 1 get def /C*B* C*LAB* 2 get def /M*L* M*LAB* 0 get def /M*A* M*LAB* 1 get def /M*B* M*LAB* 2 get def /Y*L* Y*LAB* 0 get def /Y*A* Y*LAB* 1 get def /Y*B* Y*LAB* 2 get def /O*L* O*LAB* 0 get def /O*A* O*LAB* 1 get def /O*B* O*LAB* 2 get def /L*L* L*LAB* 0 get def /L*A* L*LAB* 1 get def /L*B* L*LAB* 2 get def /V*L* V*LAB* 0 get def /V*A* V*LAB* 1 get def /V*B* V*LAB* 2 get def /N*L* N*LAB* 0 get def /N*A* N*LAB* 1 get def /N*B* N*LAB* 2 get def /W*L* W*LAB* 0 get def /W*A* W*LAB* 1 get def /W*B* W*LAB* 2 get def %LANINDL3 START 20000505 /lanind 0 def /lantex [(G) (E) (S) (F) (I) (J) (M)] def /showde {0 lanind eq {show} {pop} ifelse} bind def /showen {1 lanind eq {show} {pop} ifelse} bind def /showes {2 lanind eq {show} {pop} ifelse} bind def /showfr {3 lanind eq {show} {pop} ifelse} bind def /showit {4 lanind eq {show} {pop} ifelse} bind def /showjp {5 lanind eq {show} {pop} ifelse} bind def /showm {6 lanind eq {show} {pop} ifelse} bind def /popde {0 lanind ne {pop} if} bind def /popen {1 lanind ne {pop} if} bind def /popes {2 lanind ne {pop} if} bind def /popfr {3 lanind ne {pop} if} bind def /popit {4 lanind ne {pop} if} bind def /popjp {5 lanind ne {pop} if} bind def /popm {6 lanind ne {pop} if} bind def /popxde {/n exch def 0 lanind ne {n {pop} repeat} if} bind def /popxen {/n exch def 1 lanind ne {n {pop} repeat} if} bind def /popxes {/n exch def 2 lanind ne {n {pop} repeat} if} bind def /popxfr {/n exch def 3 lanind ne {n {pop} repeat} if} bind def /popxit {/n exch def 4 lanind ne {n {pop} repeat} if} bind def /popxjp {/n exch def 5 lanind ne {n {pop} repeat} if} bind def /popxm {/n exch def 6 lanind ne {n {pop} repeat} if} bind def /lanindg where {pop /lanind1 lanindg def /lanind2 lanindg def} {/lanind1 1 def /lanind2 1 def} ifelse /lanind lanind1 def %lanind1 1 lanind2 {/lanind exch def %output showpage %gsave %LANINDL3 END 8 /Times-Roman FS 72 83 moveto ( 2x2, E7510-3, ) show (CTVw-Farben n*=0.00 in CTVwsa-System mit L*=0-100) popde %07510-3 1 (CTVw colors n*=0.00 in CTVwsa system with L*=0-100) popen %17510-3 1 (CTVw colors n*=0.00 in CTVwsa system with L*=0-100) popes %27510-3 1 (CTVw colors n*=0.00 in CTVwsa system with L*=0-100) popfr %37510-3 1 (CTVw colors n*=0.00 in CTVwsa system with L*=0-100) popit %47510-3 1 (CTVw colors n*=0.00 in CTVwsa system with L*=0-100) popjp %57510-3 1 show ( (WGcode=95-159)) show 72 90 translate 0.01 MM dup scale 15 setlinewidth 0 0 moveto 11200 0 rlineto 0 8400 rlineto -11200 0 rlineto closepath stroke 0 1 7 {/i exch def %i=0,7 %TV-NORMALISATION TO 100, SEE TABLE 9, DIS ISO/IEC 19839-1:2000-04 %ACCORDING TO ITU-R BT.709-2 /C*LABd* [ 91.11 -48.08 -14.13 ] def % cyan in LAB* /M*LABd* [ 60.32 98.24 -60.83 ] def % magenta in LAB* /Y*LABd* [ 97.14 -21.56 94.48 ] def % yellow in LAB* /O*LABd* [ 53.24 80.09 67.20 ] def % orange in LAB* /L*LABd* [ 87.74 -86.18 83.19 ] def % leafgreen in LAB* /V*LABd* [ 32.30 79.20 -107.9 ] def % violet in LAB* /N*LABd* [ 0.01 0.01 0.01 ] def % black (noir=n) in LAB* (equal Ywhite/255) /W*LABd* [100.00 0.01 0.01 ] def % white /Nd*LAB* [ 0.01 0.01 0.01 ] def % device dapted black (noir=n) in LAB* -> 18.01, 0, 0 for sysada=1 /Wd*LAB* [100.00 0.01 0.01 ] def % device adapted white -> 95.41, 0, 0 for sysada=1 /CIEF 1 def /Nd*L* Nd*LAB* 0 get def /Nd*A* Nd*LAB* 1 get def /Nd*B* Nd*LAB* 2 get def /Wd*L* Wd*LAB* 0 get def /Wd*A* Wd*LAB* 1 get def /Wd*B* Wd*LAB* 2 get def /sfac 1.00 def i 0 eq {/L* C*LABd* 0 get sfac mul def /A* C*LABd* 1 get sfac mul def /B* C*LABd* 2 get sfac mul def} if i 1 eq {/L* M*LABd* 0 get sfac mul def /A* M*LABd* 1 get sfac mul def /B* M*LABd* 2 get sfac mul def} if i 2 eq {/L* Y*LABd* 0 get sfac mul def /A* Y*LABd* 1 get sfac mul def /B* Y*LABd* 2 get sfac mul def} if i 3 eq {/L* O*LABd* 0 get sfac mul def /A* O*LABd* 1 get sfac mul def /B* O*LABd* 2 get sfac mul def} if i 4 eq {/L* L*LABd* 0 get sfac mul def /A* L*LABd* 1 get sfac mul def /B* L*LABd* 2 get sfac mul def} if i 5 eq {/L* V*LABd* 0 get sfac mul def /A* V*LABd* 1 get sfac mul def /B* V*LABd* 2 get sfac mul def} if i 6 eq {/L* N*LABd* 0 get sfac mul def /A* N*LABd* 1 get sfac mul def /B* N*LABd* 2 get sfac mul def} if i 7 eq {/L* W*LABd* 0 get sfac mul def /A* W*LABd* 1 get sfac mul def /B* W*LABd* 2 get sfac mul def} if %for later output /L*CIE L* def /A*CIE A* def /B*CIE B* def /l*CIE L* N*L* sub W*L* N*L* sub div def %system relative lightness /a*s W*A* N*A* sub l*CIE mul def /b*s W*B* N*B* sub l*CIE mul def /a*CIE A* N*A* sub a*s sub 100 div 0.0001 add def %0.0001 for atan /b*CIE B* N*B* sub b*s sub 100 div 0.0001 add def %0.0001 for atan /L*da L* def /l*CIEda L*da Nd*L* sub Wd*L* Nd*L* sub div def %device adapted relative lightness /a*da Wd*A* Nd*A* sub l*CIEda mul def /b*da Wd*B* Nd*B* sub l*CIEda mul def /A*da A* Nd*A* sub a*da sub 0.0001 add def %0.0001 for atan /B*da B* Nd*B* sub b*da sub 0.0001 add def %0.0001 for atan /a*CIEda A*da 100 div 0.0001 add def %0.0001 for atan /b*CIEda B*da 100 div 0.0001 add def %0.0001 for atan %48.44 -3.94 -14.997 %/B* exch def %/A* exch def %/L* exch def %Definition of elementary colors J, R, B, G %CIE x,y,Y for D65 to CIE L* a* b* = LAB* /xanJ 0.4449 def /yanJ 0.4909 def /YJ 77.82 def /xanR 0.5813 def /yanR 0.3236 def /YR 18.11 def /xanB 0.1701 def /yanB 0.1355 def /YB 9.35 def /xanG 0.1890 def /yanG 0.4496 def /YG 20.24 def /xanD65 0.3127 def /yanD65 0.3291 def /YD65 100.00 def /SumJ YJ yanJ div def /XJ xanJ SumJ mul def /ZJ 1 xanJ sub yanJ sub SumJ mul def /SumR YR yanR div def /XR xanR SumR mul def /ZR 1 xanR sub yanR sub SumR mul def /SumB YB yanB div def /XB xanB SumB mul def /ZB 1 xanB sub yanB sub SumB mul def /SumG YG yanG div def /XG xanG SumG mul def /ZG 1 xanG sub yanG sub SumG mul def /SumD65 YD65 yanD65 div def /XD65 xanD65 SumD65 mul def /ZD65 1 xanD65 sub yanD65 sub SumD65 mul def /ASJ xanJ yanJ div 0.3333 exp 0.2191 mul def /BSJ 1 xanJ sub yanJ sub yanJ div 0.3333 exp 0.08376 mul neg def /ASR xanR yanR div 0.3333 exp 0.2191 mul def /BSR 1 xanR sub yanR sub yanR div 0.3333 exp 0.08376 mul neg def /ASB xanB yanB div 0.3333 exp 0.2191 mul def /BSB 1 xanB sub yanB sub yanB div 0.3333 exp 0.08376 mul neg def /ASG xanG yanG div 0.3333 exp 0.2191 mul def /BSG 1 xanG sub yanG sub yanG div 0.3333 exp 0.08376 mul neg def /ASD65 xanD65 yanD65 div 0.3333 exp 0.2191 mul def /BSD65 1 xanD65 sub yanD65 sub yanD65 div 0.3333 exp 0.08376 mul neg def %/col_ang B* A* atan def /J*L YJ 100 div 0.3333 exp 116 mul 16 sub def /R*L YR 100 div 0.3333 exp 116 mul 16 sub def /B*L YB 100 div 0.3333 exp 116 mul 16 sub def /G*L YG 100 div 0.3333 exp 116 mul 16 sub def /J*A ASJ ASD65 sub 500 mul def /J*B BSJ BSD65 sub 500 mul def /R*A ASR ASD65 sub 500 mul def /R*B BSR BSD65 sub 500 mul def /B*A ASB ASD65 sub 500 mul def /B*B BSB BSD65 sub 500 mul def /G*A ASG ASD65 sub 500 mul def /G*B BSG BSD65 sub 500 mul def /J*Ang J*B J*A atan def /R*Ang R*B R*A atan def /B*Ang B*B B*A atan def /G*Ang G*B G*A atan def % Print the results 4 setlinewidth 160 /Times-Roman FS /ix0 0 def i 4 ge {/ix0 4 def} if /xdef 400 def /ydef 150 def /xi0 100 i ix0 sub 2800 mul add def /xi1 xi0 800 add def /xi1a xi0 1200 add def /xi1b xi0 1600 add def /xi2 xi0 1400 add def /xi2a xi0 2200 add def /xi2g xi0 2000 add def /xi3 xi0 2600 add def /xi3a xi0 2200 add def /xi3a xi0 2200 add def /iy0 0 def i 4 ge {/iy0 4200 def} if /yi0 8200 iy0 sub def /yi1a yi0 ydef 1.5 mul sub def /yi2a yi1a ydef sub def /yi3a yi2a ydef sub def /yi4a yi3a ydef sub def /yi0b yi4a ydef 0.5 mul sub def /yi1b yi4a ydef 1.5 mul sub def /yi2b yi1b ydef sub def /yi3b yi2b ydef sub def /yi4b yi3b ydef sub def /yi4 yi4b ydef 1.5 mul sub def /yi5 yi4 ydef sub def /yi6 yi5 ydef sub def /yi7 yi6 ydef sub def /yi8 yi7 ydef 1.5 mul sub def /yi9 yi8 ydef sub def /yi10 yi9 ydef sub def /yi11 yi10 ydef sub def /yi12 yi11 ydef 1.5 mul sub def /yi13 yi12 ydef sub def /yi14 yi13 ydef sub def /yi15 yi14 ydef sub def /yi16 yi15 ydef 1.5 mul sub def /yi17 yi16 ydef sub def /yi18 yi17 ydef sub def /yi19 yi18 ydef sub def 0 0 0 setrgbcolor xi0 yi0 moveto (Input: Abs. LAB*, rel. lab* *color data ) show xi0 yi1a moveto (L*CIE: ) show xi1 yi1a moveto L* 0.005 add 100 mul truncate 100 div 8 string cvs show xi2 yi1a moveto l*CIE 0.005 add 100 mul truncate 100 div 8 string cvs show xi0 yi2a moveto (A*CIE:) show xi1 yi2a moveto A* 0.005 add 100 mul truncate 100 div 8 string cvs show xi2 yi2a moveto a*CIE 0.005 add 100 mul truncate 100 div 8 string cvs show xi0 yi3a moveto (B*CIE:) show xi1 yi3a moveto B* 0.005 add 100 mul truncate 100 div 8 string cvs show xi2 yi3a moveto b*CIE 0.005 add 100 mul truncate 100 div 8 string cvs show /C* A* dup mul B* dup mul add sqrt def /H* B* A* atan def xi0 yi4a moveto (C*CIE:) show xi1 yi4a moveto C* 0.005 add 100 mul truncate 100 div 8 string cvs show xi2 yi4a moveto (H*CIE:) show xi2a yi4a moveto H* 0.005 add 100 mul truncate 100 div 8 string cvs show %Adaption coordinates (a) xi0 yi1b moveto (L*CIEda: ) show xi1 yi1b moveto L*da 0.005 add 100 mul truncate 100 div 8 string cvs show xi2 yi1b moveto l*CIEda 0.005 add 100 mul truncate 100 div 8 string cvs show xi0 yi2b moveto (A*CIEda:) show xi1 yi2b moveto A*da 0.005 add 100 mul truncate 100 div 8 string cvs show xi2 yi2b moveto a*CIEda 0.005 add 100 mul truncate 100 div 8 string cvs show xi0 yi3b moveto (B*CIEda:) show xi1 yi3b moveto B*da 0.005 add 100 mul truncate 100 div 8 string cvs show xi2 yi3b moveto b*CIEda 0.005 add 100 mul truncate 100 div 8 string cvs show /C*da A*da dup mul B*da dup mul add sqrt def /H*da B*da A*da atan def xi0 yi4b moveto (C*CIEda:) show xi1 yi4b moveto C*da 0.005 add 100 mul truncate 100 div 8 string cvs show xi2 yi4b moveto (H*CIEda:) show xi2a yi4b moveto H*da 0.005 add 100 mul truncate 100 div 8 string cvs show /L* L*da def /A* A*da def /B* B*da def % the angle formed by the input LAB* *color data in the A*B* plane /col_ang B* A* atan def %determine which two colours the LAB* *color data corresponds to by testing the %angles and solve the related four simultaneous equations to find the olv *color data. % angle between magenta and orange col_ang O*Ang le col_ang M*Ang gt or { 1 W*L* W*A* W*B* 1 N*L* N*A* N*B* 1 O*L* O*A* O*B* 1 M*L* M*A* M*B* 1 L* A* B* Coeffproc % *color data returned by Coeffproc /m* exch def /o* exch def /n* exch def /w* exch def %magenta is a mixture of orange and violet, therefore leafgreen(l) = white, %orange(o) = 1-black(n), violet(v) = white + magenta /v* w* m* add def /l* w* def /o* 1 n* sub def } if % angle between orange and yellow col_ang O*Ang gt col_ang Y*Ang le and { 1 W*L* W*A* W*B* 1 N*L* N*A* N*B* 1 O*L* O*A* O*B* 1 Y*L* Y*A* Y*B* 1 L* A* B* Coeffproc /y* exch def /o* exch def /n* exch def /w* exch def %yellow is a mixture of orange and leafgreen, therefore violet(v) = white, %orange(o) = 1-black(n), leafgreen(l) = white + yellow /v* w* def /l* w* y* add def /o* 1 n* sub def } if % angle between yellow and leafgreen col_ang Y*Ang gt col_ang L*Ang le and { 1 W*L* W*A* W*B* 1 N*L* N*A* N*B* 1 L*L* L*A* L*B* 1 Y*L* Y*A* Y*B* 1 L* A* B* Coeffproc /y* exch def /l* exch def /n* exch def /w* exch def %yellow is a mixture of orange and leafgreen, therefore violet(v) = white , %leafgreen(l) = 1-black(n), orange(v) = white + yellow /v* w* def /l* 1 n* sub def /o* w* y* add def } if % angle between leaf green and cyan col_ang L*Ang gt col_ang C*Ang le and { 1 W*L* W*A* W*B* 1 N*L* N*A* N*B* 1 L*L* L*A* L*B* 1 C*L* C*A* C*B* 1 L* A* B* Coeffproc /c* exch def /l* exch def /n* exch def /w* exch def %cyan is a mixture of leafgreen and violet, therefore orange(o) = white, %leafgreen(l) = 1-black(n), violet(v) = white + cyan /v* w* c* add def /l* 1 n* sub def /o* w* def } if % angle between cyan and violet col_ang C*Ang gt col_ang V*Ang le and { 1 W*L* W*A* W*B* 1 N*L* N*A* N*B* 1 V*L* V*A* V*B* 1 C*L* C*A* C*B* 1 L* A* B* Coeffproc /c* exch def /v* exch def /n* exch def /w* exch def %cyan is a mixture of leafgreen and violet, therefore orange(o) = white, %violet(o) = 1-black(n), leafgreen(l) = white + cyan /v* 1 n* sub def /l* w* c* add def /o* w* def } if % angle between violet and magenta col_ang V*Ang gt col_ang M*Ang le and { 1 W*L* W*A* W*B* 1 N*L* N*A* N*B* 1 V*L* V*A* V*B* 1 M*L* M*A* M*B* 1 L* A* B* Coeffproc /m* exch def /v* exch def /n* exch def /w* exch def %magenta is a mixture of orange and violet, therefore leafgreen(l) = white, %violet(o) = 1-black(n), orange(o) = white + magenta0 /v* 1 n* sub def /l* w* def /o* w* m* add def } if % limit each number to 2 decimal places /o*2 o* 0.005 add 100 mul truncate 100 div def /l*2 l* 0.005 add 100 mul truncate 100 div def /v*2 v* 0.005 add 100 mul truncate 100 div def xi0 yi4 moveto (olv*, olv*0, olv*95 *color data (8bit):) show xi0 yi5 moveto (o*nCTV:) show xi1 yi5 moveto o*2 8 string cvs show xi1a yi5 moveto o*2 255 mul cvi 8 string cvs show xi1b yi5 moveto o*2 64 mul cvi 95 add 8 string cvs show xi0 yi6 moveto (l*nCTV:) show xi1 yi6 moveto l*2 8 string cvs show xi1a yi6 moveto l*2 255 mul cvi 8 string cvs show xi1b yi6 moveto l*2 64 mul cvi 95 add 8 string cvs show xi0 yi7 moveto (v*nCTV:) show xi1 yi7 moveto v*2 8 string cvs show xi1a yi7 moveto v*2 255 mul cvi 8 string cvs show xi1b yi7 moveto v*2 64 mul cvi 95 add 8 string cvs show % limit each number to 2 decimal places /c* 1 o* sub def /m* 1 l* sub def /y* 1 v* sub def /c*2 c* 0.005 add 100 mul truncate 100 div def /m*2 m* 0.005 add 100 mul truncate 100 div def /y*2 y* 0.005 add 100 mul truncate 100 div def xi0 yi8 moveto (cmy*, cmy*0, cmy*95 *color data (8bit):) show xi0 yi9 moveto (c*wCTV:) show xi1 yi9 moveto c*2 8 string cvs show xi1a yi9 moveto c*2 255 mul cvi 8 string cvs show xi1b yi9 moveto c*2 64 mul cvi 95 add 8 string cvs show xi0 yi10 moveto (m*wCTV:) show xi1 yi10 moveto m*2 8 string cvs show xi1a yi10 moveto m*2 255 mul cvi 8 string cvs show xi1b yi10 moveto m*2 64 mul cvi 95 add 8 string cvs show xi0 yi11 moveto (y*wCTV:) show xi1 yi11 moveto y*2 8 string cvs show xi1a yi11 moveto y*2 255 mul cvi 8 string cvs show xi1b yi11 moveto y*2 64 mul cvi 95 add 8 string cvs show % limit each number to 2 decimal places /n*TLS n* def /r*TLS 1 n* sub w* sub def /w*TLS w* def /n*TLS2 n*TLS 0.005 add 100 mul truncate 100 div def /r*TLS2 r*TLS 0.005 add 100 mul truncate 100 div def /w*TLS2 w*TLS 0.005 add 100 mul truncate 100 div def xi2 yi16 moveto (R*TLS: ) show xi3a yi16 moveto r*TLS2 100 mul cvi 8 string cvs show /h1* (-) def /h2* (-) def /H 0 def /H1* (-) def /H2* (-) def /H 0 def /IEND 0 def col_ang R*Ang gt col_ang J*Ang le and {/H* col_ang R*Ang sub J*Ang R*Ang sub div def /h1* (r) def /h2* (j) def /H1* (R) def /H2* (J) def /HM* R*Ang def /HP* J*Ang def /IEND 1 def} if col_ang J*Ang gt col_ang G*Ang le and {/H* col_ang J*Ang sub G*Ang J*Ang sub div def /h1* (j) def /h2* (g) def /H1* (J) def /H2* (G) def /HM* J*Ang def /HP* G*Ang def /IEND 1 def} if col_ang G*Ang gt col_ang B*Ang le and {/H* col_ang G*Ang sub B*Ang G*Ang sub div def /h1* (g) def /h2* (b) def /H1* (G) def /H2* (B) def /HM* G*Ang def /HP* B*Ang def /IEND 1 def} if col_ang R*Ang le IEND 0 eq and {/Pcol_ang col_ang 360 add def} {/Pcol_ang col_ang def} ifelse Pcol_ang B*Ang gt Pcol_ang R*Ang 360 add le and {/H* Pcol_ang B*Ang sub R*Ang 360 add B*Ang sub div def /h1* (b) def /h2* (r) def /H1* (B) def /H2* (R) def /HM* B*Ang def /HP* R*Ang 360 add def} if xi2 yi17 moveto (T*TLS: ) show xi3a yi17 moveto /t*TLS2 1 n*TLS r*TLS 0.5 mul add sub 0.005 add 100 mul truncate 100 div def t*TLS2 100 mul cvi 8 string cvs show xi2 yi18 moveto (U*TLS: ) show xi3a yi18 moveto H1* show H* 100 mul cvi 8 string cvs show H2* show /X* {L*da 16 add 116 div A*da 500 div add } bind def /Y* {L*da 16 add 116 div } bind def /Z* {L*da 16 add 116 div B*da 200 div sub} bind def /DecodeXYZ* { dup 6 29 div ge { dup dup mul mul } { 4 29 div sub 108 841 div mul } ifelse } bind def /XCIE {X* DecodeXYZ* 0.9505 mul} bind def /YCIE {Y* DecodeXYZ* } bind def /ZCIE {Z* DecodeXYZ* 1.0890 mul} bind def /XCIE1 {X* DecodeXYZ* 0.9505 mul CIEF mul} bind def /YCIE1 {Y* DecodeXYZ* CIEF mul} bind def /ZCIE1 {Z* DecodeXYZ* 1.0890 mul CIEF mul} bind def /XCIE*XYZn [ 53.80 78.73 106.96 ] def % cyan in XYZ /XCIE*sRGB [ 53.80 78.73 106.96 ] def % cyan in XYZ xi0 yi12 moveto (TLS *color data (Telev. Luminous Syst.)) show xi0 yi13 moveto (XCIE1: ) show xi1 yi13 moveto XCIE1 10000 mul truncate 100 div 8 string cvs show xi0 yi14 moveto (YCIE1: ) show xi1 yi14 moveto YCIE1 10000 mul truncate 100 div 8 string cvs show xi0 yi15 moveto (ZCIE1: ) show xi1 yi15 moveto ZCIE1 10000 mul truncate 100 div 8 string cvs show %Transformation X Y Z to RsRGB, GsRGB, BsRGB /RsRGB XCIE1 3.2406 mul YCIE1 -1.5372 mul add ZCIE1 -0.4986 mul add def /GsRGB XCIE1 -0.9686 mul YCIE1 1.8758 mul add ZCIE1 0.0415 mul add def /BsRGB XCIE1 0.0557 mul YCIE1 -0.2040 mul add ZCIE1 1.0570 mul add def xi2 yi13 moveto (RsRGB: ) show xi3a yi13 moveto RsRGB 100 mul truncate 100 div 8 string cvs show xi2 yi14 moveto (GsRGB: ) show xi3a yi14 moveto GsRGB 100 mul truncate 100 div 8 string cvs show xi2 yi15 moveto (BsRGB: ) show xi3a yi15 moveto BsRGB 100 mul truncate 100 div 8 string cvs show /Slope 1.0 2.4 div def RsRGB 0.00313008 le {/R'sRGB RsRGB 12.92 mul def} {/R'sRGB RsRGB Slope exp 1.055 mul 0.055 sub def} ifelse GsRGB 0.00313008 le {/G'sRGB GsRGB 12.92 mul def} {/G'sRGB GsRGB Slope exp 1.055 mul 0.055 sub def} ifelse BsRGB 0.00313008 le {/B'sRGB BsRGB 12.92 mul def} {/B'sRGB BsRGB Slope exp 1.055 mul 0.055 sub def} ifelse xi0 yi16 moveto (R'sRGB: ) show xi1 yi16 moveto R'sRGB 100 mul truncate 100 div 8 string cvs show xi0 yi17 moveto (G'sRGB: ) show xi1 yi17 moveto G'sRGB 100 mul truncate 100 div 8 string cvs show xi0 yi18 moveto (B'sRGB: ) show xi1 yi18 moveto B'sRGB 100 mul truncate 100 div 8 string cvs show 0 0 0 setrgbcolor 50 setlinewidth xi2g yi0 yi1a add 0.5 mul moveto xi2g yi3a lineto xi3 yi3a lineto xi3 yi0 yi1a add 0.5 mul lineto closepath stroke 0 0 0 setrgbcolor 50 setlinewidth xi2g yi0b yi1b add 0.5 mul moveto xi2g yi3b lineto xi3 yi3b lineto xi3 yi0b yi1b add 0.5 mul lineto closepath stroke xi2g yi4 yi5 add 0.5 mul moveto xi2g yi7 lineto xi3 yi7 lineto xi3 yi4 yi5 add 0.5 mul lineto closepath stroke xi2g yi8 yi9 add 0.5 mul moveto xi2g yi11 lineto xi3 yi11 lineto xi3 yi8 yi9 add 0.5 mul lineto closepath stroke PSL12 2 ge {[/CIEBasedABC [ %Farbraum und Grenzen fuer D65 /RangeABC[0 100 -128 127 -128 127] /DecodeABC[{16 add 116 div} bind {500 div} bind {200 div} bind] /MatrixABC[1 1 1 1 0 0 0 0 -1] /DecodeLMN [{ dup 6 29 div ge { dup dup mul mul } { 4 29 div sub 108 841 div mul } ifelse 0.9505 mul} bind { dup 6 29 div ge { dup dup mul mul } { 4 29 div sub 108 841 div mul } ifelse } bind { dup 6 29 div ge { dup dup mul mul } { 4 29 div sub 108 841 div mul } ifelse 1.0890 mul} bind] /WhitePoint[0.9505 1 1.0890] dictende ] setcolorspace } if %Ende Standard-Definition PSL2-CIEBasedA PSL12 1 eq %Definition alle PSL1-Geraete { {/setrgbcolor where %Abfrage auf PSL1-Farb-Geraet {pop setrgbcolor} %PSL1-Farb-Geraet {pop 0.4 exp setgray pop} ifelse } %PSL1-SW-Geraet /setcolor exch def} if %LAB* setcolor /xi3g xi2g xi3 add 0.5 mul def L*CIE A*CIE B*CIE setcolor xi2g yi0 yi1a add 0.5 mul moveto xi2g yi3a lineto xi3g yi3a lineto xi3g yi0 yi1a add 0.5 mul lineto closepath fill %lab* setcolor l*CIE 100 mul a*CIE 100 mul b*CIE 100 mul setcolor xi3g yi0 yi1a add 0.5 mul moveto xi3g yi3a lineto xi3 yi3a lineto xi3 yi0 yi1a add 0.5 mul lineto closepath fill %LAB* setcolor adapted L*da A*da B*da setcolor xi2g yi0b yi1b add 0.5 mul moveto xi2g yi3b lineto xi3g yi3b lineto xi3g yi0b yi1b add 0.5 mul lineto closepath fill %lab* setcolor adapted l*CIEda 100 mul a*CIEda 100 mul b*CIEda 100 mul setcolor xi3g yi0b yi1b add 0.5 mul moveto xi3g yi3b lineto xi3 yi3b lineto xi3 yi0b yi1b add 0.5 mul lineto closepath fill % square of colour in olv* co-ordinates o* l* v* setrgbcolor % but this is rgb xi2g yi4 yi5 add 0.5 mul moveto xi2g yi7 lineto xi3 yi7 lineto xi3 yi4 yi5 add 0.5 mul lineto closepath fill % square of colour in cmy* co-ordinates c* m* y* 0 setcmykcolor % but this is cmyk xi2g yi8 yi9 add 0.5 mul moveto xi2g yi11 lineto xi3 yi11 lineto xi3 yi8 yi9 add 0.5 mul lineto closepath fill } for %i=0,7 showpage grestore %} for %xcolor=xcolor1,1,xcolor2 %output showpage %} for %output showpage %%Trailer %%EndDocument EndEPSF grestore gsave BeginEPSF 86 MM 109 MM translate 10 /Times-ISOL1 FS 53 MM 1 MM moveto ( ) show 1 1 scale -77 -91 translate %%BeginDocument: Bild 14 %Zeile 350 %%EndDocument EndEPSF grestore gsave BeginEPSF 28 MM 065 MM translate 10 /Times-ISOL1 FS 53 MM 1 MM moveto ( ) show 1 1 scale -77 -91 translate %%BeginDocument: Bild 15 %Zeile 360 %%EndDocument EndEPSF grestore gsave BeginEPSF 86 MM 065 MM translate 10 /Times-ISOL1 FS 53 MM 1 MM moveto ( ) show 1 1 scale -77 -91 translate %%BeginDocument: Bild 16 %Zeile 370 %%EndDocument EndEPSF grestore gsave BeginEPSF 28 MM 021 MM translate 10 /Times-ISOL1 FS 53 MM 1 MM moveto ( ) show 1 1 scale -77 -91 translate %%BeginDocument: Bild 17 %Zeile 380 %!PS-Adobe-3.0 EPSF-3.0 M7510-7N.EPS, N=2_2 20000816 %%BoundingBox: 50 80 395 332 %START PDFDE011.EPS /pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse /languagelevel where {pop languagelevel} {1} ifelse 2 lt { userdict (<<) cvn ([) cvn load put userdict (>>) cvn (]) cvn load put} if [ /Title (PostScript pictures: M7510-7N.EPS) /Author (compare K. Richter "Computergrafik ...": ISBN 3-8007-1775-1) /Subject (goto: http://o2.ps.bam.de or http://www.ps.bam.de) /Keywords (image reproduction, colour devices) /Creator (klaus.richter@bam.de) /CreationDate (D:2000081612000) /ModDate (D:2000081612000) /DOCINFO pdfmark [ /View [ /FitB ] /DOCVIEW pdfmark %END PDFDE011 %%Creator: K. Richter, BAM und TU Berlin, 20000816 %%+Copyright (c) 1996 VDE-Verlag Berlin Offenbach % !AUSTAUSCH Times-Roman -> Times-Roman-ISOLatin1=Times-I /Times-Roman findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /Times-ISOL1 exch definefont pop /Times-Italic findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /TimesI-ISOL1 exch definefont pop /Times-Bold findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /TimesB-ISOL1 exch definefont pop /Times-BoldItalic findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /TimesBI-ISOL1 exch definefont pop /FS {findfont exch scalefont setfont} bind def /MM {72 25.4 div mul} def %Umrechnung Inch -> mm /A4quer {598 0 translate 90 rotate} def /languagelevel where {pop languagelevel} {1} ifelse /PSL12 exch def /dictende {counttomark 2 idiv dup dict begin {def} repeat pop currentdict end} bind def % function to convert from LAB* co-ordinates to olv* co-ordinates % takes in three variables LAB* and returns the *color data for olv*. % definitions of TV-colours (Yw=88.60) in the LAB* system, % compare ISO/IEC 15775:1999-12 and DIS ISO/IEC 19839-1 to 4 % If these require changing only need to change them here %/C*LAB* [ 86.88 -46.18 -13.57 ] def % cyan in LAB* %/M*LAB* [ 57.50 94.35 -58.42 ] def % magenta in LAB* %/Y*LAB* [ 92.66 -20.71 90.75 ] def % yellow in LAB* %/O*LAB* [ 50.50 76.92 64.55 ] def % orange in LAB* %/L*LAB* [ 83.63 -82.77 79.90 ] def % leafgreen in LAB* %/V*LAB* [ 30.39 76.06 -103.6 ] def % violet in LAB* %/N*LAB* [ 0.01 0.01 0.01 ] def % black (noir=n) in LAB* %/W*LAB* [100.00 0.01 0.01 ] def % white %TV-NORMALISATION TO 100, SEE TABLE 9, DIS ISO/IEC 19839-1:2000-04 %ACCORDING TO ITU-R BT.709-2 /C*LAB* [ 91.11 -48.08 -14.13 ] def % cyan in LAB* /M*LAB* [ 60.32 98.24 -60.83 ] def % magenta in LAB* /Y*LAB* [ 97.14 -21.56 94.48 ] def % yellow in LAB* /O*LAB* [ 53.24 80.09 67.20 ] def % orange in LAB* /L*LAB* [ 87.74 -86.18 83.19 ] def % leafgreen in LAB* /V*LAB* [ 32.30 79.20 -107.9 ] def % violet in LAB* /N*LAB* [ 0.01 0.01 0.01 ] def % black (noir=n) in LAB* /W*LAB* [100.00 0.01 0.01 ] def % white /Ns*LAB* [ 0.01 0.01 0.01 ] def % system dapted black (noir=n) in LAB* -> 0.01, 0, 0 for sysada=1 /Ws*LAB* [100.00 0.01 0.01 ] def % system adapted white -> 100, 0, 0 for sysada=1 /Ns*L* Ns*LAB* 0 get def /Ns*A* Ns*LAB* 1 get def /Ns*B* Ns*LAB* 2 get def /Ws*L* Ws*LAB* 0 get def /Ws*A* Ws*LAB* 1 get def /Ws*B* Ws*LAB* 2 get def % Determine the angle in the A* B* plane of each of the colours defined above /C*Ang C*LAB* 2 get C*LAB* 1 get atan def /M*Ang M*LAB* 2 get M*LAB* 1 get atan def /Y*Ang Y*LAB* 2 get Y*LAB* 1 get atan def /O*Ang O*LAB* 2 get O*LAB* 1 get atan def /L*Ang L*LAB* 2 get L*LAB* 1 get atan def /V*Ang V*LAB* 2 get V*LAB* 1 get atan def /N*Ang N*LAB* 2 get N*LAB* 1 get atan def /W*Ang W*LAB* 2 get W*LAB* 1 get atan def % The detproc below finds the determinant of the Matrix: % | A1 B1 C1 D1 | % | A2 B2 C2 D2 | % | A3 B3 C3 D3 | % | A4 B4 C4 D4 | % /detproc { /term1 B2 C3 mul D4 mul C2 D3 mul B4 mul add D2 B3 mul C4 mul add B4 C3 mul D2 mul sub C4 D3 mul B2 mul sub D4 B3 mul C2 mul sub def /term2 A2 C3 mul D4 mul C2 D3 mul A4 mul add D2 A3 mul C4 mul add A4 C3 mul D2 mul sub C4 D3 mul A2 mul sub D4 A3 mul C2 mul sub def /term3 A2 B3 mul D4 mul B2 D3 mul A4 mul add D2 A3 mul B4 mul add A4 B3 mul D2 mul sub B4 D3 mul A2 mul sub D4 A3 mul B2 mul sub def /term4 A2 B3 mul C4 mul B2 C3 mul A4 mul add C2 A3 mul B4 mul add A4 B3 mul C2 mul sub B4 C3 mul A2 mul sub C4 A3 mul B2 mul sub def /det A1 term1 mul B1 term2 mul sub C1 term3 mul add D1 term4 mul sub def } bind def % The Coeffproc procedure solves for WhiteCoeff, Black Coeff, Col1Coeff and % Col2Coeff in the matrix equation below. It takes as inputs A1->A4 B1->B4 % C1->C4 D1->D4 and s,y,z,t. It solves for these using Cramer's rule. % Note: Cramer's rule is valid only for non-singular matrices, ie |A| not % equal to 0. % % | A1 B1 C1 D1 | |WhiteCoeff| |x| % | A2 B2 C2 D2 | |BlackCoeff| = |y| % | A3 B3 C3 D3 | |Col1Coeff | |z| % | A4 B4 C4 D4 | |Col2Coeff | |t| % A B = C % /Coeffproc { /t exch def /z exch def /y exch def /x exch def /D4 exch def /D3 exch def /D2 exch def /D1 exch def /C4 exch def /C3 exch def /C2 exch def /C1 exch def /B4 exch def /B3 exch def /B2 exch def /B1 exch def /A4 exch def /A3 exch def /A2 exch def /A1 exch def detproc /den det def % determine white coefficient /temp1 A1 def /temp2 A2 def /temp3 A3 def /temp4 A4 def /A1 x def /A2 y def /A3 z def /A4 t def detproc /numW det def /A1 temp1 def /A2 temp2 def /A3 temp3 def /A4 temp4 def % determine black coefficient /temp1 B1 def /temp2 B2 def /temp3 B3 def /temp4 B4 def /B1 x def /B2 y def /B3 z def /B4 t def detproc /numB det def /B1 temp1 def /B2 temp2 def /B3 temp3 def /B4 temp4 def % determine colour1 coefficient /temp1 C1 def /temp2 C2 def /temp3 C3 def /temp4 C4 def /C1 x def /C2 y def /C3 z def /C4 t def detproc /numCol1 det def /C1 temp1 def /C2 temp2 def /C3 temp3 def /C4 temp4 def % determine colour2 coefficient /temp1 D1 def /temp2 D2 def /temp3 D3 def /temp4 D4 def /D1 x def /D2 y def /D3 z def /D4 t def detproc /numCol2 det def /D1 temp1 def /D2 temp2 def /D3 temp3 def /D4 temp4 def /WhiteCoeff numW den div def /BlackCoeff numB den div def /Col1Coeff numCol1 den div def /Col2Coeff numCol2 den div def WhiteCoeff BlackCoeff Col1Coeff Col2Coeff % returns these *color data on the stack } bind def %%EndProlog gsave /sysada 1 def %sysada=0,1 system adaptation of 8 x 3 LAB*coordinates 0 1 7 {/i exch def %i=0,7 i 0 eq {/L* C*LAB* 0 get def /A* C*LAB* 1 get def /B* C*LAB* 2 get def} if i 1 eq {/L* M*LAB* 0 get def /A* M*LAB* 1 get def /B* M*LAB* 2 get def} if i 2 eq {/L* Y*LAB* 0 get def /A* Y*LAB* 1 get def /B* Y*LAB* 2 get def} if i 3 eq {/L* O*LAB* 0 get def /A* O*LAB* 1 get def /B* O*LAB* 2 get def} if i 4 eq {/L* L*LAB* 0 get def /A* L*LAB* 1 get def /B* L*LAB* 2 get def} if i 5 eq {/L* V*LAB* 0 get def /A* V*LAB* 1 get def /B* V*LAB* 2 get def} if i 6 eq {/L* N*LAB* 0 get def /A* N*LAB* 1 get def /B* N*LAB* 2 get def} if i 7 eq {/L* W*LAB* 0 get def /A* W*LAB* 1 get def /B* W*LAB* 2 get def} if /L*sa L* def /l*CIEsa L*sa Ns*L* sub Ws*L* Ns*L* sub div def %system adapted relative lightness /a*sa Ws*A* Ns*A* sub l*CIEsa mul def /b*sa Ws*B* Ns*B* sub l*CIEsa mul def /A*sa A* Ns*A* sub a*sa sub 0.0001 add def %0.0001 for atan /B*sa B* Ns*B* sub b*sa sub 0.0001 add def %0.0001 for atan sysada 0 eq {%sysada=0 i 0 eq {C*LAB* 0 L* put C*LAB* 1 A* put C*LAB* 2 B* put} if i 1 eq {M*LAB* 0 L* put M*LAB* 1 A* put M*LAB* 2 B* put} if i 2 eq {Y*LAB* 0 L* put Y*LAB* 1 A* put Y*LAB* 2 B* put} if i 3 eq {O*LAB* 0 L* put O*LAB* 1 A* put O*LAB* 2 B* put} if i 4 eq {L*LAB* 0 L* put L*LAB* 1 A* put L*LAB* 2 B* put} if i 5 eq {V*LAB* 0 L* put V*LAB* 1 A* put V*LAB* 2 B* put} if i 6 eq {N*LAB* 0 L* put N*LAB* 1 A* put N*LAB* 2 B* put} if i 7 eq {W*LAB* 0 L* put W*LAB* 1 A* put W*LAB* 2 B* put} if } %sysada=0 { %sysada=1 i 0 eq {C*LAB* 0 L*sa put C*LAB* 1 A*sa put C*LAB* 2 B*sa put} if i 1 eq {M*LAB* 0 L*sa put M*LAB* 1 A*sa put M*LAB* 2 B*sa put} if i 2 eq {Y*LAB* 0 L*sa put Y*LAB* 1 A*sa put Y*LAB* 2 B*sa put} if i 3 eq {O*LAB* 0 L*sa put O*LAB* 1 A*sa put O*LAB* 2 B*sa put} if i 4 eq {L*LAB* 0 L*sa put L*LAB* 1 A*sa put L*LAB* 2 B*sa put} if i 5 eq {V*LAB* 0 L*sa put V*LAB* 1 A*sa put V*LAB* 2 B*sa put} if i 6 eq {N*LAB* 0 L*sa put N*LAB* 1 A*sa put N*LAB* 2 B*sa put} if i 7 eq {W*LAB* 0 L*sa put W*LAB* 1 A*sa put W*LAB* 2 B*sa put} if } ifelse %sysada=0,1 } for %i=0,7 /C*L* C*LAB* 0 get def /C*A* C*LAB* 1 get def /C*B* C*LAB* 2 get def /M*L* M*LAB* 0 get def /M*A* M*LAB* 1 get def /M*B* M*LAB* 2 get def /Y*L* Y*LAB* 0 get def /Y*A* Y*LAB* 1 get def /Y*B* Y*LAB* 2 get def /O*L* O*LAB* 0 get def /O*A* O*LAB* 1 get def /O*B* O*LAB* 2 get def /L*L* L*LAB* 0 get def /L*A* L*LAB* 1 get def /L*B* L*LAB* 2 get def /V*L* V*LAB* 0 get def /V*A* V*LAB* 1 get def /V*B* V*LAB* 2 get def /N*L* N*LAB* 0 get def /N*A* N*LAB* 1 get def /N*B* N*LAB* 2 get def /W*L* W*LAB* 0 get def /W*A* W*LAB* 1 get def /W*B* W*LAB* 2 get def %LANINDL3 START 20000505 /lanind 0 def /lantex [(G) (E) (S) (F) (I) (J) (M)] def /showde {0 lanind eq {show} {pop} ifelse} bind def /showen {1 lanind eq {show} {pop} ifelse} bind def /showes {2 lanind eq {show} {pop} ifelse} bind def /showfr {3 lanind eq {show} {pop} ifelse} bind def /showit {4 lanind eq {show} {pop} ifelse} bind def /showjp {5 lanind eq {show} {pop} ifelse} bind def /showm {6 lanind eq {show} {pop} ifelse} bind def /popde {0 lanind ne {pop} if} bind def /popen {1 lanind ne {pop} if} bind def /popes {2 lanind ne {pop} if} bind def /popfr {3 lanind ne {pop} if} bind def /popit {4 lanind ne {pop} if} bind def /popjp {5 lanind ne {pop} if} bind def /popm {6 lanind ne {pop} if} bind def /popxde {/n exch def 0 lanind ne {n {pop} repeat} if} bind def /popxen {/n exch def 1 lanind ne {n {pop} repeat} if} bind def /popxes {/n exch def 2 lanind ne {n {pop} repeat} if} bind def /popxfr {/n exch def 3 lanind ne {n {pop} repeat} if} bind def /popxit {/n exch def 4 lanind ne {n {pop} repeat} if} bind def /popxjp {/n exch def 5 lanind ne {n {pop} repeat} if} bind def /popxm {/n exch def 6 lanind ne {n {pop} repeat} if} bind def /lanindg where {pop /lanind1 lanindg def /lanind2 lanindg def} {/lanind1 1 def /lanind2 1 def} ifelse /lanind lanind1 def %lanind1 1 lanind2 {/lanind exch def %output showpage %gsave %LANINDL3 END 8 /Times-Roman FS 72 83 moveto ( 2x2, E7510-7, ) show (CTVw-Farben n*=0.25 in CTVwsa-System mit L*=0-100) popde %07510-7 1 (CTVw colors n*=0.25 in CTVwsa system with L*=0-100) popen %17510-7 1 (CTVw colors n*=0.25 in CTVwsa system with L*=0-100) popes %27510-7 1 (CTVw colors n*=0.25 in CTVwsa system with L*=0-100) popfr %37510-7 1 (CTVw colors n*=0.25 in CTVwsa system with L*=0-100) popit %47510-7 1 (CTVw colors n*=0.25 in CTVwsa system with L*=0-100) popjp %57510-7 1 show ( (WGcode=95-159)) show 72 90 translate 0.01 MM dup scale 15 setlinewidth 0 0 moveto 11200 0 rlineto 0 8400 rlineto -11200 0 rlineto closepath stroke 0 1 7 {/i exch def %i=0,7 %TV-NORMALISATION TO 100, SEE TABLE 9, DIS ISO/IEC 19839-1:2000-04 %ACCORDING TO ITU-R BT.709-2 /C*LABd* [ 91.11 -48.08 -14.13 ] def % cyan in LAB* /M*LABd* [ 60.32 98.24 -60.83 ] def % magenta in LAB* /Y*LABd* [ 97.14 -21.56 94.48 ] def % yellow in LAB* /O*LABd* [ 53.24 80.09 67.20 ] def % orange in LAB* /L*LABd* [ 87.74 -86.18 83.19 ] def % leafgreen in LAB* /V*LABd* [ 32.30 79.20 -107.9 ] def % violet in LAB* /N*LABd* [ 0.01 0.01 0.01 ] def % black (noir=n) in LAB* (equal Ywhite/255) /W*LABd* [100.00 0.01 0.01 ] def % white /Nd*LAB* [ 0.01 0.01 0.01 ] def % device dapted black (noir=n) in LAB* -> 18.01, 0, 0 for sysada=1 /Wd*LAB* [100.00 0.01 0.01 ] def % device adapted white -> 95.41, 0, 0 for sysada=1 /CIEF 1 def /Nd*L* Nd*LAB* 0 get def /Nd*A* Nd*LAB* 1 get def /Nd*B* Nd*LAB* 2 get def /Wd*L* Wd*LAB* 0 get def /Wd*A* Wd*LAB* 1 get def /Wd*B* Wd*LAB* 2 get def /nfac 0.25 def /sfac 1 nfac sub def i 0 eq {/L* C*LABd* 0 get sfac mul def /A* C*LABd* 1 get sfac mul def /B* C*LABd* 2 get sfac mul def} if i 1 eq {/L* M*LABd* 0 get sfac mul def /A* M*LABd* 1 get sfac mul def /B* M*LABd* 2 get sfac mul def} if i 2 eq {/L* Y*LABd* 0 get sfac mul def /A* Y*LABd* 1 get sfac mul def /B* Y*LABd* 2 get sfac mul def} if i 3 eq {/L* O*LABd* 0 get sfac mul def /A* O*LABd* 1 get sfac mul def /B* O*LABd* 2 get sfac mul def} if i 4 eq {/L* L*LABd* 0 get sfac mul def /A* L*LABd* 1 get sfac mul def /B* L*LABd* 2 get sfac mul def} if i 5 eq {/L* V*LABd* 0 get sfac mul def /A* V*LABd* 1 get sfac mul def /B* V*LABd* 2 get sfac mul def} if i 6 eq {/L* N*LABd* 0 get sfac mul def /A* N*LABd* 1 get sfac mul def /B* N*LABd* 2 get sfac mul def} if i 7 eq {/L* W*LABd* 0 get sfac mul def /A* W*LABd* 1 get sfac mul def /B* W*LABd* 2 get sfac mul def} if %for later output /L*CIE L* def /A*CIE A* def /B*CIE B* def /l*CIE L* N*L* sub W*L* N*L* sub div def %system relative lightness /a*s W*A* N*A* sub l*CIE mul def /b*s W*B* N*B* sub l*CIE mul def /a*CIE A* N*A* sub a*s sub 100 div 0.0001 add def %0.0001 for atan /b*CIE B* N*B* sub b*s sub 100 div 0.0001 add def %0.0001 for atan /L*da L* def /l*CIEda L*da Nd*L* sub Wd*L* Nd*L* sub div def %device adapted relative lightness /a*da Wd*A* Nd*A* sub l*CIEda mul def /b*da Wd*B* Nd*B* sub l*CIEda mul def /A*da A* Nd*A* sub a*da sub 0.0001 add def %0.0001 for atan /B*da B* Nd*B* sub b*da sub 0.0001 add def %0.0001 for atan /a*CIEda A*da 100 div 0.0001 add def %0.0001 for atan /b*CIEda B*da 100 div 0.0001 add def %0.0001 for atan %48.44 -3.94 -14.997 %/B* exch def %/A* exch def %/L* exch def %Definition of elementary colors J, R, B, G %CIE x,y,Y for D65 to CIE L* a* b* = LAB* /xanJ 0.4449 def /yanJ 0.4909 def /YJ 77.82 def /xanR 0.5813 def /yanR 0.3236 def /YR 18.11 def /xanB 0.1701 def /yanB 0.1355 def /YB 9.35 def /xanG 0.1890 def /yanG 0.4496 def /YG 20.24 def /xanD65 0.3127 def /yanD65 0.3291 def /YD65 100.00 def /SumJ YJ yanJ div def /XJ xanJ SumJ mul def /ZJ 1 xanJ sub yanJ sub SumJ mul def /SumR YR yanR div def /XR xanR SumR mul def /ZR 1 xanR sub yanR sub SumR mul def /SumB YB yanB div def /XB xanB SumB mul def /ZB 1 xanB sub yanB sub SumB mul def /SumG YG yanG div def /XG xanG SumG mul def /ZG 1 xanG sub yanG sub SumG mul def /SumD65 YD65 yanD65 div def /XD65 xanD65 SumD65 mul def /ZD65 1 xanD65 sub yanD65 sub SumD65 mul def /ASJ xanJ yanJ div 0.3333 exp 0.2191 mul def /BSJ 1 xanJ sub yanJ sub yanJ div 0.3333 exp 0.08376 mul neg def /ASR xanR yanR div 0.3333 exp 0.2191 mul def /BSR 1 xanR sub yanR sub yanR div 0.3333 exp 0.08376 mul neg def /ASB xanB yanB div 0.3333 exp 0.2191 mul def /BSB 1 xanB sub yanB sub yanB div 0.3333 exp 0.08376 mul neg def /ASG xanG yanG div 0.3333 exp 0.2191 mul def /BSG 1 xanG sub yanG sub yanG div 0.3333 exp 0.08376 mul neg def /ASD65 xanD65 yanD65 div 0.3333 exp 0.2191 mul def /BSD65 1 xanD65 sub yanD65 sub yanD65 div 0.3333 exp 0.08376 mul neg def %/col_ang B* A* atan def /J*L YJ 100 div 0.3333 exp 116 mul 16 sub def /R*L YR 100 div 0.3333 exp 116 mul 16 sub def /B*L YB 100 div 0.3333 exp 116 mul 16 sub def /G*L YG 100 div 0.3333 exp 116 mul 16 sub def /J*A ASJ ASD65 sub 500 mul def /J*B BSJ BSD65 sub 500 mul def /R*A ASR ASD65 sub 500 mul def /R*B BSR BSD65 sub 500 mul def /B*A ASB ASD65 sub 500 mul def /B*B BSB BSD65 sub 500 mul def /G*A ASG ASD65 sub 500 mul def /G*B BSG BSD65 sub 500 mul def /J*Ang J*B J*A atan def /R*Ang R*B R*A atan def /B*Ang B*B B*A atan def /G*Ang G*B G*A atan def % Print the results 4 setlinewidth 160 /Times-Roman FS /ix0 0 def i 4 ge {/ix0 4 def} if /xdef 400 def /ydef 150 def /xi0 100 i ix0 sub 2800 mul add def /xi1 xi0 800 add def /xi1a xi0 1200 add def /xi1b xi0 1600 add def /xi2 xi0 1400 add def /xi2a xi0 2200 add def /xi2g xi0 2000 add def /xi3 xi0 2600 add def /xi3a xi0 2200 add def /xi3a xi0 2200 add def /iy0 0 def i 4 ge {/iy0 4200 def} if /yi0 8200 iy0 sub def /yi1a yi0 ydef 1.5 mul sub def /yi2a yi1a ydef sub def /yi3a yi2a ydef sub def /yi4a yi3a ydef sub def /yi0b yi4a ydef 0.5 mul sub def /yi1b yi4a ydef 1.5 mul sub def /yi2b yi1b ydef sub def /yi3b yi2b ydef sub def /yi4b yi3b ydef sub def /yi4 yi4b ydef 1.5 mul sub def /yi5 yi4 ydef sub def /yi6 yi5 ydef sub def /yi7 yi6 ydef sub def /yi8 yi7 ydef 1.5 mul sub def /yi9 yi8 ydef sub def /yi10 yi9 ydef sub def /yi11 yi10 ydef sub def /yi12 yi11 ydef 1.5 mul sub def /yi13 yi12 ydef sub def /yi14 yi13 ydef sub def /yi15 yi14 ydef sub def /yi16 yi15 ydef 1.5 mul sub def /yi17 yi16 ydef sub def /yi18 yi17 ydef sub def /yi19 yi18 ydef sub def 0 0 0 setrgbcolor xi0 yi0 moveto (Input: Abs. LAB*, rel. lab* *color data ) show xi0 yi1a moveto (L*CIE: ) show xi1 yi1a moveto L* 0.005 add 100 mul truncate 100 div 8 string cvs show xi2 yi1a moveto l*CIE 0.005 add 100 mul truncate 100 div 8 string cvs show xi0 yi2a moveto (A*CIE:) show xi1 yi2a moveto A* 0.005 add 100 mul truncate 100 div 8 string cvs show xi2 yi2a moveto a*CIE 0.005 add 100 mul truncate 100 div 8 string cvs show xi0 yi3a moveto (B*CIE:) show xi1 yi3a moveto B* 0.005 add 100 mul truncate 100 div 8 string cvs show xi2 yi3a moveto b*CIE 0.005 add 100 mul truncate 100 div 8 string cvs show /C* A* dup mul B* dup mul add sqrt def /H* B* A* atan def xi0 yi4a moveto (C*CIE:) show xi1 yi4a moveto C* 0.005 add 100 mul truncate 100 div 8 string cvs show xi2 yi4a moveto (H*CIE:) show xi2a yi4a moveto H* 0.005 add 100 mul truncate 100 div 8 string cvs show %Adaption coordinates (a) xi0 yi1b moveto (L*CIEda: ) show xi1 yi1b moveto L*da 0.005 add 100 mul truncate 100 div 8 string cvs show xi2 yi1b moveto l*CIEda 0.005 add 100 mul truncate 100 div 8 string cvs show xi0 yi2b moveto (A*CIEda:) show xi1 yi2b moveto A*da 0.005 add 100 mul truncate 100 div 8 string cvs show xi2 yi2b moveto a*CIEda 0.005 add 100 mul truncate 100 div 8 string cvs show xi0 yi3b moveto (B*CIEda:) show xi1 yi3b moveto B*da 0.005 add 100 mul truncate 100 div 8 string cvs show xi2 yi3b moveto b*CIEda 0.005 add 100 mul truncate 100 div 8 string cvs show /C*da A*da dup mul B*da dup mul add sqrt def /H*da B*da A*da atan def xi0 yi4b moveto (C*CIEda:) show xi1 yi4b moveto C*da 0.005 add 100 mul truncate 100 div 8 string cvs show xi2 yi4b moveto (H*CIEda:) show xi2a yi4b moveto H*da 0.005 add 100 mul truncate 100 div 8 string cvs show /L* L*da def /A* A*da def /B* B*da def % the angle formed by the input LAB* *color data in the A*B* plane /col_ang B* A* atan def %determine which two colours the LAB* *color data corresponds to by testing the %angles and solve the related four simultaneous equations to find the olv *color data. % angle between magenta and orange col_ang O*Ang le col_ang M*Ang gt or { 1 W*L* W*A* W*B* 1 N*L* N*A* N*B* 1 O*L* O*A* O*B* 1 M*L* M*A* M*B* 1 L* A* B* Coeffproc % *color data returned by Coeffproc /m* exch def /o* exch def /n* exch def /w* exch def %magenta is a mixture of orange and violet, therefore leafgreen(l) = white, %orange(o) = 1-black(n), violet(v) = white + magenta /v* w* m* add def /l* w* def /o* 1 n* sub def } if % angle between orange and yellow col_ang O*Ang gt col_ang Y*Ang le and { 1 W*L* W*A* W*B* 1 N*L* N*A* N*B* 1 O*L* O*A* O*B* 1 Y*L* Y*A* Y*B* 1 L* A* B* Coeffproc /y* exch def /o* exch def /n* exch def /w* exch def %yellow is a mixture of orange and leafgreen, therefore violet(v) = white, %orange(o) = 1-black(n), leafgreen(l) = white + yellow /v* w* def /l* w* y* add def /o* 1 n* sub def } if % angle between yellow and leafgreen col_ang Y*Ang gt col_ang L*Ang le and { 1 W*L* W*A* W*B* 1 N*L* N*A* N*B* 1 L*L* L*A* L*B* 1 Y*L* Y*A* Y*B* 1 L* A* B* Coeffproc /y* exch def /l* exch def /n* exch def /w* exch def %yellow is a mixture of orange and leafgreen, therefore violet(v) = white , %leafgreen(l) = 1-black(n), orange(v) = white + yellow /v* w* def /l* 1 n* sub def /o* w* y* add def } if % angle between leaf green and cyan col_ang L*Ang gt col_ang C*Ang le and { 1 W*L* W*A* W*B* 1 N*L* N*A* N*B* 1 L*L* L*A* L*B* 1 C*L* C*A* C*B* 1 L* A* B* Coeffproc /c* exch def /l* exch def /n* exch def /w* exch def %cyan is a mixture of leafgreen and violet, therefore orange(o) = white, %leafgreen(l) = 1-black(n), violet(v) = white + cyan /v* w* c* add def /l* 1 n* sub def /o* w* def } if % angle between cyan and violet col_ang C*Ang gt col_ang V*Ang le and { 1 W*L* W*A* W*B* 1 N*L* N*A* N*B* 1 V*L* V*A* V*B* 1 C*L* C*A* C*B* 1 L* A* B* Coeffproc /c* exch def /v* exch def /n* exch def /w* exch def %cyan is a mixture of leafgreen and violet, therefore orange(o) = white, %violet(o) = 1-black(n), leafgreen(l) = white + cyan /v* 1 n* sub def /l* w* c* add def /o* w* def } if % angle between violet and magenta col_ang V*Ang gt col_ang M*Ang le and { 1 W*L* W*A* W*B* 1 N*L* N*A* N*B* 1 V*L* V*A* V*B* 1 M*L* M*A* M*B* 1 L* A* B* Coeffproc /m* exch def /v* exch def /n* exch def /w* exch def %magenta is a mixture of orange and violet, therefore leafgreen(l) = white, %violet(o) = 1-black(n), orange(o) = white + magenta0 /v* 1 n* sub def /l* w* def /o* w* m* add def } if % limit each number to 2 decimal places /o*2 o* 0.005 add 100 mul truncate 100 div def /l*2 l* 0.005 add 100 mul truncate 100 div def /v*2 v* 0.005 add 100 mul truncate 100 div def xi0 yi4 moveto (olv*, olv*0, olv*95 *color data (8bit):) show xi0 yi5 moveto (o*nCTV:) show xi1 yi5 moveto o*2 8 string cvs show xi1a yi5 moveto o*2 255 mul cvi 8 string cvs show xi1b yi5 moveto o*2 64 mul cvi 95 add 8 string cvs show xi0 yi6 moveto (l*nCTV:) show xi1 yi6 moveto l*2 8 string cvs show xi1a yi6 moveto l*2 255 mul cvi 8 string cvs show xi1b yi6 moveto l*2 64 mul cvi 95 add 8 string cvs show xi0 yi7 moveto (v*nCTV:) show xi1 yi7 moveto v*2 8 string cvs show xi1a yi7 moveto v*2 255 mul cvi 8 string cvs show xi1b yi7 moveto v*2 64 mul cvi 95 add 8 string cvs show % limit each number to 2 decimal places /c* 1 o* sub def /m* 1 l* sub def /y* 1 v* sub def /c*2 c* 0.005 add 100 mul truncate 100 div def /m*2 m* 0.005 add 100 mul truncate 100 div def /y*2 y* 0.005 add 100 mul truncate 100 div def xi0 yi8 moveto (cmy*, cmy*0, cmy*95 *color data (8bit):) show xi0 yi9 moveto (c*wCTV:) show xi1 yi9 moveto c*2 8 string cvs show xi1a yi9 moveto c*2 255 mul cvi 8 string cvs show xi1b yi9 moveto c*2 64 mul cvi 95 add 8 string cvs show xi0 yi10 moveto (m*wCTV:) show xi1 yi10 moveto m*2 8 string cvs show xi1a yi10 moveto m*2 255 mul cvi 8 string cvs show xi1b yi10 moveto m*2 64 mul cvi 95 add 8 string cvs show xi0 yi11 moveto (y*wCTV:) show xi1 yi11 moveto y*2 8 string cvs show xi1a yi11 moveto y*2 255 mul cvi 8 string cvs show xi1b yi11 moveto y*2 64 mul cvi 95 add 8 string cvs show % limit each number to 2 decimal places /n*TLS n* def /r*TLS 1 n* sub w* sub def /w*TLS w* def /n*TLS2 n*TLS 0.005 add 100 mul truncate 100 div def /r*TLS2 r*TLS 0.005 add 100 mul truncate 100 div def /w*TLS2 w*TLS 0.005 add 100 mul truncate 100 div def xi2 yi16 moveto (R*TLS: ) show xi3a yi16 moveto r*TLS2 100 mul cvi 8 string cvs show /h1* (-) def /h2* (-) def /H 0 def /H1* (-) def /H2* (-) def /H 0 def /IEND 0 def col_ang R*Ang gt col_ang J*Ang le and {/H* col_ang R*Ang sub J*Ang R*Ang sub div def /h1* (r) def /h2* (j) def /H1* (R) def /H2* (J) def /HM* R*Ang def /HP* J*Ang def /IEND 1 def} if col_ang J*Ang gt col_ang G*Ang le and {/H* col_ang J*Ang sub G*Ang J*Ang sub div def /h1* (j) def /h2* (g) def /H1* (J) def /H2* (G) def /HM* J*Ang def /HP* G*Ang def /IEND 1 def} if col_ang G*Ang gt col_ang B*Ang le and {/H* col_ang G*Ang sub B*Ang G*Ang sub div def /h1* (g) def /h2* (b) def /H1* (G) def /H2* (B) def /HM* G*Ang def /HP* B*Ang def /IEND 1 def} if col_ang R*Ang le IEND 0 eq and {/Pcol_ang col_ang 360 add def} {/Pcol_ang col_ang def} ifelse Pcol_ang B*Ang gt Pcol_ang R*Ang 360 add le and {/H* Pcol_ang B*Ang sub R*Ang 360 add B*Ang sub div def /h1* (b) def /h2* (r) def /H1* (B) def /H2* (R) def /HM* B*Ang def /HP* R*Ang 360 add def} if xi2 yi17 moveto (T*TLS: ) show xi3a yi17 moveto /t*TLS2 1 n*TLS r*TLS 0.5 mul add sub 0.005 add 100 mul truncate 100 div def t*TLS2 100 mul cvi 8 string cvs show xi2 yi18 moveto (U*TLS: ) show xi3a yi18 moveto H1* show H* 100 mul cvi 8 string cvs show H2* show /X* {L*da 16 add 116 div A*da 500 div add } bind def /Y* {L*da 16 add 116 div } bind def /Z* {L*da 16 add 116 div B*da 200 div sub} bind def /DecodeXYZ* { dup 6 29 div ge { dup dup mul mul } { 4 29 div sub 108 841 div mul } ifelse } bind def /XCIE {X* DecodeXYZ* 0.9505 mul} bind def /YCIE {Y* DecodeXYZ* } bind def /ZCIE {Z* DecodeXYZ* 1.0890 mul} bind def /XCIE1 {X* DecodeXYZ* 0.9505 mul CIEF mul} bind def /YCIE1 {Y* DecodeXYZ* CIEF mul} bind def /ZCIE1 {Z* DecodeXYZ* 1.0890 mul CIEF mul} bind def /XCIE*XYZn [ 53.80 78.73 106.96 ] def % cyan in XYZ /XCIE*sRGB [ 53.80 78.73 106.96 ] def % cyan in XYZ xi0 yi12 moveto (TLS *color data (Telev. Luminous Syst.)) show xi0 yi13 moveto (XCIE1: ) show xi1 yi13 moveto XCIE1 10000 mul truncate 100 div 8 string cvs show xi0 yi14 moveto (YCIE1: ) show xi1 yi14 moveto YCIE1 10000 mul truncate 100 div 8 string cvs show xi0 yi15 moveto (ZCIE1: ) show xi1 yi15 moveto ZCIE1 10000 mul truncate 100 div 8 string cvs show %Transformation X Y Z to RsRGB, GsRGB, BsRGB /RsRGB XCIE1 3.2406 mul YCIE1 -1.5372 mul add ZCIE1 -0.4986 mul add def /GsRGB XCIE1 -0.9686 mul YCIE1 1.8758 mul add ZCIE1 0.0415 mul add def /BsRGB XCIE1 0.0557 mul YCIE1 -0.2040 mul add ZCIE1 1.0570 mul add def xi2 yi13 moveto (RsRGB: ) show xi3a yi13 moveto RsRGB 100 mul truncate 100 div 8 string cvs show xi2 yi14 moveto (GsRGB: ) show xi3a yi14 moveto GsRGB 100 mul truncate 100 div 8 string cvs show xi2 yi15 moveto (BsRGB: ) show xi3a yi15 moveto BsRGB 100 mul truncate 100 div 8 string cvs show /Slope 1.0 2.4 div def RsRGB 0.00313008 le {/R'sRGB RsRGB 12.92 mul def} {/R'sRGB RsRGB Slope exp 1.055 mul 0.055 sub def} ifelse GsRGB 0.00313008 le {/G'sRGB GsRGB 12.92 mul def} {/G'sRGB GsRGB Slope exp 1.055 mul 0.055 sub def} ifelse BsRGB 0.00313008 le {/B'sRGB BsRGB 12.92 mul def} {/B'sRGB BsRGB Slope exp 1.055 mul 0.055 sub def} ifelse xi0 yi16 moveto (R'sRGB: ) show xi1 yi16 moveto R'sRGB 100 mul truncate 100 div 8 string cvs show xi0 yi17 moveto (G'sRGB: ) show xi1 yi17 moveto G'sRGB 100 mul truncate 100 div 8 string cvs show xi0 yi18 moveto (B'sRGB: ) show xi1 yi18 moveto B'sRGB 100 mul truncate 100 div 8 string cvs show 0 0 0 setrgbcolor 50 setlinewidth xi2g yi0 yi1a add 0.5 mul moveto xi2g yi3a lineto xi3 yi3a lineto xi3 yi0 yi1a add 0.5 mul lineto closepath stroke 0 0 0 setrgbcolor 50 setlinewidth xi2g yi0b yi1b add 0.5 mul moveto xi2g yi3b lineto xi3 yi3b lineto xi3 yi0b yi1b add 0.5 mul lineto closepath stroke xi2g yi4 yi5 add 0.5 mul moveto xi2g yi7 lineto xi3 yi7 lineto xi3 yi4 yi5 add 0.5 mul lineto closepath stroke xi2g yi8 yi9 add 0.5 mul moveto xi2g yi11 lineto xi3 yi11 lineto xi3 yi8 yi9 add 0.5 mul lineto closepath stroke PSL12 2 ge {[/CIEBasedABC [ %Farbraum und Grenzen fuer D65 /RangeABC[0 100 -128 127 -128 127] /DecodeABC[{16 add 116 div} bind {500 div} bind {200 div} bind] /MatrixABC[1 1 1 1 0 0 0 0 -1] /DecodeLMN [{ dup 6 29 div ge { dup dup mul mul } { 4 29 div sub 108 841 div mul } ifelse 0.9505 mul} bind { dup 6 29 div ge { dup dup mul mul } { 4 29 div sub 108 841 div mul } ifelse } bind { dup 6 29 div ge { dup dup mul mul } { 4 29 div sub 108 841 div mul } ifelse 1.0890 mul} bind] /WhitePoint[0.9505 1 1.0890] dictende ] setcolorspace } if %Ende Standard-Definition PSL2-CIEBasedA PSL12 1 eq %Definition alle PSL1-Geraete { {/setrgbcolor where %Abfrage auf PSL1-Farb-Geraet {pop setrgbcolor} %PSL1-Farb-Geraet {pop 0.4 exp setgray pop} ifelse } %PSL1-SW-Geraet /setcolor exch def} if %LAB* setcolor /xi3g xi2g xi3 add 0.5 mul def L*CIE A*CIE B*CIE setcolor xi2g yi0 yi1a add 0.5 mul moveto xi2g yi3a lineto xi3g yi3a lineto xi3g yi0 yi1a add 0.5 mul lineto closepath fill %lab* setcolor l*CIE 100 mul a*CIE 100 mul b*CIE 100 mul setcolor xi3g yi0 yi1a add 0.5 mul moveto xi3g yi3a lineto xi3 yi3a lineto xi3 yi0 yi1a add 0.5 mul lineto closepath fill %LAB* setcolor adapted L*da A*da B*da setcolor xi2g yi0b yi1b add 0.5 mul moveto xi2g yi3b lineto xi3g yi3b lineto xi3g yi0b yi1b add 0.5 mul lineto closepath fill %lab* setcolor adapted l*CIEda 100 mul a*CIEda 100 mul b*CIEda 100 mul setcolor xi3g yi0b yi1b add 0.5 mul moveto xi3g yi3b lineto xi3 yi3b lineto xi3 yi0b yi1b add 0.5 mul lineto closepath fill % square of colour in olv* co-ordinates o* l* v* setrgbcolor % but this is rgb xi2g yi4 yi5 add 0.5 mul moveto xi2g yi7 lineto xi3 yi7 lineto xi3 yi4 yi5 add 0.5 mul lineto closepath fill % square of colour in cmy* co-ordinates c* m* y* 0 setcmykcolor % but this is cmyk xi2g yi8 yi9 add 0.5 mul moveto xi2g yi11 lineto xi3 yi11 lineto xi3 yi8 yi9 add 0.5 mul lineto closepath fill } for %i=0,7 showpage grestore %} for %xcolor=xcolor1,1,xcolor2 %output showpage %} for %output showpage %%Trailer %%EndDocument EndEPSF grestore gsave BeginEPSF 86 MM 021 MM translate 12 /Times-ISOL1 FS -9 MM -7 MM moveto ( ) show 10 /Times-ISOL1 FS 53 MM 1 MM moveto ( ) show 1 1 scale -77 -91 translate %%BeginDocument: Bild 18 %Zeile 390 %%EndDocument EndEPSF grestore gsave BeginEPSF 161 MM 197 MM translate 10 /Times-ISOL1 FS 1 1 scale -77 -91 translate %%BeginDocument: Bild 12 %Zeile 400 %%EndDocument EndEPSF grestore gsave BeginEPSF 161 MM 153 MM translate 10 /Times-ISOL1 FS 53 MM 1 MM moveto ( ) show 1 1 scale -77 -91 translate %%BeginDocument: Bild 21 %Zeile 410 %%EndDocument EndEPSF grestore gsave BeginEPSF 219 MM 153 MM translate 10 /Times-ISOL1 FS 53 MM 1 MM moveto ( ) show 1 1 scale -77 -91 translate %%BeginDocument: Bild 22 %Zeile 420 %%EndDocument EndEPSF grestore gsave BeginEPSF 161 MM 109 MM translate 10 /Times-ISOL1 FS 53 MM 1 MM moveto ( ) show 1 1 scale -77 -91 translate %%BeginDocument: Bild 23 %Zeile 430 %!PS-Adobe-3.0 EPSF-3.0 M7510-7N.EPS, N=2_2 20000816 %%BoundingBox: 50 80 395 332 %START PDFDE011.EPS /pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse /languagelevel where {pop languagelevel} {1} ifelse 2 lt { userdict (<<) cvn ([) cvn load put userdict (>>) cvn (]) cvn load put} if [ /Title (PostScript pictures: M7510-7N.EPS) /Author (compare K. Richter "Computergrafik ...": ISBN 3-8007-1775-1) /Subject (goto: http://o2.ps.bam.de or http://www.ps.bam.de) /Keywords (image reproduction, colour devices) /Creator (klaus.richter@bam.de) /CreationDate (D:2000081612000) /ModDate (D:2000081612000) /DOCINFO pdfmark [ /View [ /FitB ] /DOCVIEW pdfmark %END PDFDE011 %%Creator: K. Richter, BAM und TU Berlin, 20000816 %%+Copyright (c) 1996 VDE-Verlag Berlin Offenbach % !AUSTAUSCH Times-Roman -> Times-Roman-ISOLatin1=Times-I /Times-Roman findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /Times-ISOL1 exch definefont pop /Times-Italic findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /TimesI-ISOL1 exch definefont pop /Times-Bold findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /TimesB-ISOL1 exch definefont pop /Times-BoldItalic findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /TimesBI-ISOL1 exch definefont pop /FS {findfont exch scalefont setfont} bind def /MM {72 25.4 div mul} def %Umrechnung Inch -> mm /A4quer {598 0 translate 90 rotate} def /languagelevel where {pop languagelevel} {1} ifelse /PSL12 exch def /dictende {counttomark 2 idiv dup dict begin {def} repeat pop currentdict end} bind def % function to convert from LAB* co-ordinates to olv* co-ordinates % takes in three variables LAB* and returns the *color data for olv*. % definitions of TV-colours (Yw=88.60) in the LAB* system, % compare ISO/IEC 15775:1999-12 and DIS ISO/IEC 19839-1 to 4 % If these require changing only need to change them here %/C*LAB* [ 86.88 -46.18 -13.57 ] def % cyan in LAB* %/M*LAB* [ 57.50 94.35 -58.42 ] def % magenta in LAB* %/Y*LAB* [ 92.66 -20.71 90.75 ] def % yellow in LAB* %/O*LAB* [ 50.50 76.92 64.55 ] def % orange in LAB* %/L*LAB* [ 83.63 -82.77 79.90 ] def % leafgreen in LAB* %/V*LAB* [ 30.39 76.06 -103.6 ] def % violet in LAB* %/N*LAB* [ 0.01 0.01 0.01 ] def % black (noir=n) in LAB* %/W*LAB* [100.00 0.01 0.01 ] def % white %TV-NORMALISATION TO 100, SEE TABLE 9, DIS ISO/IEC 19839-1:2000-04 %ACCORDING TO ITU-R BT.709-2 /C*LAB* [ 91.11 -48.08 -14.13 ] def % cyan in LAB* /M*LAB* [ 60.32 98.24 -60.83 ] def % magenta in LAB* /Y*LAB* [ 97.14 -21.56 94.48 ] def % yellow in LAB* /O*LAB* [ 53.24 80.09 67.20 ] def % orange in LAB* /L*LAB* [ 87.74 -86.18 83.19 ] def % leafgreen in LAB* /V*LAB* [ 32.30 79.20 -107.9 ] def % violet in LAB* /N*LAB* [ 0.01 0.01 0.01 ] def % black (noir=n) in LAB* /W*LAB* [100.00 0.01 0.01 ] def % white /Ns*LAB* [ 0.01 0.01 0.01 ] def % system dapted black (noir=n) in LAB* -> 0.01, 0, 0 for sysada=1 /Ws*LAB* [100.00 0.01 0.01 ] def % system adapted white -> 100, 0, 0 for sysada=1 /Ns*L* Ns*LAB* 0 get def /Ns*A* Ns*LAB* 1 get def /Ns*B* Ns*LAB* 2 get def /Ws*L* Ws*LAB* 0 get def /Ws*A* Ws*LAB* 1 get def /Ws*B* Ws*LAB* 2 get def % Determine the angle in the A* B* plane of each of the colours defined above /C*Ang C*LAB* 2 get C*LAB* 1 get atan def /M*Ang M*LAB* 2 get M*LAB* 1 get atan def /Y*Ang Y*LAB* 2 get Y*LAB* 1 get atan def /O*Ang O*LAB* 2 get O*LAB* 1 get atan def /L*Ang L*LAB* 2 get L*LAB* 1 get atan def /V*Ang V*LAB* 2 get V*LAB* 1 get atan def /N*Ang N*LAB* 2 get N*LAB* 1 get atan def /W*Ang W*LAB* 2 get W*LAB* 1 get atan def % The detproc below finds the determinant of the Matrix: % | A1 B1 C1 D1 | % | A2 B2 C2 D2 | % | A3 B3 C3 D3 | % | A4 B4 C4 D4 | % /detproc { /term1 B2 C3 mul D4 mul C2 D3 mul B4 mul add D2 B3 mul C4 mul add B4 C3 mul D2 mul sub C4 D3 mul B2 mul sub D4 B3 mul C2 mul sub def /term2 A2 C3 mul D4 mul C2 D3 mul A4 mul add D2 A3 mul C4 mul add A4 C3 mul D2 mul sub C4 D3 mul A2 mul sub D4 A3 mul C2 mul sub def /term3 A2 B3 mul D4 mul B2 D3 mul A4 mul add D2 A3 mul B4 mul add A4 B3 mul D2 mul sub B4 D3 mul A2 mul sub D4 A3 mul B2 mul sub def /term4 A2 B3 mul C4 mul B2 C3 mul A4 mul add C2 A3 mul B4 mul add A4 B3 mul C2 mul sub B4 C3 mul A2 mul sub C4 A3 mul B2 mul sub def /det A1 term1 mul B1 term2 mul sub C1 term3 mul add D1 term4 mul sub def } bind def % The Coeffproc procedure solves for WhiteCoeff, Black Coeff, Col1Coeff and % Col2Coeff in the matrix equation below. It takes as inputs A1->A4 B1->B4 % C1->C4 D1->D4 and s,y,z,t. It solves for these using Cramer's rule. % Note: Cramer's rule is valid only for non-singular matrices, ie |A| not % equal to 0. % % | A1 B1 C1 D1 | |WhiteCoeff| |x| % | A2 B2 C2 D2 | |BlackCoeff| = |y| % | A3 B3 C3 D3 | |Col1Coeff | |z| % | A4 B4 C4 D4 | |Col2Coeff | |t| % A B = C % /Coeffproc { /t exch def /z exch def /y exch def /x exch def /D4 exch def /D3 exch def /D2 exch def /D1 exch def /C4 exch def /C3 exch def /C2 exch def /C1 exch def /B4 exch def /B3 exch def /B2 exch def /B1 exch def /A4 exch def /A3 exch def /A2 exch def /A1 exch def detproc /den det def % determine white coefficient /temp1 A1 def /temp2 A2 def /temp3 A3 def /temp4 A4 def /A1 x def /A2 y def /A3 z def /A4 t def detproc /numW det def /A1 temp1 def /A2 temp2 def /A3 temp3 def /A4 temp4 def % determine black coefficient /temp1 B1 def /temp2 B2 def /temp3 B3 def /temp4 B4 def /B1 x def /B2 y def /B3 z def /B4 t def detproc /numB det def /B1 temp1 def /B2 temp2 def /B3 temp3 def /B4 temp4 def % determine colour1 coefficient /temp1 C1 def /temp2 C2 def /temp3 C3 def /temp4 C4 def /C1 x def /C2 y def /C3 z def /C4 t def detproc /numCol1 det def /C1 temp1 def /C2 temp2 def /C3 temp3 def /C4 temp4 def % determine colour2 coefficient /temp1 D1 def /temp2 D2 def /temp3 D3 def /temp4 D4 def /D1 x def /D2 y def /D3 z def /D4 t def detproc /numCol2 det def /D1 temp1 def /D2 temp2 def /D3 temp3 def /D4 temp4 def /WhiteCoeff numW den div def /BlackCoeff numB den div def /Col1Coeff numCol1 den div def /Col2Coeff numCol2 den div def WhiteCoeff BlackCoeff Col1Coeff Col2Coeff % returns these *color data on the stack } bind def %%EndProlog gsave /sysada 1 def %sysada=0,1 system adaptation of 8 x 3 LAB*coordinates 0 1 7 {/i exch def %i=0,7 i 0 eq {/L* C*LAB* 0 get def /A* C*LAB* 1 get def /B* C*LAB* 2 get def} if i 1 eq {/L* M*LAB* 0 get def /A* M*LAB* 1 get def /B* M*LAB* 2 get def} if i 2 eq {/L* Y*LAB* 0 get def /A* Y*LAB* 1 get def /B* Y*LAB* 2 get def} if i 3 eq {/L* O*LAB* 0 get def /A* O*LAB* 1 get def /B* O*LAB* 2 get def} if i 4 eq {/L* L*LAB* 0 get def /A* L*LAB* 1 get def /B* L*LAB* 2 get def} if i 5 eq {/L* V*LAB* 0 get def /A* V*LAB* 1 get def /B* V*LAB* 2 get def} if i 6 eq {/L* N*LAB* 0 get def /A* N*LAB* 1 get def /B* N*LAB* 2 get def} if i 7 eq {/L* W*LAB* 0 get def /A* W*LAB* 1 get def /B* W*LAB* 2 get def} if /L*sa L* def /l*CIEsa L*sa Ns*L* sub Ws*L* Ns*L* sub div def %system adapted relative lightness /a*sa Ws*A* Ns*A* sub l*CIEsa mul def /b*sa Ws*B* Ns*B* sub l*CIEsa mul def /A*sa A* Ns*A* sub a*sa sub 0.0001 add def %0.0001 for atan /B*sa B* Ns*B* sub b*sa sub 0.0001 add def %0.0001 for atan sysada 0 eq {%sysada=0 i 0 eq {C*LAB* 0 L* put C*LAB* 1 A* put C*LAB* 2 B* put} if i 1 eq {M*LAB* 0 L* put M*LAB* 1 A* put M*LAB* 2 B* put} if i 2 eq {Y*LAB* 0 L* put Y*LAB* 1 A* put Y*LAB* 2 B* put} if i 3 eq {O*LAB* 0 L* put O*LAB* 1 A* put O*LAB* 2 B* put} if i 4 eq {L*LAB* 0 L* put L*LAB* 1 A* put L*LAB* 2 B* put} if i 5 eq {V*LAB* 0 L* put V*LAB* 1 A* put V*LAB* 2 B* put} if i 6 eq {N*LAB* 0 L* put N*LAB* 1 A* put N*LAB* 2 B* put} if i 7 eq {W*LAB* 0 L* put W*LAB* 1 A* put W*LAB* 2 B* put} if } %sysada=0 { %sysada=1 i 0 eq {C*LAB* 0 L*sa put C*LAB* 1 A*sa put C*LAB* 2 B*sa put} if i 1 eq {M*LAB* 0 L*sa put M*LAB* 1 A*sa put M*LAB* 2 B*sa put} if i 2 eq {Y*LAB* 0 L*sa put Y*LAB* 1 A*sa put Y*LAB* 2 B*sa put} if i 3 eq {O*LAB* 0 L*sa put O*LAB* 1 A*sa put O*LAB* 2 B*sa put} if i 4 eq {L*LAB* 0 L*sa put L*LAB* 1 A*sa put L*LAB* 2 B*sa put} if i 5 eq {V*LAB* 0 L*sa put V*LAB* 1 A*sa put V*LAB* 2 B*sa put} if i 6 eq {N*LAB* 0 L*sa put N*LAB* 1 A*sa put N*LAB* 2 B*sa put} if i 7 eq {W*LAB* 0 L*sa put W*LAB* 1 A*sa put W*LAB* 2 B*sa put} if } ifelse %sysada=0,1 } for %i=0,7 /C*L* C*LAB* 0 get def /C*A* C*LAB* 1 get def /C*B* C*LAB* 2 get def /M*L* M*LAB* 0 get def /M*A* M*LAB* 1 get def /M*B* M*LAB* 2 get def /Y*L* Y*LAB* 0 get def /Y*A* Y*LAB* 1 get def /Y*B* Y*LAB* 2 get def /O*L* O*LAB* 0 get def /O*A* O*LAB* 1 get def /O*B* O*LAB* 2 get def /L*L* L*LAB* 0 get def /L*A* L*LAB* 1 get def /L*B* L*LAB* 2 get def /V*L* V*LAB* 0 get def /V*A* V*LAB* 1 get def /V*B* V*LAB* 2 get def /N*L* N*LAB* 0 get def /N*A* N*LAB* 1 get def /N*B* N*LAB* 2 get def /W*L* W*LAB* 0 get def /W*A* W*LAB* 1 get def /W*B* W*LAB* 2 get def %LANINDL3 START 20000505 /lanind 0 def /lantex [(G) (E) (S) (F) (I) (J) (M)] def /showde {0 lanind eq {show} {pop} ifelse} bind def /showen {1 lanind eq {show} {pop} ifelse} bind def /showes {2 lanind eq {show} {pop} ifelse} bind def /showfr {3 lanind eq {show} {pop} ifelse} bind def /showit {4 lanind eq {show} {pop} ifelse} bind def /showjp {5 lanind eq {show} {pop} ifelse} bind def /showm {6 lanind eq {show} {pop} ifelse} bind def /popde {0 lanind ne {pop} if} bind def /popen {1 lanind ne {pop} if} bind def /popes {2 lanind ne {pop} if} bind def /popfr {3 lanind ne {pop} if} bind def /popit {4 lanind ne {pop} if} bind def /popjp {5 lanind ne {pop} if} bind def /popm {6 lanind ne {pop} if} bind def /popxde {/n exch def 0 lanind ne {n {pop} repeat} if} bind def /popxen {/n exch def 1 lanind ne {n {pop} repeat} if} bind def /popxes {/n exch def 2 lanind ne {n {pop} repeat} if} bind def /popxfr {/n exch def 3 lanind ne {n {pop} repeat} if} bind def /popxit {/n exch def 4 lanind ne {n {pop} repeat} if} bind def /popxjp {/n exch def 5 lanind ne {n {pop} repeat} if} bind def /popxm {/n exch def 6 lanind ne {n {pop} repeat} if} bind def /lanindg where {pop /lanind1 lanindg def /lanind2 lanindg def} {/lanind1 1 def /lanind2 1 def} ifelse /lanind lanind1 def %lanind1 1 lanind2 {/lanind exch def %output showpage %gsave %LANINDL3 END 8 /Times-Roman FS 72 83 moveto ( 2x2, E7511-3, ) show (CTVw-Farben n*=0.50 in CTVwsa-System mit L*=0-100) popde %07511-3 1 (CTVw colors n*=0.50 in CTVwsa system with L*=0-100) popen %17511-3 1 (CTVw colors n*=0.50 in CTVwsa system with L*=0-100) popes %27511-3 1 (CTVw colors n*=0.50 in CTVwsa system with L*=0-100) popfr %37511-3 1 (CTVw colors n*=0.50 in CTVwsa system with L*=0-100) popit %47511-3 1 (CTVw colors n*=0.50 in CTVwsa system with L*=0-100) popjp %57511-3 1 show ( (WGcode=95-159)) show 72 90 translate 0.01 MM dup scale 15 setlinewidth 0 0 moveto 11200 0 rlineto 0 8400 rlineto -11200 0 rlineto closepath stroke 0 1 7 {/i exch def %i=0,7 %TV-NORMALISATION TO 100, SEE TABLE 9, DIS ISO/IEC 19839-1:2000-04 %ACCORDING TO ITU-R BT.709-2 /C*LABd* [ 91.11 -48.08 -14.13 ] def % cyan in LAB* /M*LABd* [ 60.32 98.24 -60.83 ] def % magenta in LAB* /Y*LABd* [ 97.14 -21.56 94.48 ] def % yellow in LAB* /O*LABd* [ 53.24 80.09 67.20 ] def % orange in LAB* /L*LABd* [ 87.74 -86.18 83.19 ] def % leafgreen in LAB* /V*LABd* [ 32.30 79.20 -107.9 ] def % violet in LAB* /N*LABd* [ 0.01 0.01 0.01 ] def % black (noir=n) in LAB* (equal Ywhite/255) /W*LABd* [100.00 0.01 0.01 ] def % white /Nd*LAB* [ 0.01 0.01 0.01 ] def % device dapted black (noir=n) in LAB* -> 18.01, 0, 0 for sysada=1 /Wd*LAB* [100.00 0.01 0.01 ] def % device adapted white -> 95.41, 0, 0 for sysada=1 /CIEF 1 def /Nd*L* Nd*LAB* 0 get def /Nd*A* Nd*LAB* 1 get def /Nd*B* Nd*LAB* 2 get def /Wd*L* Wd*LAB* 0 get def /Wd*A* Wd*LAB* 1 get def /Wd*B* Wd*LAB* 2 get def /nfac 0.50 def /sfac 1 nfac sub def i 0 eq {/L* C*LABd* 0 get sfac mul def /A* C*LABd* 1 get sfac mul def /B* C*LABd* 2 get sfac mul def} if i 1 eq {/L* M*LABd* 0 get sfac mul def /A* M*LABd* 1 get sfac mul def /B* M*LABd* 2 get sfac mul def} if i 2 eq {/L* Y*LABd* 0 get sfac mul def /A* Y*LABd* 1 get sfac mul def /B* Y*LABd* 2 get sfac mul def} if i 3 eq {/L* O*LABd* 0 get sfac mul def /A* O*LABd* 1 get sfac mul def /B* O*LABd* 2 get sfac mul def} if i 4 eq {/L* L*LABd* 0 get sfac mul def /A* L*LABd* 1 get sfac mul def /B* L*LABd* 2 get sfac mul def} if i 5 eq {/L* V*LABd* 0 get sfac mul def /A* V*LABd* 1 get sfac mul def /B* V*LABd* 2 get sfac mul def} if i 6 eq {/L* N*LABd* 0 get sfac mul def /A* N*LABd* 1 get sfac mul def /B* N*LABd* 2 get sfac mul def} if i 7 eq {/L* W*LABd* 0 get sfac mul def /A* W*LABd* 1 get sfac mul def /B* W*LABd* 2 get sfac mul def} if %for later output /L*CIE L* def /A*CIE A* def /B*CIE B* def /l*CIE L* N*L* sub W*L* N*L* sub div def %system relative lightness /a*s W*A* N*A* sub l*CIE mul def /b*s W*B* N*B* sub l*CIE mul def /a*CIE A* N*A* sub a*s sub 100 div 0.0001 add def %0.0001 for atan /b*CIE B* N*B* sub b*s sub 100 div 0.0001 add def %0.0001 for atan /L*da L* def /l*CIEda L*da Nd*L* sub Wd*L* Nd*L* sub div def %device adapted relative lightness /a*da Wd*A* Nd*A* sub l*CIEda mul def /b*da Wd*B* Nd*B* sub l*CIEda mul def /A*da A* Nd*A* sub a*da sub 0.0001 add def %0.0001 for atan /B*da B* Nd*B* sub b*da sub 0.0001 add def %0.0001 for atan /a*CIEda A*da 100 div 0.0001 add def %0.0001 for atan /b*CIEda B*da 100 div 0.0001 add def %0.0001 for atan %48.44 -3.94 -14.997 %/B* exch def %/A* exch def %/L* exch def %Definition of elementary colors J, R, B, G %CIE x,y,Y for D65 to CIE L* a* b* = LAB* /xanJ 0.4449 def /yanJ 0.4909 def /YJ 77.82 def /xanR 0.5813 def /yanR 0.3236 def /YR 18.11 def /xanB 0.1701 def /yanB 0.1355 def /YB 9.35 def /xanG 0.1890 def /yanG 0.4496 def /YG 20.24 def /xanD65 0.3127 def /yanD65 0.3291 def /YD65 100.00 def /SumJ YJ yanJ div def /XJ xanJ SumJ mul def /ZJ 1 xanJ sub yanJ sub SumJ mul def /SumR YR yanR div def /XR xanR SumR mul def /ZR 1 xanR sub yanR sub SumR mul def /SumB YB yanB div def /XB xanB SumB mul def /ZB 1 xanB sub yanB sub SumB mul def /SumG YG yanG div def /XG xanG SumG mul def /ZG 1 xanG sub yanG sub SumG mul def /SumD65 YD65 yanD65 div def /XD65 xanD65 SumD65 mul def /ZD65 1 xanD65 sub yanD65 sub SumD65 mul def /ASJ xanJ yanJ div 0.3333 exp 0.2191 mul def /BSJ 1 xanJ sub yanJ sub yanJ div 0.3333 exp 0.08376 mul neg def /ASR xanR yanR div 0.3333 exp 0.2191 mul def /BSR 1 xanR sub yanR sub yanR div 0.3333 exp 0.08376 mul neg def /ASB xanB yanB div 0.3333 exp 0.2191 mul def /BSB 1 xanB sub yanB sub yanB div 0.3333 exp 0.08376 mul neg def /ASG xanG yanG div 0.3333 exp 0.2191 mul def /BSG 1 xanG sub yanG sub yanG div 0.3333 exp 0.08376 mul neg def /ASD65 xanD65 yanD65 div 0.3333 exp 0.2191 mul def /BSD65 1 xanD65 sub yanD65 sub yanD65 div 0.3333 exp 0.08376 mul neg def %/col_ang B* A* atan def /J*L YJ 100 div 0.3333 exp 116 mul 16 sub def /R*L YR 100 div 0.3333 exp 116 mul 16 sub def /B*L YB 100 div 0.3333 exp 116 mul 16 sub def /G*L YG 100 div 0.3333 exp 116 mul 16 sub def /J*A ASJ ASD65 sub 500 mul def /J*B BSJ BSD65 sub 500 mul def /R*A ASR ASD65 sub 500 mul def /R*B BSR BSD65 sub 500 mul def /B*A ASB ASD65 sub 500 mul def /B*B BSB BSD65 sub 500 mul def /G*A ASG ASD65 sub 500 mul def /G*B BSG BSD65 sub 500 mul def /J*Ang J*B J*A atan def /R*Ang R*B R*A atan def /B*Ang B*B B*A atan def /G*Ang G*B G*A atan def % Print the results 4 setlinewidth 160 /Times-Roman FS /ix0 0 def i 4 ge {/ix0 4 def} if /xdef 400 def /ydef 150 def /xi0 100 i ix0 sub 2800 mul add def /xi1 xi0 800 add def /xi1a xi0 1200 add def /xi1b xi0 1600 add def /xi2 xi0 1400 add def /xi2a xi0 2200 add def /xi2g xi0 2000 add def /xi3 xi0 2600 add def /xi3a xi0 2200 add def /xi3a xi0 2200 add def /iy0 0 def i 4 ge {/iy0 4200 def} if /yi0 8200 iy0 sub def /yi1a yi0 ydef 1.5 mul sub def /yi2a yi1a ydef sub def /yi3a yi2a ydef sub def /yi4a yi3a ydef sub def /yi0b yi4a ydef 0.5 mul sub def /yi1b yi4a ydef 1.5 mul sub def /yi2b yi1b ydef sub def /yi3b yi2b ydef sub def /yi4b yi3b ydef sub def /yi4 yi4b ydef 1.5 mul sub def /yi5 yi4 ydef sub def /yi6 yi5 ydef sub def /yi7 yi6 ydef sub def /yi8 yi7 ydef 1.5 mul sub def /yi9 yi8 ydef sub def /yi10 yi9 ydef sub def /yi11 yi10 ydef sub def /yi12 yi11 ydef 1.5 mul sub def /yi13 yi12 ydef sub def /yi14 yi13 ydef sub def /yi15 yi14 ydef sub def /yi16 yi15 ydef 1.5 mul sub def /yi17 yi16 ydef sub def /yi18 yi17 ydef sub def /yi19 yi18 ydef sub def 0 0 0 setrgbcolor xi0 yi0 moveto (Input: Abs. LAB*, rel. lab* *color data ) show xi0 yi1a moveto (L*CIE: ) show xi1 yi1a moveto L* 0.005 add 100 mul truncate 100 div 8 string cvs show xi2 yi1a moveto l*CIE 0.005 add 100 mul truncate 100 div 8 string cvs show xi0 yi2a moveto (A*CIE:) show xi1 yi2a moveto A* 0.005 add 100 mul truncate 100 div 8 string cvs show xi2 yi2a moveto a*CIE 0.005 add 100 mul truncate 100 div 8 string cvs show xi0 yi3a moveto (B*CIE:) show xi1 yi3a moveto B* 0.005 add 100 mul truncate 100 div 8 string cvs show xi2 yi3a moveto b*CIE 0.005 add 100 mul truncate 100 div 8 string cvs show /C* A* dup mul B* dup mul add sqrt def /H* B* A* atan def xi0 yi4a moveto (C*CIE:) show xi1 yi4a moveto C* 0.005 add 100 mul truncate 100 div 8 string cvs show xi2 yi4a moveto (H*CIE:) show xi2a yi4a moveto H* 0.005 add 100 mul truncate 100 div 8 string cvs show %Adaption coordinates (a) xi0 yi1b moveto (L*CIEda: ) show xi1 yi1b moveto L*da 0.005 add 100 mul truncate 100 div 8 string cvs show xi2 yi1b moveto l*CIEda 0.005 add 100 mul truncate 100 div 8 string cvs show xi0 yi2b moveto (A*CIEda:) show xi1 yi2b moveto A*da 0.005 add 100 mul truncate 100 div 8 string cvs show xi2 yi2b moveto a*CIEda 0.005 add 100 mul truncate 100 div 8 string cvs show xi0 yi3b moveto (B*CIEda:) show xi1 yi3b moveto B*da 0.005 add 100 mul truncate 100 div 8 string cvs show xi2 yi3b moveto b*CIEda 0.005 add 100 mul truncate 100 div 8 string cvs show /C*da A*da dup mul B*da dup mul add sqrt def /H*da B*da A*da atan def xi0 yi4b moveto (C*CIEda:) show xi1 yi4b moveto C*da 0.005 add 100 mul truncate 100 div 8 string cvs show xi2 yi4b moveto (H*CIEda:) show xi2a yi4b moveto H*da 0.005 add 100 mul truncate 100 div 8 string cvs show /L* L*da def /A* A*da def /B* B*da def % the angle formed by the input LAB* *color data in the A*B* plane /col_ang B* A* atan def %determine which two colours the LAB* *color data corresponds to by testing the %angles and solve the related four simultaneous equations to find the olv *color data. % angle between magenta and orange col_ang O*Ang le col_ang M*Ang gt or { 1 W*L* W*A* W*B* 1 N*L* N*A* N*B* 1 O*L* O*A* O*B* 1 M*L* M*A* M*B* 1 L* A* B* Coeffproc % *color data returned by Coeffproc /m* exch def /o* exch def /n* exch def /w* exch def %magenta is a mixture of orange and violet, therefore leafgreen(l) = white, %orange(o) = 1-black(n), violet(v) = white + magenta /v* w* m* add def /l* w* def /o* 1 n* sub def } if % angle between orange and yellow col_ang O*Ang gt col_ang Y*Ang le and { 1 W*L* W*A* W*B* 1 N*L* N*A* N*B* 1 O*L* O*A* O*B* 1 Y*L* Y*A* Y*B* 1 L* A* B* Coeffproc /y* exch def /o* exch def /n* exch def /w* exch def %yellow is a mixture of orange and leafgreen, therefore violet(v) = white, %orange(o) = 1-black(n), leafgreen(l) = white + yellow /v* w* def /l* w* y* add def /o* 1 n* sub def } if % angle between yellow and leafgreen col_ang Y*Ang gt col_ang L*Ang le and { 1 W*L* W*A* W*B* 1 N*L* N*A* N*B* 1 L*L* L*A* L*B* 1 Y*L* Y*A* Y*B* 1 L* A* B* Coeffproc /y* exch def /l* exch def /n* exch def /w* exch def %yellow is a mixture of orange and leafgreen, therefore violet(v) = white , %leafgreen(l) = 1-black(n), orange(v) = white + yellow /v* w* def /l* 1 n* sub def /o* w* y* add def } if % angle between leaf green and cyan col_ang L*Ang gt col_ang C*Ang le and { 1 W*L* W*A* W*B* 1 N*L* N*A* N*B* 1 L*L* L*A* L*B* 1 C*L* C*A* C*B* 1 L* A* B* Coeffproc /c* exch def /l* exch def /n* exch def /w* exch def %cyan is a mixture of leafgreen and violet, therefore orange(o) = white, %leafgreen(l) = 1-black(n), violet(v) = white + cyan /v* w* c* add def /l* 1 n* sub def /o* w* def } if % angle between cyan and violet col_ang C*Ang gt col_ang V*Ang le and { 1 W*L* W*A* W*B* 1 N*L* N*A* N*B* 1 V*L* V*A* V*B* 1 C*L* C*A* C*B* 1 L* A* B* Coeffproc /c* exch def /v* exch def /n* exch def /w* exch def %cyan is a mixture of leafgreen and violet, therefore orange(o) = white, %violet(o) = 1-black(n), leafgreen(l) = white + cyan /v* 1 n* sub def /l* w* c* add def /o* w* def } if % angle between violet and magenta col_ang V*Ang gt col_ang M*Ang le and { 1 W*L* W*A* W*B* 1 N*L* N*A* N*B* 1 V*L* V*A* V*B* 1 M*L* M*A* M*B* 1 L* A* B* Coeffproc /m* exch def /v* exch def /n* exch def /w* exch def %magenta is a mixture of orange and violet, therefore leafgreen(l) = white, %violet(o) = 1-black(n), orange(o) = white + magenta0 /v* 1 n* sub def /l* w* def /o* w* m* add def } if % limit each number to 2 decimal places /o*2 o* 0.005 add 100 mul truncate 100 div def /l*2 l* 0.005 add 100 mul truncate 100 div def /v*2 v* 0.005 add 100 mul truncate 100 div def xi0 yi4 moveto (olv*, olv*0, olv*95 *color data (8bit):) show xi0 yi5 moveto (o*nCTV:) show xi1 yi5 moveto o*2 8 string cvs show xi1a yi5 moveto o*2 255 mul cvi 8 string cvs show xi1b yi5 moveto o*2 64 mul cvi 95 add 8 string cvs show xi0 yi6 moveto (l*nCTV:) show xi1 yi6 moveto l*2 8 string cvs show xi1a yi6 moveto l*2 255 mul cvi 8 string cvs show xi1b yi6 moveto l*2 64 mul cvi 95 add 8 string cvs show xi0 yi7 moveto (v*nCTV:) show xi1 yi7 moveto v*2 8 string cvs show xi1a yi7 moveto v*2 255 mul cvi 8 string cvs show xi1b yi7 moveto v*2 64 mul cvi 95 add 8 string cvs show % limit each number to 2 decimal places /c* 1 o* sub def /m* 1 l* sub def /y* 1 v* sub def /c*2 c* 0.005 add 100 mul truncate 100 div def /m*2 m* 0.005 add 100 mul truncate 100 div def /y*2 y* 0.005 add 100 mul truncate 100 div def xi0 yi8 moveto (cmy*, cmy*0, cmy*95 *color data (8bit):) show xi0 yi9 moveto (c*wCTV:) show xi1 yi9 moveto c*2 8 string cvs show xi1a yi9 moveto c*2 255 mul cvi 8 string cvs show xi1b yi9 moveto c*2 64 mul cvi 95 add 8 string cvs show xi0 yi10 moveto (m*wCTV:) show xi1 yi10 moveto m*2 8 string cvs show xi1a yi10 moveto m*2 255 mul cvi 8 string cvs show xi1b yi10 moveto m*2 64 mul cvi 95 add 8 string cvs show xi0 yi11 moveto (y*wCTV:) show xi1 yi11 moveto y*2 8 string cvs show xi1a yi11 moveto y*2 255 mul cvi 8 string cvs show xi1b yi11 moveto y*2 64 mul cvi 95 add 8 string cvs show % limit each number to 2 decimal places /n*TLS n* def /r*TLS 1 n* sub w* sub def /w*TLS w* def /n*TLS2 n*TLS 0.005 add 100 mul truncate 100 div def /r*TLS2 r*TLS 0.005 add 100 mul truncate 100 div def /w*TLS2 w*TLS 0.005 add 100 mul truncate 100 div def xi2 yi16 moveto (R*TLS: ) show xi3a yi16 moveto r*TLS2 100 mul cvi 8 string cvs show /h1* (-) def /h2* (-) def /H 0 def /H1* (-) def /H2* (-) def /H 0 def /IEND 0 def col_ang R*Ang gt col_ang J*Ang le and {/H* col_ang R*Ang sub J*Ang R*Ang sub div def /h1* (r) def /h2* (j) def /H1* (R) def /H2* (J) def /HM* R*Ang def /HP* J*Ang def /IEND 1 def} if col_ang J*Ang gt col_ang G*Ang le and {/H* col_ang J*Ang sub G*Ang J*Ang sub div def /h1* (j) def /h2* (g) def /H1* (J) def /H2* (G) def /HM* J*Ang def /HP* G*Ang def /IEND 1 def} if col_ang G*Ang gt col_ang B*Ang le and {/H* col_ang G*Ang sub B*Ang G*Ang sub div def /h1* (g) def /h2* (b) def /H1* (G) def /H2* (B) def /HM* G*Ang def /HP* B*Ang def /IEND 1 def} if col_ang R*Ang le IEND 0 eq and {/Pcol_ang col_ang 360 add def} {/Pcol_ang col_ang def} ifelse Pcol_ang B*Ang gt Pcol_ang R*Ang 360 add le and {/H* Pcol_ang B*Ang sub R*Ang 360 add B*Ang sub div def /h1* (b) def /h2* (r) def /H1* (B) def /H2* (R) def /HM* B*Ang def /HP* R*Ang 360 add def} if xi2 yi17 moveto (T*TLS: ) show xi3a yi17 moveto /t*TLS2 1 n*TLS r*TLS 0.5 mul add sub 0.005 add 100 mul truncate 100 div def t*TLS2 100 mul cvi 8 string cvs show xi2 yi18 moveto (U*TLS: ) show xi3a yi18 moveto H1* show H* 100 mul cvi 8 string cvs show H2* show /X* {L*da 16 add 116 div A*da 500 div add } bind def /Y* {L*da 16 add 116 div } bind def /Z* {L*da 16 add 116 div B*da 200 div sub} bind def /DecodeXYZ* { dup 6 29 div ge { dup dup mul mul } { 4 29 div sub 108 841 div mul } ifelse } bind def /XCIE {X* DecodeXYZ* 0.9505 mul} bind def /YCIE {Y* DecodeXYZ* } bind def /ZCIE {Z* DecodeXYZ* 1.0890 mul} bind def /XCIE1 {X* DecodeXYZ* 0.9505 mul CIEF mul} bind def /YCIE1 {Y* DecodeXYZ* CIEF mul} bind def /ZCIE1 {Z* DecodeXYZ* 1.0890 mul CIEF mul} bind def /XCIE*XYZn [ 53.80 78.73 106.96 ] def % cyan in XYZ /XCIE*sRGB [ 53.80 78.73 106.96 ] def % cyan in XYZ xi0 yi12 moveto (TLS *color data (Telev. Luminous Syst.)) show xi0 yi13 moveto (XCIE1: ) show xi1 yi13 moveto XCIE1 10000 mul truncate 100 div 8 string cvs show xi0 yi14 moveto (YCIE1: ) show xi1 yi14 moveto YCIE1 10000 mul truncate 100 div 8 string cvs show xi0 yi15 moveto (ZCIE1: ) show xi1 yi15 moveto ZCIE1 10000 mul truncate 100 div 8 string cvs show %Transformation X Y Z to RsRGB, GsRGB, BsRGB /RsRGB XCIE1 3.2406 mul YCIE1 -1.5372 mul add ZCIE1 -0.4986 mul add def /GsRGB XCIE1 -0.9686 mul YCIE1 1.8758 mul add ZCIE1 0.0415 mul add def /BsRGB XCIE1 0.0557 mul YCIE1 -0.2040 mul add ZCIE1 1.0570 mul add def xi2 yi13 moveto (RsRGB: ) show xi3a yi13 moveto RsRGB 100 mul truncate 100 div 8 string cvs show xi2 yi14 moveto (GsRGB: ) show xi3a yi14 moveto GsRGB 100 mul truncate 100 div 8 string cvs show xi2 yi15 moveto (BsRGB: ) show xi3a yi15 moveto BsRGB 100 mul truncate 100 div 8 string cvs show /Slope 1.0 2.4 div def RsRGB 0.00313008 le {/R'sRGB RsRGB 12.92 mul def} {/R'sRGB RsRGB Slope exp 1.055 mul 0.055 sub def} ifelse GsRGB 0.00313008 le {/G'sRGB GsRGB 12.92 mul def} {/G'sRGB GsRGB Slope exp 1.055 mul 0.055 sub def} ifelse BsRGB 0.00313008 le {/B'sRGB BsRGB 12.92 mul def} {/B'sRGB BsRGB Slope exp 1.055 mul 0.055 sub def} ifelse xi0 yi16 moveto (R'sRGB: ) show xi1 yi16 moveto R'sRGB 100 mul truncate 100 div 8 string cvs show xi0 yi17 moveto (G'sRGB: ) show xi1 yi17 moveto G'sRGB 100 mul truncate 100 div 8 string cvs show xi0 yi18 moveto (B'sRGB: ) show xi1 yi18 moveto B'sRGB 100 mul truncate 100 div 8 string cvs show 0 0 0 setrgbcolor 50 setlinewidth xi2g yi0 yi1a add 0.5 mul moveto xi2g yi3a lineto xi3 yi3a lineto xi3 yi0 yi1a add 0.5 mul lineto closepath stroke 0 0 0 setrgbcolor 50 setlinewidth xi2g yi0b yi1b add 0.5 mul moveto xi2g yi3b lineto xi3 yi3b lineto xi3 yi0b yi1b add 0.5 mul lineto closepath stroke xi2g yi4 yi5 add 0.5 mul moveto xi2g yi7 lineto xi3 yi7 lineto xi3 yi4 yi5 add 0.5 mul lineto closepath stroke xi2g yi8 yi9 add 0.5 mul moveto xi2g yi11 lineto xi3 yi11 lineto xi3 yi8 yi9 add 0.5 mul lineto closepath stroke PSL12 2 ge {[/CIEBasedABC [ %Farbraum und Grenzen fuer D65 /RangeABC[0 100 -128 127 -128 127] /DecodeABC[{16 add 116 div} bind {500 div} bind {200 div} bind] /MatrixABC[1 1 1 1 0 0 0 0 -1] /DecodeLMN [{ dup 6 29 div ge { dup dup mul mul } { 4 29 div sub 108 841 div mul } ifelse 0.9505 mul} bind { dup 6 29 div ge { dup dup mul mul } { 4 29 div sub 108 841 div mul } ifelse } bind { dup 6 29 div ge { dup dup mul mul } { 4 29 div sub 108 841 div mul } ifelse 1.0890 mul} bind] /WhitePoint[0.9505 1 1.0890] dictende ] setcolorspace } if %Ende Standard-Definition PSL2-CIEBasedA PSL12 1 eq %Definition alle PSL1-Geraete { {/setrgbcolor where %Abfrage auf PSL1-Farb-Geraet {pop setrgbcolor} %PSL1-Farb-Geraet {pop 0.4 exp setgray pop} ifelse } %PSL1-SW-Geraet /setcolor exch def} if %LAB* setcolor /xi3g xi2g xi3 add 0.5 mul def L*CIE A*CIE B*CIE setcolor xi2g yi0 yi1a add 0.5 mul moveto xi2g yi3a lineto xi3g yi3a lineto xi3g yi0 yi1a add 0.5 mul lineto closepath fill %lab* setcolor l*CIE 100 mul a*CIE 100 mul b*CIE 100 mul setcolor xi3g yi0 yi1a add 0.5 mul moveto xi3g yi3a lineto xi3 yi3a lineto xi3 yi0 yi1a add 0.5 mul lineto closepath fill %LAB* setcolor adapted L*da A*da B*da setcolor xi2g yi0b yi1b add 0.5 mul moveto xi2g yi3b lineto xi3g yi3b lineto xi3g yi0b yi1b add 0.5 mul lineto closepath fill %lab* setcolor adapted l*CIEda 100 mul a*CIEda 100 mul b*CIEda 100 mul setcolor xi3g yi0b yi1b add 0.5 mul moveto xi3g yi3b lineto xi3 yi3b lineto xi3 yi0b yi1b add 0.5 mul lineto closepath fill % square of colour in olv* co-ordinates o* l* v* setrgbcolor % but this is rgb xi2g yi4 yi5 add 0.5 mul moveto xi2g yi7 lineto xi3 yi7 lineto xi3 yi4 yi5 add 0.5 mul lineto closepath fill % square of colour in cmy* co-ordinates c* m* y* 0 setcmykcolor % but this is cmyk xi2g yi8 yi9 add 0.5 mul moveto xi2g yi11 lineto xi3 yi11 lineto xi3 yi8 yi9 add 0.5 mul lineto closepath fill } for %i=0,7 showpage grestore %} for %xcolor=xcolor1,1,xcolor2 %output showpage %} for %output showpage %%Trailer %%EndDocument EndEPSF grestore gsave BeginEPSF 219 MM 109 MM translate 10 /Times-ISOL1 FS 53 MM 1 MM moveto ( ) show 1 1 scale -77 -91 translate %%BeginDocument: Bild 24 %Zeile 440 %%EndDocument EndEPSF grestore gsave BeginEPSF 161 MM 065 MM translate 10 /Times-ISOL1 FS 53 MM 1 MM moveto ( ) show 1 1 scale -77 -91 translate %%BeginDocument: Bild 25 %Zeile 450 %%EndDocument EndEPSF grestore gsave BeginEPSF 219 MM 065 MM translate 10 /Times-ISOL1 FS 53 MM 1 MM moveto ( ) show 1 1 scale -77 -91 translate %%BeginDocument: Bild 26 %Zeile 460 %%EndDocument EndEPSF grestore gsave BeginEPSF 161 MM 021 MM translate 10 /Times-ISOL1 FS 53 MM 1 MM moveto ( ) show 1 1 scale -77 -91 translate %%BeginDocument: Bild 27 %Zeile 470 %!PS-Adobe-3.0 EPSF-3.0 M7510-7N.EPS, N=2_2 20000816 %%BoundingBox: 50 80 395 332 %START PDFDE011.EPS /pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse /languagelevel where {pop languagelevel} {1} ifelse 2 lt { userdict (<<) cvn ([) cvn load put userdict (>>) cvn (]) cvn load put} if [ /Title (PostScript pictures: M7510-7N.EPS) /Author (compare K. Richter "Computergrafik ...": ISBN 3-8007-1775-1) /Subject (goto: http://o2.ps.bam.de or http://www.ps.bam.de) /Keywords (image reproduction, colour devices) /Creator (klaus.richter@bam.de) /CreationDate (D:2000081612000) /ModDate (D:2000081612000) /DOCINFO pdfmark [ /View [ /FitB ] /DOCVIEW pdfmark %END PDFDE011 %%Creator: K. Richter, BAM und TU Berlin, 20000816 %%+Copyright (c) 1996 VDE-Verlag Berlin Offenbach % !AUSTAUSCH Times-Roman -> Times-Roman-ISOLatin1=Times-I /Times-Roman findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /Times-ISOL1 exch definefont pop /Times-Italic findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /TimesI-ISOL1 exch definefont pop /Times-Bold findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /TimesB-ISOL1 exch definefont pop /Times-BoldItalic findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /TimesBI-ISOL1 exch definefont pop /FS {findfont exch scalefont setfont} bind def /MM {72 25.4 div mul} def %Umrechnung Inch -> mm /A4quer {598 0 translate 90 rotate} def /languagelevel where {pop languagelevel} {1} ifelse /PSL12 exch def /dictende {counttomark 2 idiv dup dict begin {def} repeat pop currentdict end} bind def % function to convert from LAB* co-ordinates to olv* co-ordinates % takes in three variables LAB* and returns the *color data for olv*. % definitions of TV-colours (Yw=88.60) in the LAB* system, % compare ISO/IEC 15775:1999-12 and DIS ISO/IEC 19839-1 to 4 % If these require changing only need to change them here %/C*LAB* [ 86.88 -46.18 -13.57 ] def % cyan in LAB* %/M*LAB* [ 57.50 94.35 -58.42 ] def % magenta in LAB* %/Y*LAB* [ 92.66 -20.71 90.75 ] def % yellow in LAB* %/O*LAB* [ 50.50 76.92 64.55 ] def % orange in LAB* %/L*LAB* [ 83.63 -82.77 79.90 ] def % leafgreen in LAB* %/V*LAB* [ 30.39 76.06 -103.6 ] def % violet in LAB* %/N*LAB* [ 0.01 0.01 0.01 ] def % black (noir=n) in LAB* %/W*LAB* [100.00 0.01 0.01 ] def % white %TV-NORMALISATION TO 100, SEE TABLE 9, DIS ISO/IEC 19839-1:2000-04 %ACCORDING TO ITU-R BT.709-2 /C*LAB* [ 91.11 -48.08 -14.13 ] def % cyan in LAB* /M*LAB* [ 60.32 98.24 -60.83 ] def % magenta in LAB* /Y*LAB* [ 97.14 -21.56 94.48 ] def % yellow in LAB* /O*LAB* [ 53.24 80.09 67.20 ] def % orange in LAB* /L*LAB* [ 87.74 -86.18 83.19 ] def % leafgreen in LAB* /V*LAB* [ 32.30 79.20 -107.9 ] def % violet in LAB* /N*LAB* [ 0.01 0.01 0.01 ] def % black (noir=n) in LAB* /W*LAB* [100.00 0.01 0.01 ] def % white /Ns*LAB* [ 0.01 0.01 0.01 ] def % system dapted black (noir=n) in LAB* -> 0.01, 0, 0 for sysada=1 /Ws*LAB* [100.00 0.01 0.01 ] def % system adapted white -> 100, 0, 0 for sysada=1 /Ns*L* Ns*LAB* 0 get def /Ns*A* Ns*LAB* 1 get def /Ns*B* Ns*LAB* 2 get def /Ws*L* Ws*LAB* 0 get def /Ws*A* Ws*LAB* 1 get def /Ws*B* Ws*LAB* 2 get def % Determine the angle in the A* B* plane of each of the colours defined above /C*Ang C*LAB* 2 get C*LAB* 1 get atan def /M*Ang M*LAB* 2 get M*LAB* 1 get atan def /Y*Ang Y*LAB* 2 get Y*LAB* 1 get atan def /O*Ang O*LAB* 2 get O*LAB* 1 get atan def /L*Ang L*LAB* 2 get L*LAB* 1 get atan def /V*Ang V*LAB* 2 get V*LAB* 1 get atan def /N*Ang N*LAB* 2 get N*LAB* 1 get atan def /W*Ang W*LAB* 2 get W*LAB* 1 get atan def % The detproc below finds the determinant of the Matrix: % | A1 B1 C1 D1 | % | A2 B2 C2 D2 | % | A3 B3 C3 D3 | % | A4 B4 C4 D4 | % /detproc { /term1 B2 C3 mul D4 mul C2 D3 mul B4 mul add D2 B3 mul C4 mul add B4 C3 mul D2 mul sub C4 D3 mul B2 mul sub D4 B3 mul C2 mul sub def /term2 A2 C3 mul D4 mul C2 D3 mul A4 mul add D2 A3 mul C4 mul add A4 C3 mul D2 mul sub C4 D3 mul A2 mul sub D4 A3 mul C2 mul sub def /term3 A2 B3 mul D4 mul B2 D3 mul A4 mul add D2 A3 mul B4 mul add A4 B3 mul D2 mul sub B4 D3 mul A2 mul sub D4 A3 mul B2 mul sub def /term4 A2 B3 mul C4 mul B2 C3 mul A4 mul add C2 A3 mul B4 mul add A4 B3 mul C2 mul sub B4 C3 mul A2 mul sub C4 A3 mul B2 mul sub def /det A1 term1 mul B1 term2 mul sub C1 term3 mul add D1 term4 mul sub def } bind def % The Coeffproc procedure solves for WhiteCoeff, Black Coeff, Col1Coeff and % Col2Coeff in the matrix equation below. It takes as inputs A1->A4 B1->B4 % C1->C4 D1->D4 and s,y,z,t. It solves for these using Cramer's rule. % Note: Cramer's rule is valid only for non-singular matrices, ie |A| not % equal to 0. % % | A1 B1 C1 D1 | |WhiteCoeff| |x| % | A2 B2 C2 D2 | |BlackCoeff| = |y| % | A3 B3 C3 D3 | |Col1Coeff | |z| % | A4 B4 C4 D4 | |Col2Coeff | |t| % A B = C % /Coeffproc { /t exch def /z exch def /y exch def /x exch def /D4 exch def /D3 exch def /D2 exch def /D1 exch def /C4 exch def /C3 exch def /C2 exch def /C1 exch def /B4 exch def /B3 exch def /B2 exch def /B1 exch def /A4 exch def /A3 exch def /A2 exch def /A1 exch def detproc /den det def % determine white coefficient /temp1 A1 def /temp2 A2 def /temp3 A3 def /temp4 A4 def /A1 x def /A2 y def /A3 z def /A4 t def detproc /numW det def /A1 temp1 def /A2 temp2 def /A3 temp3 def /A4 temp4 def % determine black coefficient /temp1 B1 def /temp2 B2 def /temp3 B3 def /temp4 B4 def /B1 x def /B2 y def /B3 z def /B4 t def detproc /numB det def /B1 temp1 def /B2 temp2 def /B3 temp3 def /B4 temp4 def % determine colour1 coefficient /temp1 C1 def /temp2 C2 def /temp3 C3 def /temp4 C4 def /C1 x def /C2 y def /C3 z def /C4 t def detproc /numCol1 det def /C1 temp1 def /C2 temp2 def /C3 temp3 def /C4 temp4 def % determine colour2 coefficient /temp1 D1 def /temp2 D2 def /temp3 D3 def /temp4 D4 def /D1 x def /D2 y def /D3 z def /D4 t def detproc /numCol2 det def /D1 temp1 def /D2 temp2 def /D3 temp3 def /D4 temp4 def /WhiteCoeff numW den div def /BlackCoeff numB den div def /Col1Coeff numCol1 den div def /Col2Coeff numCol2 den div def WhiteCoeff BlackCoeff Col1Coeff Col2Coeff % returns these *color data on the stack } bind def %%EndProlog gsave /sysada 1 def %sysada=0,1 system adaptation of 8 x 3 LAB*coordinates 0 1 7 {/i exch def %i=0,7 i 0 eq {/L* C*LAB* 0 get def /A* C*LAB* 1 get def /B* C*LAB* 2 get def} if i 1 eq {/L* M*LAB* 0 get def /A* M*LAB* 1 get def /B* M*LAB* 2 get def} if i 2 eq {/L* Y*LAB* 0 get def /A* Y*LAB* 1 get def /B* Y*LAB* 2 get def} if i 3 eq {/L* O*LAB* 0 get def /A* O*LAB* 1 get def /B* O*LAB* 2 get def} if i 4 eq {/L* L*LAB* 0 get def /A* L*LAB* 1 get def /B* L*LAB* 2 get def} if i 5 eq {/L* V*LAB* 0 get def /A* V*LAB* 1 get def /B* V*LAB* 2 get def} if i 6 eq {/L* N*LAB* 0 get def /A* N*LAB* 1 get def /B* N*LAB* 2 get def} if i 7 eq {/L* W*LAB* 0 get def /A* W*LAB* 1 get def /B* W*LAB* 2 get def} if /L*sa L* def /l*CIEsa L*sa Ns*L* sub Ws*L* Ns*L* sub div def %system adapted relative lightness /a*sa Ws*A* Ns*A* sub l*CIEsa mul def /b*sa Ws*B* Ns*B* sub l*CIEsa mul def /A*sa A* Ns*A* sub a*sa sub 0.0001 add def %0.0001 for atan /B*sa B* Ns*B* sub b*sa sub 0.0001 add def %0.0001 for atan sysada 0 eq {%sysada=0 i 0 eq {C*LAB* 0 L* put C*LAB* 1 A* put C*LAB* 2 B* put} if i 1 eq {M*LAB* 0 L* put M*LAB* 1 A* put M*LAB* 2 B* put} if i 2 eq {Y*LAB* 0 L* put Y*LAB* 1 A* put Y*LAB* 2 B* put} if i 3 eq {O*LAB* 0 L* put O*LAB* 1 A* put O*LAB* 2 B* put} if i 4 eq {L*LAB* 0 L* put L*LAB* 1 A* put L*LAB* 2 B* put} if i 5 eq {V*LAB* 0 L* put V*LAB* 1 A* put V*LAB* 2 B* put} if i 6 eq {N*LAB* 0 L* put N*LAB* 1 A* put N*LAB* 2 B* put} if i 7 eq {W*LAB* 0 L* put W*LAB* 1 A* put W*LAB* 2 B* put} if } %sysada=0 { %sysada=1 i 0 eq {C*LAB* 0 L*sa put C*LAB* 1 A*sa put C*LAB* 2 B*sa put} if i 1 eq {M*LAB* 0 L*sa put M*LAB* 1 A*sa put M*LAB* 2 B*sa put} if i 2 eq {Y*LAB* 0 L*sa put Y*LAB* 1 A*sa put Y*LAB* 2 B*sa put} if i 3 eq {O*LAB* 0 L*sa put O*LAB* 1 A*sa put O*LAB* 2 B*sa put} if i 4 eq {L*LAB* 0 L*sa put L*LAB* 1 A*sa put L*LAB* 2 B*sa put} if i 5 eq {V*LAB* 0 L*sa put V*LAB* 1 A*sa put V*LAB* 2 B*sa put} if i 6 eq {N*LAB* 0 L*sa put N*LAB* 1 A*sa put N*LAB* 2 B*sa put} if i 7 eq {W*LAB* 0 L*sa put W*LAB* 1 A*sa put W*LAB* 2 B*sa put} if } ifelse %sysada=0,1 } for %i=0,7 /C*L* C*LAB* 0 get def /C*A* C*LAB* 1 get def /C*B* C*LAB* 2 get def /M*L* M*LAB* 0 get def /M*A* M*LAB* 1 get def /M*B* M*LAB* 2 get def /Y*L* Y*LAB* 0 get def /Y*A* Y*LAB* 1 get def /Y*B* Y*LAB* 2 get def /O*L* O*LAB* 0 get def /O*A* O*LAB* 1 get def /O*B* O*LAB* 2 get def /L*L* L*LAB* 0 get def /L*A* L*LAB* 1 get def /L*B* L*LAB* 2 get def /V*L* V*LAB* 0 get def /V*A* V*LAB* 1 get def /V*B* V*LAB* 2 get def /N*L* N*LAB* 0 get def /N*A* N*LAB* 1 get def /N*B* N*LAB* 2 get def /W*L* W*LAB* 0 get def /W*A* W*LAB* 1 get def /W*B* W*LAB* 2 get def %LANINDL3 START 20000505 /lanind 0 def /lantex [(G) (E) (S) (F) (I) (J) (M)] def /showde {0 lanind eq {show} {pop} ifelse} bind def /showen {1 lanind eq {show} {pop} ifelse} bind def /showes {2 lanind eq {show} {pop} ifelse} bind def /showfr {3 lanind eq {show} {pop} ifelse} bind def /showit {4 lanind eq {show} {pop} ifelse} bind def /showjp {5 lanind eq {show} {pop} ifelse} bind def /showm {6 lanind eq {show} {pop} ifelse} bind def /popde {0 lanind ne {pop} if} bind def /popen {1 lanind ne {pop} if} bind def /popes {2 lanind ne {pop} if} bind def /popfr {3 lanind ne {pop} if} bind def /popit {4 lanind ne {pop} if} bind def /popjp {5 lanind ne {pop} if} bind def /popm {6 lanind ne {pop} if} bind def /popxde {/n exch def 0 lanind ne {n {pop} repeat} if} bind def /popxen {/n exch def 1 lanind ne {n {pop} repeat} if} bind def /popxes {/n exch def 2 lanind ne {n {pop} repeat} if} bind def /popxfr {/n exch def 3 lanind ne {n {pop} repeat} if} bind def /popxit {/n exch def 4 lanind ne {n {pop} repeat} if} bind def /popxjp {/n exch def 5 lanind ne {n {pop} repeat} if} bind def /popxm {/n exch def 6 lanind ne {n {pop} repeat} if} bind def /lanindg where {pop /lanind1 lanindg def /lanind2 lanindg def} {/lanind1 1 def /lanind2 1 def} ifelse /lanind lanind1 def %lanind1 1 lanind2 {/lanind exch def %output showpage %gsave %LANINDL3 END 8 /Times-Roman FS 72 83 moveto ( 2x2, E7511-7, ) show (CTVw-Farben n*=0.75 in CTVwsa-System mit L*=0-100) popde %07511-7 1 (CTVw colors n*=0.75 in CTVwsa system with L*=0-100) popen %17511-7 1 (CTVw colors n*=0.75 in CTVwsa system with L*=0-100) popes %27511-7 1 (CTVw colors n*=0.75 in CTVwsa system with L*=0-100) popfr %37511-7 1 (CTVw colors n*=0.75 in CTVwsa system with L*=0-100) popit %47511-7 1 (CTVw colors n*=0.75 in CTVwsa system with L*=0-100) popjp %57511-7 1 show ( (WGcode=95-159)) show 72 90 translate 0.01 MM dup scale 15 setlinewidth 0 0 moveto 11200 0 rlineto 0 8400 rlineto -11200 0 rlineto closepath stroke 0 1 7 {/i exch def %i=0,7 %TV-NORMALISATION TO 100, SEE TABLE 9, DIS ISO/IEC 19839-1:2000-04 %ACCORDING TO ITU-R BT.709-2 /C*LABd* [ 91.11 -48.08 -14.13 ] def % cyan in LAB* /M*LABd* [ 60.32 98.24 -60.83 ] def % magenta in LAB* /Y*LABd* [ 97.14 -21.56 94.48 ] def % yellow in LAB* /O*LABd* [ 53.24 80.09 67.20 ] def % orange in LAB* /L*LABd* [ 87.74 -86.18 83.19 ] def % leafgreen in LAB* /V*LABd* [ 32.30 79.20 -107.9 ] def % violet in LAB* /N*LABd* [ 0.01 0.01 0.01 ] def % black (noir=n) in LAB* (equal Ywhite/255) /W*LABd* [100.00 0.01 0.01 ] def % white /Nd*LAB* [ 0.01 0.01 0.01 ] def % device dapted black (noir=n) in LAB* -> 18.01, 0, 0 for sysada=1 /Wd*LAB* [100.00 0.01 0.01 ] def % device adapted white -> 95.41, 0, 0 for sysada=1 /CIEF 1 def /Nd*L* Nd*LAB* 0 get def /Nd*A* Nd*LAB* 1 get def /Nd*B* Nd*LAB* 2 get def /Wd*L* Wd*LAB* 0 get def /Wd*A* Wd*LAB* 1 get def /Wd*B* Wd*LAB* 2 get def /nfac 0.75 def /sfac 1 nfac sub def i 0 eq {/L* C*LABd* 0 get sfac mul def /A* C*LABd* 1 get sfac mul def /B* C*LABd* 2 get sfac mul def} if i 1 eq {/L* M*LABd* 0 get sfac mul def /A* M*LABd* 1 get sfac mul def /B* M*LABd* 2 get sfac mul def} if i 2 eq {/L* Y*LABd* 0 get sfac mul def /A* Y*LABd* 1 get sfac mul def /B* Y*LABd* 2 get sfac mul def} if i 3 eq {/L* O*LABd* 0 get sfac mul def /A* O*LABd* 1 get sfac mul def /B* O*LABd* 2 get sfac mul def} if i 4 eq {/L* L*LABd* 0 get sfac mul def /A* L*LABd* 1 get sfac mul def /B* L*LABd* 2 get sfac mul def} if i 5 eq {/L* V*LABd* 0 get sfac mul def /A* V*LABd* 1 get sfac mul def /B* V*LABd* 2 get sfac mul def} if i 6 eq {/L* N*LABd* 0 get sfac mul def /A* N*LABd* 1 get sfac mul def /B* N*LABd* 2 get sfac mul def} if i 7 eq {/L* W*LABd* 0 get sfac mul def /A* W*LABd* 1 get sfac mul def /B* W*LABd* 2 get sfac mul def} if %for later output /L*CIE L* def /A*CIE A* def /B*CIE B* def /l*CIE L* N*L* sub W*L* N*L* sub div def %system relative lightness /a*s W*A* N*A* sub l*CIE mul def /b*s W*B* N*B* sub l*CIE mul def /a*CIE A* N*A* sub a*s sub 100 div 0.0001 add def %0.0001 for atan /b*CIE B* N*B* sub b*s sub 100 div 0.0001 add def %0.0001 for atan /L*da L* def /l*CIEda L*da Nd*L* sub Wd*L* Nd*L* sub div def %device adapted relative lightness /a*da Wd*A* Nd*A* sub l*CIEda mul def /b*da Wd*B* Nd*B* sub l*CIEda mul def /A*da A* Nd*A* sub a*da sub 0.0001 add def %0.0001 for atan /B*da B* Nd*B* sub b*da sub 0.0001 add def %0.0001 for atan /a*CIEda A*da 100 div 0.0001 add def %0.0001 for atan /b*CIEda B*da 100 div 0.0001 add def %0.0001 for atan %48.44 -3.94 -14.997 %/B* exch def %/A* exch def %/L* exch def %Definition of elementary colors J, R, B, G %CIE x,y,Y for D65 to CIE L* a* b* = LAB* /xanJ 0.4449 def /yanJ 0.4909 def /YJ 77.82 def /xanR 0.5813 def /yanR 0.3236 def /YR 18.11 def /xanB 0.1701 def /yanB 0.1355 def /YB 9.35 def /xanG 0.1890 def /yanG 0.4496 def /YG 20.24 def /xanD65 0.3127 def /yanD65 0.3291 def /YD65 100.00 def /SumJ YJ yanJ div def /XJ xanJ SumJ mul def /ZJ 1 xanJ sub yanJ sub SumJ mul def /SumR YR yanR div def /XR xanR SumR mul def /ZR 1 xanR sub yanR sub SumR mul def /SumB YB yanB div def /XB xanB SumB mul def /ZB 1 xanB sub yanB sub SumB mul def /SumG YG yanG div def /XG xanG SumG mul def /ZG 1 xanG sub yanG sub SumG mul def /SumD65 YD65 yanD65 div def /XD65 xanD65 SumD65 mul def /ZD65 1 xanD65 sub yanD65 sub SumD65 mul def /ASJ xanJ yanJ div 0.3333 exp 0.2191 mul def /BSJ 1 xanJ sub yanJ sub yanJ div 0.3333 exp 0.08376 mul neg def /ASR xanR yanR div 0.3333 exp 0.2191 mul def /BSR 1 xanR sub yanR sub yanR div 0.3333 exp 0.08376 mul neg def /ASB xanB yanB div 0.3333 exp 0.2191 mul def /BSB 1 xanB sub yanB sub yanB div 0.3333 exp 0.08376 mul neg def /ASG xanG yanG div 0.3333 exp 0.2191 mul def /BSG 1 xanG sub yanG sub yanG div 0.3333 exp 0.08376 mul neg def /ASD65 xanD65 yanD65 div 0.3333 exp 0.2191 mul def /BSD65 1 xanD65 sub yanD65 sub yanD65 div 0.3333 exp 0.08376 mul neg def %/col_ang B* A* atan def /J*L YJ 100 div 0.3333 exp 116 mul 16 sub def /R*L YR 100 div 0.3333 exp 116 mul 16 sub def /B*L YB 100 div 0.3333 exp 116 mul 16 sub def /G*L YG 100 div 0.3333 exp 116 mul 16 sub def /J*A ASJ ASD65 sub 500 mul def /J*B BSJ BSD65 sub 500 mul def /R*A ASR ASD65 sub 500 mul def /R*B BSR BSD65 sub 500 mul def /B*A ASB ASD65 sub 500 mul def /B*B BSB BSD65 sub 500 mul def /G*A ASG ASD65 sub 500 mul def /G*B BSG BSD65 sub 500 mul def /J*Ang J*B J*A atan def /R*Ang R*B R*A atan def /B*Ang B*B B*A atan def /G*Ang G*B G*A atan def % Print the results 4 setlinewidth 160 /Times-Roman FS /ix0 0 def i 4 ge {/ix0 4 def} if /xdef 400 def /ydef 150 def /xi0 100 i ix0 sub 2800 mul add def /xi1 xi0 800 add def /xi1a xi0 1200 add def /xi1b xi0 1600 add def /xi2 xi0 1400 add def /xi2a xi0 2200 add def /xi2g xi0 2000 add def /xi3 xi0 2600 add def /xi3a xi0 2200 add def /xi3a xi0 2200 add def /iy0 0 def i 4 ge {/iy0 4200 def} if /yi0 8200 iy0 sub def /yi1a yi0 ydef 1.5 mul sub def /yi2a yi1a ydef sub def /yi3a yi2a ydef sub def /yi4a yi3a ydef sub def /yi0b yi4a ydef 0.5 mul sub def /yi1b yi4a ydef 1.5 mul sub def /yi2b yi1b ydef sub def /yi3b yi2b ydef sub def /yi4b yi3b ydef sub def /yi4 yi4b ydef 1.5 mul sub def /yi5 yi4 ydef sub def /yi6 yi5 ydef sub def /yi7 yi6 ydef sub def /yi8 yi7 ydef 1.5 mul sub def /yi9 yi8 ydef sub def /yi10 yi9 ydef sub def /yi11 yi10 ydef sub def /yi12 yi11 ydef 1.5 mul sub def /yi13 yi12 ydef sub def /yi14 yi13 ydef sub def /yi15 yi14 ydef sub def /yi16 yi15 ydef 1.5 mul sub def /yi17 yi16 ydef sub def /yi18 yi17 ydef sub def /yi19 yi18 ydef sub def 0 0 0 setrgbcolor xi0 yi0 moveto (Input: Abs. LAB*, rel. lab* *color data ) show xi0 yi1a moveto (L*CIE: ) show xi1 yi1a moveto L* 0.005 add 100 mul truncate 100 div 8 string cvs show xi2 yi1a moveto l*CIE 0.005 add 100 mul truncate 100 div 8 string cvs show xi0 yi2a moveto (A*CIE:) show xi1 yi2a moveto A* 0.005 add 100 mul truncate 100 div 8 string cvs show xi2 yi2a moveto a*CIE 0.005 add 100 mul truncate 100 div 8 string cvs show xi0 yi3a moveto (B*CIE:) show xi1 yi3a moveto B* 0.005 add 100 mul truncate 100 div 8 string cvs show xi2 yi3a moveto b*CIE 0.005 add 100 mul truncate 100 div 8 string cvs show /C* A* dup mul B* dup mul add sqrt def /H* B* A* atan def xi0 yi4a moveto (C*CIE:) show xi1 yi4a moveto C* 0.005 add 100 mul truncate 100 div 8 string cvs show xi2 yi4a moveto (H*CIE:) show xi2a yi4a moveto H* 0.005 add 100 mul truncate 100 div 8 string cvs show %Adaption coordinates (a) xi0 yi1b moveto (L*CIEda: ) show xi1 yi1b moveto L*da 0.005 add 100 mul truncate 100 div 8 string cvs show xi2 yi1b moveto l*CIEda 0.005 add 100 mul truncate 100 div 8 string cvs show xi0 yi2b moveto (A*CIEda:) show xi1 yi2b moveto A*da 0.005 add 100 mul truncate 100 div 8 string cvs show xi2 yi2b moveto a*CIEda 0.005 add 100 mul truncate 100 div 8 string cvs show xi0 yi3b moveto (B*CIEda:) show xi1 yi3b moveto B*da 0.005 add 100 mul truncate 100 div 8 string cvs show xi2 yi3b moveto b*CIEda 0.005 add 100 mul truncate 100 div 8 string cvs show /C*da A*da dup mul B*da dup mul add sqrt def /H*da B*da A*da atan def xi0 yi4b moveto (C*CIEda:) show xi1 yi4b moveto C*da 0.005 add 100 mul truncate 100 div 8 string cvs show xi2 yi4b moveto (H*CIEda:) show xi2a yi4b moveto H*da 0.005 add 100 mul truncate 100 div 8 string cvs show /L* L*da def /A* A*da def /B* B*da def % the angle formed by the input LAB* *color data in the A*B* plane /col_ang B* A* atan def %determine which two colours the LAB* *color data corresponds to by testing the %angles and solve the related four simultaneous equations to find the olv *color data. % angle between magenta and orange col_ang O*Ang le col_ang M*Ang gt or { 1 W*L* W*A* W*B* 1 N*L* N*A* N*B* 1 O*L* O*A* O*B* 1 M*L* M*A* M*B* 1 L* A* B* Coeffproc % *color data returned by Coeffproc /m* exch def /o* exch def /n* exch def /w* exch def %magenta is a mixture of orange and violet, therefore leafgreen(l) = white, %orange(o) = 1-black(n), violet(v) = white + magenta /v* w* m* add def /l* w* def /o* 1 n* sub def } if % angle between orange and yellow col_ang O*Ang gt col_ang Y*Ang le and { 1 W*L* W*A* W*B* 1 N*L* N*A* N*B* 1 O*L* O*A* O*B* 1 Y*L* Y*A* Y*B* 1 L* A* B* Coeffproc /y* exch def /o* exch def /n* exch def /w* exch def %yellow is a mixture of orange and leafgreen, therefore violet(v) = white, %orange(o) = 1-black(n), leafgreen(l) = white + yellow /v* w* def /l* w* y* add def /o* 1 n* sub def } if % angle between yellow and leafgreen col_ang Y*Ang gt col_ang L*Ang le and { 1 W*L* W*A* W*B* 1 N*L* N*A* N*B* 1 L*L* L*A* L*B* 1 Y*L* Y*A* Y*B* 1 L* A* B* Coeffproc /y* exch def /l* exch def /n* exch def /w* exch def %yellow is a mixture of orange and leafgreen, therefore violet(v) = white , %leafgreen(l) = 1-black(n), orange(v) = white + yellow /v* w* def /l* 1 n* sub def /o* w* y* add def } if % angle between leaf green and cyan col_ang L*Ang gt col_ang C*Ang le and { 1 W*L* W*A* W*B* 1 N*L* N*A* N*B* 1 L*L* L*A* L*B* 1 C*L* C*A* C*B* 1 L* A* B* Coeffproc /c* exch def /l* exch def /n* exch def /w* exch def %cyan is a mixture of leafgreen and violet, therefore orange(o) = white, %leafgreen(l) = 1-black(n), violet(v) = white + cyan /v* w* c* add def /l* 1 n* sub def /o* w* def } if % angle between cyan and violet col_ang C*Ang gt col_ang V*Ang le and { 1 W*L* W*A* W*B* 1 N*L* N*A* N*B* 1 V*L* V*A* V*B* 1 C*L* C*A* C*B* 1 L* A* B* Coeffproc /c* exch def /v* exch def /n* exch def /w* exch def %cyan is a mixture of leafgreen and violet, therefore orange(o) = white, %violet(o) = 1-black(n), leafgreen(l) = white + cyan /v* 1 n* sub def /l* w* c* add def /o* w* def } if % angle between violet and magenta col_ang V*Ang gt col_ang M*Ang le and { 1 W*L* W*A* W*B* 1 N*L* N*A* N*B* 1 V*L* V*A* V*B* 1 M*L* M*A* M*B* 1 L* A* B* Coeffproc /m* exch def /v* exch def /n* exch def /w* exch def %magenta is a mixture of orange and violet, therefore leafgreen(l) = white, %violet(o) = 1-black(n), orange(o) = white + magenta0 /v* 1 n* sub def /l* w* def /o* w* m* add def } if % limit each number to 2 decimal places /o*2 o* 0.005 add 100 mul truncate 100 div def /l*2 l* 0.005 add 100 mul truncate 100 div def /v*2 v* 0.005 add 100 mul truncate 100 div def xi0 yi4 moveto (olv*, olv*0, olv*95 *color data (8bit):) show xi0 yi5 moveto (o*nCTV:) show xi1 yi5 moveto o*2 8 string cvs show xi1a yi5 moveto o*2 255 mul cvi 8 string cvs show xi1b yi5 moveto o*2 64 mul cvi 95 add 8 string cvs show xi0 yi6 moveto (l*nCTV:) show xi1 yi6 moveto l*2 8 string cvs show xi1a yi6 moveto l*2 255 mul cvi 8 string cvs show xi1b yi6 moveto l*2 64 mul cvi 95 add 8 string cvs show xi0 yi7 moveto (v*nCTV:) show xi1 yi7 moveto v*2 8 string cvs show xi1a yi7 moveto v*2 255 mul cvi 8 string cvs show xi1b yi7 moveto v*2 64 mul cvi 95 add 8 string cvs show % limit each number to 2 decimal places /c* 1 o* sub def /m* 1 l* sub def /y* 1 v* sub def /c*2 c* 0.005 add 100 mul truncate 100 div def /m*2 m* 0.005 add 100 mul truncate 100 div def /y*2 y* 0.005 add 100 mul truncate 100 div def xi0 yi8 moveto (cmy*, cmy*0, cmy*95 *color data (8bit):) show xi0 yi9 moveto (c*wCTV:) show xi1 yi9 moveto c*2 8 string cvs show xi1a yi9 moveto c*2 255 mul cvi 8 string cvs show xi1b yi9 moveto c*2 64 mul cvi 95 add 8 string cvs show xi0 yi10 moveto (m*wCTV:) show xi1 yi10 moveto m*2 8 string cvs show xi1a yi10 moveto m*2 255 mul cvi 8 string cvs show xi1b yi10 moveto m*2 64 mul cvi 95 add 8 string cvs show xi0 yi11 moveto (y*wCTV:) show xi1 yi11 moveto y*2 8 string cvs show xi1a yi11 moveto y*2 255 mul cvi 8 string cvs show xi1b yi11 moveto y*2 64 mul cvi 95 add 8 string cvs show % limit each number to 2 decimal places /n*TLS n* def /r*TLS 1 n* sub w* sub def /w*TLS w* def /n*TLS2 n*TLS 0.005 add 100 mul truncate 100 div def /r*TLS2 r*TLS 0.005 add 100 mul truncate 100 div def /w*TLS2 w*TLS 0.005 add 100 mul truncate 100 div def xi2 yi16 moveto (R*TLS: ) show xi3a yi16 moveto r*TLS2 100 mul cvi 8 string cvs show /h1* (-) def /h2* (-) def /H 0 def /H1* (-) def /H2* (-) def /H 0 def /IEND 0 def col_ang R*Ang gt col_ang J*Ang le and {/H* col_ang R*Ang sub J*Ang R*Ang sub div def /h1* (r) def /h2* (j) def /H1* (R) def /H2* (J) def /HM* R*Ang def /HP* J*Ang def /IEND 1 def} if col_ang J*Ang gt col_ang G*Ang le and {/H* col_ang J*Ang sub G*Ang J*Ang sub div def /h1* (j) def /h2* (g) def /H1* (J) def /H2* (G) def /HM* J*Ang def /HP* G*Ang def /IEND 1 def} if col_ang G*Ang gt col_ang B*Ang le and {/H* col_ang G*Ang sub B*Ang G*Ang sub div def /h1* (g) def /h2* (b) def /H1* (G) def /H2* (B) def /HM* G*Ang def /HP* B*Ang def /IEND 1 def} if col_ang R*Ang le IEND 0 eq and {/Pcol_ang col_ang 360 add def} {/Pcol_ang col_ang def} ifelse Pcol_ang B*Ang gt Pcol_ang R*Ang 360 add le and {/H* Pcol_ang B*Ang sub R*Ang 360 add B*Ang sub div def /h1* (b) def /h2* (r) def /H1* (B) def /H2* (R) def /HM* B*Ang def /HP* R*Ang 360 add def} if xi2 yi17 moveto (T*TLS: ) show xi3a yi17 moveto /t*TLS2 1 n*TLS r*TLS 0.5 mul add sub 0.005 add 100 mul truncate 100 div def t*TLS2 100 mul cvi 8 string cvs show xi2 yi18 moveto (U*TLS: ) show xi3a yi18 moveto H1* show H* 100 mul cvi 8 string cvs show H2* show /X* {L*da 16 add 116 div A*da 500 div add } bind def /Y* {L*da 16 add 116 div } bind def /Z* {L*da 16 add 116 div B*da 200 div sub} bind def /DecodeXYZ* { dup 6 29 div ge { dup dup mul mul } { 4 29 div sub 108 841 div mul } ifelse } bind def /XCIE {X* DecodeXYZ* 0.9505 mul} bind def /YCIE {Y* DecodeXYZ* } bind def /ZCIE {Z* DecodeXYZ* 1.0890 mul} bind def /XCIE1 {X* DecodeXYZ* 0.9505 mul CIEF mul} bind def /YCIE1 {Y* DecodeXYZ* CIEF mul} bind def /ZCIE1 {Z* DecodeXYZ* 1.0890 mul CIEF mul} bind def /XCIE*XYZn [ 53.80 78.73 106.96 ] def % cyan in XYZ /XCIE*sRGB [ 53.80 78.73 106.96 ] def % cyan in XYZ xi0 yi12 moveto (TLS *color data (Telev. Luminous Syst.)) show xi0 yi13 moveto (XCIE1: ) show xi1 yi13 moveto XCIE1 10000 mul truncate 100 div 8 string cvs show xi0 yi14 moveto (YCIE1: ) show xi1 yi14 moveto YCIE1 10000 mul truncate 100 div 8 string cvs show xi0 yi15 moveto (ZCIE1: ) show xi1 yi15 moveto ZCIE1 10000 mul truncate 100 div 8 string cvs show %Transformation X Y Z to RsRGB, GsRGB, BsRGB /RsRGB XCIE1 3.2406 mul YCIE1 -1.5372 mul add ZCIE1 -0.4986 mul add def /GsRGB XCIE1 -0.9686 mul YCIE1 1.8758 mul add ZCIE1 0.0415 mul add def /BsRGB XCIE1 0.0557 mul YCIE1 -0.2040 mul add ZCIE1 1.0570 mul add def xi2 yi13 moveto (RsRGB: ) show xi3a yi13 moveto RsRGB 100 mul truncate 100 div 8 string cvs show xi2 yi14 moveto (GsRGB: ) show xi3a yi14 moveto GsRGB 100 mul truncate 100 div 8 string cvs show xi2 yi15 moveto (BsRGB: ) show xi3a yi15 moveto BsRGB 100 mul truncate 100 div 8 string cvs show /Slope 1.0 2.4 div def RsRGB 0.00313008 le {/R'sRGB RsRGB 12.92 mul def} {/R'sRGB RsRGB Slope exp 1.055 mul 0.055 sub def} ifelse GsRGB 0.00313008 le {/G'sRGB GsRGB 12.92 mul def} {/G'sRGB GsRGB Slope exp 1.055 mul 0.055 sub def} ifelse BsRGB 0.00313008 le {/B'sRGB BsRGB 12.92 mul def} {/B'sRGB BsRGB Slope exp 1.055 mul 0.055 sub def} ifelse xi0 yi16 moveto (R'sRGB: ) show xi1 yi16 moveto R'sRGB 100 mul truncate 100 div 8 string cvs show xi0 yi17 moveto (G'sRGB: ) show xi1 yi17 moveto G'sRGB 100 mul truncate 100 div 8 string cvs show xi0 yi18 moveto (B'sRGB: ) show xi1 yi18 moveto B'sRGB 100 mul truncate 100 div 8 string cvs show 0 0 0 setrgbcolor 50 setlinewidth xi2g yi0 yi1a add 0.5 mul moveto xi2g yi3a lineto xi3 yi3a lineto xi3 yi0 yi1a add 0.5 mul lineto closepath stroke 0 0 0 setrgbcolor 50 setlinewidth xi2g yi0b yi1b add 0.5 mul moveto xi2g yi3b lineto xi3 yi3b lineto xi3 yi0b yi1b add 0.5 mul lineto closepath stroke xi2g yi4 yi5 add 0.5 mul moveto xi2g yi7 lineto xi3 yi7 lineto xi3 yi4 yi5 add 0.5 mul lineto closepath stroke xi2g yi8 yi9 add 0.5 mul moveto xi2g yi11 lineto xi3 yi11 lineto xi3 yi8 yi9 add 0.5 mul lineto closepath stroke PSL12 2 ge {[/CIEBasedABC [ %Farbraum und Grenzen fuer D65 /RangeABC[0 100 -128 127 -128 127] /DecodeABC[{16 add 116 div} bind {500 div} bind {200 div} bind] /MatrixABC[1 1 1 1 0 0 0 0 -1] /DecodeLMN [{ dup 6 29 div ge { dup dup mul mul } { 4 29 div sub 108 841 div mul } ifelse 0.9505 mul} bind { dup 6 29 div ge { dup dup mul mul } { 4 29 div sub 108 841 div mul } ifelse } bind { dup 6 29 div ge { dup dup mul mul } { 4 29 div sub 108 841 div mul } ifelse 1.0890 mul} bind] /WhitePoint[0.9505 1 1.0890] dictende ] setcolorspace } if %Ende Standard-Definition PSL2-CIEBasedA PSL12 1 eq %Definition alle PSL1-Geraete { {/setrgbcolor where %Abfrage auf PSL1-Farb-Geraet {pop setrgbcolor} %PSL1-Farb-Geraet {pop 0.4 exp setgray pop} ifelse } %PSL1-SW-Geraet /setcolor exch def} if %LAB* setcolor /xi3g xi2g xi3 add 0.5 mul def L*CIE A*CIE B*CIE setcolor xi2g yi0 yi1a add 0.5 mul moveto xi2g yi3a lineto xi3g yi3a lineto xi3g yi0 yi1a add 0.5 mul lineto closepath fill %lab* setcolor l*CIE 100 mul a*CIE 100 mul b*CIE 100 mul setcolor xi3g yi0 yi1a add 0.5 mul moveto xi3g yi3a lineto xi3 yi3a lineto xi3 yi0 yi1a add 0.5 mul lineto closepath fill %LAB* setcolor adapted L*da A*da B*da setcolor xi2g yi0b yi1b add 0.5 mul moveto xi2g yi3b lineto xi3g yi3b lineto xi3g yi0b yi1b add 0.5 mul lineto closepath fill %lab* setcolor adapted l*CIEda 100 mul a*CIEda 100 mul b*CIEda 100 mul setcolor xi3g yi0b yi1b add 0.5 mul moveto xi3g yi3b lineto xi3 yi3b lineto xi3 yi0b yi1b add 0.5 mul lineto closepath fill % square of colour in olv* co-ordinates o* l* v* setrgbcolor % but this is rgb xi2g yi4 yi5 add 0.5 mul moveto xi2g yi7 lineto xi3 yi7 lineto xi3 yi4 yi5 add 0.5 mul lineto closepath fill % square of colour in cmy* co-ordinates c* m* y* 0 setcmykcolor % but this is cmyk xi2g yi8 yi9 add 0.5 mul moveto xi2g yi11 lineto xi3 yi11 lineto xi3 yi8 yi9 add 0.5 mul lineto closepath fill } for %i=0,7 showpage grestore %} for %xcolor=xcolor1,1,xcolor2 %output showpage %} for %output showpage %%Trailer %%EndDocument EndEPSF grestore gsave BeginEPSF 219 MM 021 MM translate 12 /Times-ISOL1 FS -9 MM -7 MM moveto ( ) show 10 /Times-ISOL1 FS 53 MM 1 MM moveto ( ) show 1 1 scale -77 -91 translate %%BeginDocument: Bild 28 %Zeile 480 %%EndDocument EndEPSF grestore gsave BeginEPSF 219 MM 080 MM add 008 MM translate %80 MM Breite von TestStreifen 10 /Times-ISOL1 FS 53 MM 1 MM moveto () show 1 1 scale -77 21 MM sub -91 translate %%BeginDocument: Bild 29 Teststreifen Ueberlaenge %Zeile 490 %!PS-Adobe-2.0, D1REPS:bbeld-00.eps Rechteckrahmen Dummy 10.12.96 %%BoundingBox: 0 0 595 840 %%EndProlog %Dummy kein Rechteckrahmen showpage %%Trailer %%EndDocument EndEPSF grestore gsave BeginEPSF -0.5 MM -0.5 MM translate %xy-Verschiebung Rechteckrahmen nach innen % %%BeginDocument: Bild 30 %Rechteckrahmen %Zeile 500 %!PS-Adobe-3.0 EPSF-3.0 BVMQR-FF.EPS mit (4/8)XY(P/M) 12.05.2000 %%BoundingBox: 14 08 828 584 % !AUSTAUSCH Times-Roman -> Times-Roman-ISOLatin1=Times-I /Times-Roman findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /Times-ISOL1 exch definefont pop /FS {findfont exch scalefont setfont} bind def /MM {72 25.4 div mul} def %d2:[rr.p6f]COLOR03.EPS /proz1 {pop} bind def /proz2 {sqrt} bind def /setgc {setcmykcolor} bind def /setgm {setcmykcolor} bind def /setgy {setcmykcolor} bind def /setgn {setcmykcolor} bind def /setgf {setcmykcolor} bind def %/setgc {pop pop pop 1 exch sub setgray} bind def %/setgm {pop pop 1 exch sub setgray pop} bind def %/setgy {pop 1 exch sub setgray pop pop} bind def %/setgn {1 exch sub setgray pop pop pop} bind def %/setgf {/ncolor exch def /ycolor exch def % /mcolor exch def /ccolor exch def % 0 ccolor eq 0 mcolor eq and 0 ycolor eq and {1 ncolor sub setgray} % {1 ccolor sub 0.71 mul % 1 mcolor sub 0.22 mul add % 1 ycolor sub 0.07 mul add setgray} ifelse % } bind def /setsc {075 135 {proz1} setscreen } bind def /setsm {075 090 {proz1} setscreen } bind def /setsy {075 000 {proz1} setscreen } bind def /setsn {075 045 {proz1} setscreen } bind def /setsf {075 135 {proz1} 075 090 {proz1} 075 000 {proz1} 075 045 {proz1} setcolorscreen } bind def /setcmykcolorf {setcmykcolor setsf} bind def %fuer PSL1/2-Farbgeraet %ANFA HALBTON /Halbt { %wrbie:HALBTOA0.eps } bind def %ANFA CMYKDEF %CMYKDEA0 (A0=Standard-Drucker-CMYKDEF) 15.3.97 /tzac [1.000 0.933 0.867 0.800 0.733 0.667 0.600 0.533 0.467 0.400 0.333 0.267 0.200 0.132 0.067 0.000 1.000 0.750 0.500 0.250 0.000] def /tzam [1.000 0.933 0.867 0.800 0.733 0.667 0.600 0.533 0.467 0.400 0.333 0.267 0.200 0.132 0.067 0.000 1.000 0.750 0.500 0.250 0.000] def /tzay [1.000 0.933 0.867 0.800 0.733 0.667 0.600 0.533 0.467 0.400 0.333 0.267 0.200 0.132 0.067 0.000 1.000 0.750 0.500 0.250 0.000] def /tzan [1.000 0.933 0.867 0.800 0.733 0.667 0.600 0.533 0.467 0.400 0.333 0.267 0.200 0.132 0.067 0.000 1.000 0.750 0.500 0.250 0.000] def /tza0 [0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000] def /tza1 [1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000] def %ENDE CMYKD %ANFA SETCMYK /setcmyknew { %Ersatz setcolornew durch setcmykcolor1 ausz 1 eq {setgc half 0 eq {setsc} if} if %C ausz 2 eq {setgm half 0 eq {setsm} if} if %M ausz 3 eq {setgy half 0 eq {setsy} if} if %Y ausz 4 eq {pop pop pop /ccolor exch def ccolor 0 0 0 /setcmykcolor where %Abfrage Farb-/SW-Geraet {pop setcmykcolorf} %PSL1/2-Farb-Geraet {setgc setsc} %PSL1-SW-Geraet ifelse } if %Cbunt ausz 5 eq {pop pop /mcolor exch def pop 0 mcolor 0 0 /setcmykcolor where %Abfrage Farb-/SW-Geraet {pop setcmykcolorf} %PSL1/2-Farb-Geraet {setgm setsm} %PSL1-SW-Geraet ifelse } if %Mbunt ausz 6 eq {pop /ycolor exch def pop pop 0 0 ycolor 0 /setcmykcolor where %Abfrage Farb-/SW-Geraet {pop setcmykcolorf} %PSL1/2-Farb-Geraet {setgy setsy} %PSL1-SW-Geraet ifelse } if %Ybunt ausz 7 eq {setgn half 0 eq {setsn} if} if %N ausz 8 ge { /setcmykcolor where %Abfrage Farb-/SW-Geraet {pop setcmykcolorf} %PSL1/2-Farb-Geraet {setgf setsn} %PSL1-SW-Geraet ifelse } if %bei ausz=8: Farb- oder SW-Ausdruck je nach Drucker } bind def /rec %x, y width heigth {/heigth exch def /width exch def moveto width 0 rlineto 0 heigth rlineto width neg 0 rlineto closepath } bind def /colrecfi %x y width heigth c m y n {setcmyknew rec fill} bind def /colrecst %x y width heigth c m y n {setcmyknew rec stroke} bind def /tzo {0.0 1.0 1.0 0.0} bind def %Reproduktionsfarben /tzl {1.0 0.0 1.0 0.0} bind def /tzv {1.0 1.0 0.0 0.0} bind def /tzc {1.0 0.0 0.0 0.0} bind def /tzm {0.0 1.0 0.0 0.0} bind def /tzy {0.0 0.0 1.0 0.0} bind def /tzn {0.0 0.0 0.0 1.00} bind def %Graureihe /tzd {0.0 0.0 0.0 0.75} bind def /tzz {0.0 0.0 0.0 0.50} bind def /tzh {0.0 0.0 0.0 0.25} bind def /tzw {0.0 0.0 0.0 0.00} bind def /tfo {tzo setcmyknew} bind def /tfl {tzl setcmyknew} bind def /tfv {tzv setcmyknew} bind def /tfc {tzc setcmyknew} bind def /tfm {tzm setcmyknew} bind def /tfy {tzy setcmyknew} bind def /tfn {tzn setcmyknew} bind def /tfd {tzd setcmyknew} bind def /tfz {tzz setcmyknew} bind def /tfh {tzh setcmyknew} bind def /tfw {tzw setcmyknew} bind def %ANFA OUTLINO0 951204 /pixf 1.0 def /ueg {1.6 pixf mul} bind def /uek {0.8 pixf mul} bind def /ues {0.7 pixf mul} bind def /pxd uek def /pyd uek def /pxwd ueg def /pywd ueg def /outxshowf {show} bind def /outxshow {show} bind def /SK {250 16.67 div 1 sub pixf mul /Symbol FS} bind def /SM {300 16.67 div 1 sub pixf mul /Symbol FS} bind def /SG {350 16.67 div 1 sub pixf mul /Symbol FS} bind def /outSK {250 16.67 div 1 sub pixf mul /Symbol FS outxshow} bind def /outSM {300 16.67 div 1 sub pixf mul /Symbol FS outxshow} bind def /outSG {350 16.67 div 1 sub pixf mul /Symbol FS outxshow} bind def /outshowf {setcmyknew show} bind def /outrecfi { %x y width heigth c m y k setcmyknew rec fill} bind def /outrecfi4 { %x y width heigth c m y k outrecfi} bind def /outrecfi3 { %x y width heigth c m y k outrecfi} bind def /outrecfi2 { %x y width heigth c m y k outrecfi} bind def /outlinetos { %px py c m y k setcmyknew lineto stroke} bind def /outstroke { %px1 py1 curveto ... curveto c m y k setcmyknew stroke} bind def /A4quer {598 0 translate 90 rotate} def %%EndProlog %!A4quer gsave %LANINDL1 START 20000105 /lanind 0 def /lantex [(G) (E) (S) (N) (I) (J)] def /showde {0 lanind eq {show} {pop} ifelse} bind def /showen {1 lanind eq {show} {pop} ifelse} bind def /showes {2 lanind eq {show} {pop} ifelse} bind def /showfr {3 lanind eq {show} {pop} ifelse} bind def /showit {4 lanind eq {show} {pop} ifelse} bind def /showjp {5 lanind eq {show} {pop} ifelse} bind def /showm {6 lanind eq {show} {pop} ifelse} bind def /popde {0 lanind ne {pop} if} bind def /popen {1 lanind ne {pop} if} bind def /popes {2 lanind ne {pop} if} bind def /popfr {3 lanind ne {pop} if} bind def /popit {4 lanind ne {pop} if} bind def /popjp {5 lanind ne {pop} if} bind def /popm {6 lanind ne {pop} if} bind def /popxde {/n exch def 0 lanind ne {n {pop} repeat} if} bind def /popxen {/n exch def 1 lanind ne {n {pop} repeat} if} bind def /popxes {/n exch def 2 lanind ne {n {pop} repeat} if} bind def /popxfr {/n exch def 3 lanind ne {n {pop} repeat} if} bind def /popxit {/n exch def 4 lanind ne {n {pop} repeat} if} bind def /popxjp {/n exch def 5 lanind ne {n {pop} repeat} if} bind def /popxm {/n exch def 6 lanind ne {n {pop} repeat} if} bind def /lanindg where {pop /lanind1 lanindg def /lanind2 lanindg def} {/lanind1 0 def /lanind2 6 def} ifelse lanind1 1 lanind2 {/lanind exch def %output showpage /GSS$ where {pop /LSS$ GSS$ def} {/LSS$ (1) def} ifelse /GSX$ where {pop /LSX$ GSX$ def} {/LSX$ (3) def} ifelse /GSY$ where {pop /LSY$ GSY$ def} {/LSY$ (0) def} ifelse /GEX$ where {pop /LEX$ GEX$ def} {/LEX$ (.PDF) def} ifelse gsave %LANINDL1 END /ausz 7 def /half 3 def Halbt 1.0 1.0 1.0 1.0 setcmyknew 1.0 1.0 scale 0.5 MM 0.5 MM translate 0.15 MM setlinewidth /x 20 array def /y 20 array def /d 20 array def /x [000 296 296 000 002 294 294 002 004 292 292 004 006 290 290 006 008 288 288 008 ] def /y [000 000 210 210 002 002 208 208 004 004 206 206 006 006 204 204 008 008 202 202 ] def /d [060 017 -60 -17 058 015 -58 -15 056 013 -56 -13 054 011 -54 -11 052 009 -52 -09 ] def /xlu 017 MM def /ylu 017 MM def /xro 279 MM def /yro 193 MM def /xlo 017 MM def /ylo 193 MM def /xru 279 MM def /yru 017 MM def 12 4 16 {/i exch def /i0 i def %i=0,16 %0 4 16 {/i exch def /i0 i def %i=0,16 /i1 i0 1 add def /i2 i0 2 add def /i3 i0 3 add def i 16 eq {0.30 MM setlinewidth} {0.15 MM setlinewidth} ifelse tfn x i0 get MM y i0 get MM moveto x i1 get MM y i1 get MM lineto x i2 get MM y i2 get MM lineto x i3 get MM y i3 get MM lineto x i0 get MM y i0 get MM lineto stroke i 16 eq {6 /Times-ISOL1 FS /x00 67 def /xdif 32 def /y0o 202.3 def /y0u 6.3 def /x0l 6.1 def /x0r 288 def /y00 22 def /ydif 32 def x00 xdif 0 mul add MM y0o MM moveto (V) show x00 xdif 0 mul add MM y0u MM moveto (C) show x00 xdif 1 mul add MM y0o MM moveto (L) show x00 xdif 1 mul add MM y0u MM moveto (M) show x00 xdif 2 mul add MM y0o MM moveto (O) show x00 xdif 2 mul add MM y0u MM moveto (Y) show x00 xdif 3 mul add MM y0o MM moveto (Y) show x00 xdif 3 mul add MM y0u MM moveto (O) show x00 xdif 4 mul add MM y0o MM moveto (M) show x00 xdif 4 mul add MM y0u MM moveto (L) show x00 xdif 5 mul add MM y0o MM moveto (C) show x00 xdif 5 mul add MM y0u MM moveto (V) show x0l MM y00 ydif 0 mul add MM moveto (V) show x0r MM y00 ydif 0 mul add MM moveto (C) show x0l MM y00 ydif 1 mul add MM moveto (L) show x0r MM y00 ydif 1 mul add MM moveto (M) show x0l MM y00 ydif 2 mul add MM moveto (O) show x0r MM y00 ydif 2 mul add MM moveto (Y) show x0l MM y00 ydif 3 mul add MM moveto (Y) show x0r MM y00 ydif 3 mul add MM moveto (O) show x0l MM y00 ydif 4 mul add MM moveto (M) show x0r MM y00 ydif 4 mul add MM moveto (L) show x0l MM y00 ydif 5 mul add MM moveto (C) show x0r MM y00 ydif 5 mul add MM moveto (V) show } if } for %i=0,16 0 1 10 {/j0 exch def /j1 j0 1 add def %j0 j0 0 eq {tfc} if j0 1 eq {tfn} if j0 2 eq {tfm} if j0 3 eq {tfn} if j0 4 eq {tfy} if j0 5 eq {tfn} if j0 6 eq {tfo} if j0 7 eq {tfn} if j0 8 eq {tfl} if j0 9 eq {tfn} if j0 10 eq {tfv} if 12 4 16 {/i exch def /i0 i def %i=0,16 %0 4 16 {/i exch def /i0 i def %i=0,16 /i1 i0 1 add def /i2 i0 2 add def /i3 i0 3 add def i 16 eq {0.30 MM setlinewidth} {0.15 MM setlinewidth} ifelse x i0 get d i0 get add 16 j0 mul add MM y i0 get MM moveto x i0 get d i0 get add 16 j1 mul add MM y i0 get MM lineto stroke x i1 get MM y i1 get d i1 get add 16 j0 mul add MM moveto x i1 get MM y i1 get d i1 get add 16 j1 mul add MM lineto stroke x i2 get d i2 get add 16 j0 mul sub MM y i2 get MM moveto x i2 get d i2 get add 16 j1 mul sub MM y i2 get MM lineto stroke x i3 get MM y i3 get d i3 get add 16 j0 mul sub MM moveto x i3 get MM y i3 get d i3 get add 16 j1 mul sub MM lineto stroke } for %i=0,16 } for %j0 0.15 MM setlinewidth /s 7 MM def /s1 8 MM def /s5 36 MM def 16 1 20 {/j exch def /j0 j 16 sub def /ix0 xlu 8 MM add j0 7 MM mul add def /iy0 ylu 8 MM sub def j 16 eq {ix0 0.5 MM sub iy0 0.5 MM sub s5 s1 0.0 0.0 tzan j get 0.0 outrecfi} if ix0 iy0 s s 0.0 0.0 tzan j get 0.0 outrecfi /ix0 xru 43 MM sub j0 7 MM mul add def /iy0 yru 8 MM sub def j 16 eq {ix0 0.5 MM sub iy0 0.5 MM sub s5 s1 0.0 0.0 0.0 tzan j get outrecfi} if ix0 iy0 s s 0.0 0.0 0.0 tzan j get outrecfi /ix0 xlo 8 MM add j0 7 MM mul add def /iy0 ylo 1 MM add def j 16 eq {ix0 0.5 MM sub iy0 0.5 MM sub s5 s1 tzan j get 0.0 0.0 0.0 outrecfi} if ix0 iy0 s s tzan j get 0.0 0.0 0.0 outrecfi /ix0 xro 43 MM sub j0 7 MM mul add def /iy0 yro 1 MM add def j 16 eq {ix0 0.5 MM sub iy0 0.5 MM sub s5 s1 0.0 tzan j get 0.0 0.0 outrecfi} if ix0 iy0 s s 0.0 tzan j get 0.0 0.0 outrecfi %j 20 eq {tfn ix0 s add iy0 moveto 0 s rlineto stroke} if } for %j tfn xlu 8 MM sub ylu moveto 16 MM 0 rlineto stroke xlu ylu 8 MM sub moveto 0 58 MM rlineto stroke xro 8 MM add yro moveto -58 MM 0 rlineto stroke xro yro 8 MM add moveto 0 -58 MM rlineto stroke xru 8 MM sub yru moveto 16 MM 0 rlineto stroke xru yru 8 MM sub moveto 0 16 MM rlineto stroke xlo 8 MM add ylo moveto -16 MM 0 rlineto stroke xlo ylo 8 MM add moveto 0 -16 MM rlineto stroke 1 2 7 {/i exch def %Zentrierkreise xlu ylu i MM 0 360 arc stroke xro yro i MM 0 360 arc stroke xru yru i MM 0 360 arc stroke xlo ylo i MM 0 360 arc stroke } for %i tfn %mitte %000 MM 105 MM moveto 08 MM 00 MM rlineto stroke %296 MM 105 MM moveto -8 MM 00 MM rlineto stroke %148 MM 000 MM moveto 00 MM 08 MM rlineto stroke %148 MM 210 MM moveto 00 MM -8 MM rlineto stroke tfn %rows %050 MM 000 MM moveto 00 MM 08 MM rlineto stroke %246 MM 000 MM moveto 00 MM 08 MM rlineto stroke %050 MM 210 MM moveto 00 MM -08 MM rlineto stroke %246 MM 210 MM moveto 00 MM -08 MM rlineto stroke %000 MM 050 MM moveto 08 MM 00 MM rlineto stroke %000 MM 160 MM moveto 08 MM 00 MM rlineto stroke %296 MM 050 MM moveto -08 MM 00 MM rlineto stroke %296 MM 160 MM moveto -08 MM 00 MM rlineto stroke %050 MM 000 MM moveto -08 MM 08 MM rlineto stroke %246 MM 000 MM moveto -08 MM 08 MM rlineto stroke %050 MM 210 MM moveto -08 MM -08 MM rlineto stroke %246 MM 210 MM moveto -08 MM -08 MM rlineto stroke %000 MM 050 MM moveto 08 MM -08 MM rlineto stroke %000 MM 160 MM moveto 08 MM -08 MM rlineto stroke %296 MM 050 MM moveto -08 MM -08 MM rlineto stroke %296 MM 160 MM moveto -08 MM -08 MM rlineto stroke %050 MM 000 MM moveto 08 MM 08 MM rlineto stroke %246 MM 000 MM moveto 08 MM 08 MM rlineto stroke %050 MM 210 MM moveto 08 MM -08 MM rlineto stroke %246 MM 210 MM moveto 08 MM -08 MM rlineto stroke %000 MM 050 MM moveto 08 MM 08 MM rlineto stroke %000 MM 160 MM moveto 08 MM 08 MM rlineto stroke %296 MM 050 MM moveto -08 MM 08 MM rlineto stroke %296 MM 160 MM moveto -08 MM 08 MM rlineto stroke 6 /Times-Roman FS 018 MM 008.2 MM moveto (-8) show 018 MM 006.2 MM moveto (-6) show %018 MM 004.2 MM moveto (-4) show %018 MM 002.2 MM moveto (-2) show 276 MM 008.2 MM moveto (-8) show 276 MM 006.2 MM moveto (-6) show %276 MM 004.2 MM moveto (-4) show %276 MM 002.2 MM moveto (-2) show 018 MM 202.2 MM moveto (-8) show 018 MM 204.2 MM moveto (-6) show %018 MM 206.2 MM moveto (-4) show %018 MM 208.2 MM moveto (-2) show 276 MM 202.2 MM moveto (-8) show 276 MM 204.2 MM moveto (-6) show %276 MM 206.2 MM moveto (-4) show %276 MM 208.2 MM moveto (-2) show tfn 12 /Times-ISOL1 FS 62 MM 12 MM moveto (Pr\374fvorlage Nr. ) showde (Test chart no. ) showen (Test chart no. ) showes (Test chart no. ) showfr (Test chart no. ) showit (Test chart no. ) showjp (Test chart no. ) showm LSX$ show LSY$ show ( fuer Farbcodes: ) showde ( for Colour Codes: ) showen ( for Colour Codes: ) showes ( for Colour Codes: ) showfr ( for Colour Codes: ) showit ( for Colour Codes: ) showjp ( for Colour Codes: ) showm (Basis-Koordinaten + kein Transfer) showde (Basic coordinates + no transfer) showen (Basic coordinates + no transfer) showes (Basic coordinates + no transfer) showfr (Basic coordinates + no transfer) showit (Basic coordinates + no transfer) showjp (Basic coordinates + no transfer) showm %12 /TimesI-ISOL1 FS %(: CMYOLVNW*) show 12 /Times-ISOL1 FS 12 MM 186 MM moveto -90 rotate (Technische Informationen: ) showde (Technical information: ) showen (Informaci\363n t\351cnica en: ) showes (Technical information: ) showfr (Technical information: ) showit (Technical information: ) showjp (Technical information: ) showm (http://o2.ps.bam.de) show 90 rotate 12 MM 105 MM moveto -90 rotate (Bilddatei\255Version 1.4, 20010101, D7510) showde (Image file version 1.4, 20010101, D7510) showen (Image file version 1.4, 20010101, D7510) showes (Image file version 1.4, 20010101, D7510) showfr (Image file version 1.4, 20010101, D7510) showit (Image file version 1.4, 20010101, D7510) showjp (Image file version 1.4, 20010101, D7510) showm LSS$ show LSX$ show LSY$ show 90 rotate 281 MM 186 MM moveto -90 rotate (BAM\255Registrierung: 20010101\2557510) showde (BAM registration: 20010101\255D7510) showen (BAM registration: 20010101\255D7510) showes (BAM registration: 20010101\255D7510) showfr (BAM registration: 20010101\255D7510) showit (BAM registration: 20010101\255D7510) showjp (BAM registration: 20010101\255D7510) showm LSS$ show LSX$ show LSY$ show 90 rotate 281 MM 112 MM moveto -90 rotate (BAM\255Referenz\255Material: Code=rha4ra\255D7510) showde (BAM\255Reference material: code=rha4ra\255D7510) showen (BAM\255Reference material: code=rha4ra\255D7510) showes (BAM\255Reference material: code=rha4ra\255D7510) showfr (BAM\255Reference material: code=rha4ra\255D7510) showit (BAM\255Reference material: code=rha4ra\255D7510) showjp (BAM\255Reference material: code=rha4ra\255D7510) showm LSS$ show LSX$ show LSY$ show 90 rotate 61 MM 196 MM moveto (www.ps.bam.de/INFD) show LSS$ show (07/7510/L7510) show LSS$ show %LSX$ show LSY$ show LEX$ show (; Farbcodes: CIELAB, olv*, cmy*, sRGB) showde (; Colour codes: CIELAB, olv*, cmy*, sRGB) showen (; Colour codes: CIELAB, olv*, cmy*, sRGB) showes (; Colour codes: CIELAB, olv*, cmy*, sRGB) showfr (; Colour codes: CIELAB, olv*, cmy*, sRGB) showit (; Colour codes: CIELAB, olv*, cmy*, sRGB) showjp (; Colour codes: CIELAB, olv*, cmy*, sRGB) showm showpage grestore } for %output with langind end %%Trailer %%EndDocument EndEPSF grestore gsave showpage grestore %} for %outlanguage with lanindg end %%Trailer