%!PS-Adobe-3.0 EPSF-3.0 www.ps.bam.de/LE81/10L/L81E00XX.PS 20070901 %%BoundingBox: 00 00 414 292 /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: www.ps.bam.de/LE81/LE81.HTM) /Author (compare K. Richter "Computergrafik ...": ISBN 3-8007-1775-1) /Subject (goto: www.ps.bam.de or http://o2.ps.bam.de) /Keywords (image reproduction, colour devices) /Creator (klaus.richter@bam.de) /CreationDate (D:2007090112000) /ModDate (D:2007090112000) /DOCINFO pdfmark [ /View [ /Fit ] /DOCVIEW pdfmark %BEG LE81/10L/L81N00ZED NO Output Linearization LAB* -> cmyolvnw* 20030101 %BEG OUTLIN10.PS /MTLoutaS0g 21 array def /MTLoutaS0g [18.01 23.17 28.33 33.49 38.65 43.81 48.97 54.13 59.29 64.45 69.61 74.77 79.93 85.09 90.25 95.41 18.01 37.36 56.71 76.06 95.41] def %FILE PREPARED FOR MIXED MODE, e. g. input ORS and output TLS /IMES 0 def %0=LAB* used, no reflection factor necessary %/IMES 1 def /Yre 2.52 def %1=XYZ measurement and standard device reflection /i*ptrsc 0 def %LAB* setcolor to cmy0* / 000n* setcmykcolor %/i*ptrsc 1 def %LAB* setcolor to olv* setrgbcolor / w* setgray %/i*ptrsc 2 def %LAB* setcolor to cmy0* / nnn0* setcmykcolor %/i*ptrsc 3 def %LAB* setcolor to olv* / www* setrgbcolor %/i*ptrsc 4 def %LAB* setcolor to lab* setcolor %/i*ptrsc 5 def %LAB* setcolor to LAB* setcolor %/i*ptrsc 6 def %LAB* setcolor to 000n* setcmykcolor %/i*ptrsc 7 def %LAB* setcolor to w* setgray %/ISYSLAB 0 def %default input for Offset Reflective System (ORS18) %/ISYSTEM 0 def %default output for Offset Reflective System (ORS18) /ISYSLAB 1 def %input for Television Luminous System (TLS00) /ISYSTEM 1 def %output for Television Luminous System (TLS00) %/ISYSLAB 2 def %input for Device Reflective measurement system (DRSXX) %/ISYSTEM 2 def %output for Device Reflective measurement system (DRSXX) %/ISYSLAB 3 def %input for Television Luminous Reflection System (TLS18) %/ISYSTEM 3 def %output for Television Luminous Reflection System (TLS18) %/ISYSLAB 4 def %input for Device Luminous measurement system (DLSXX) %/ISYSTEM 4 def %output for Device Luminous measurement system (DLSXX) /iLAB 0 def % for preparing input-output system data only once %END LE81/10L/EARLY BINDING %END LE81/10L/L81N00ZED NO Output Linearisation (OL) LAB* -> cmyolvnw* 20030101 %BEG LE81/10L/OUTLIN1XNA.PS MXYZ_to_LAB* 20030101 %BEG LE81/10L/EARLY BINDING AND SYSTEM (ONLY USED IN CASE OF OL) /sggray {setgray} bind def /sgrgbcolor {setrgbcolor} bind def /sgcmykcolor {setcmykcolor} bind def /sgtransfer {settransfer} bind def /sgcolortransfer {setcolortransfer} bind def /sgcolor {setcolor} bind def %END LE81/10L/EARLY BINDING AND SYSTEM (ONLY USED IN CASE OF OL) %INTENDED, START and LINEARIZED OUTPUT OF 16 STEP GREY (GLOBAL TO BE CHANGED) /MTLoutaS0g 21 array def /MTLoutaS1g 16 array def /MTLoutaS2g 16 array def %absolute lightness L* output %theoretical standard absolute linear L* output: no change of output %do not change the following two lines of output data /MTLoutaS0g [18.01 23.17 28.33 33.49 38.65 43.81 48.97 54.13 59.29 64.45 69.61 74.77 79.93 85.09 90.25 95.41 18.01 37.36 56.71 76.06 95.41] def %theoretical absolute square root (Exp. 0.5) L* output %/MTLoutaS1g [18.0 38.0 46.3 52.6 58.0 62.7 67.0 70.9 % 74.5 78.0 81.2 83.4 87.2 90.1 92.8 95.4] def %change the following two lines for the 16 start grey CIELAB L* output data /MTLoutaS1g [18.01 23.17 28.33 33.49 38.65 43.81 48.97 54.13 59.29 64.45 69.61 74.77 79.93 85.09 90.25 95.41] def %theoretical absolute half square (Exp. 1.5) L* output %/MTLoutaS2g [18.0 19.3 21.8 24.9 28.7 32.9 37.6 42.7 % 48.1 54.0 60.1 66.6 74.3 80.4 87.8 95.4] def %change the following two lines for the 16 linearized grey CIELAB L* output data /MTLoutaS2g [18.01 23.17 28.33 33.49 38.65 43.81 48.97 54.13 59.29 64.45 69.61 74.77 79.93 85.09 90.25 95.41] def %BEG Procedure special input XYZ to be transferred to LAB* /MXYZ_to_LAB* {%BEG MXYZ_to_LAB* /XD65 95.05 def /YD65 100.00 def /ZD65 108.90 def /Xwref XD65 0.8859 mul def %wref=white reference /Ywref YD65 0.8859 mul def /Zwref ZD65 0.8859 mul def /Xnref XD65 Yre 100 div mul def %nref=black reference /Ynref YD65 Yre 100 div mul def /Znref ZD65 Yre 100 div mul def 0 16 240 {/j exch def %j=0,112,16 %Asumption END point "white" /i10 j 4 mul 1 add def /i20 i10 15 4 mul add def 0 1 15 {/i exch def %i=0,15 /i2i1 i10 i 4 mul add def /i2i2 i2i1 1 add def /i2i3 i2i1 2 add def /XQ MISO_S1gXYZ i2i1 get MISO_S1gXYZ i20 0 add get div Xwref mul Xnref add XD65 div def /YQ MISO_S1gXYZ i2i2 get MISO_S1gXYZ i20 1 add get div Ywref mul Ynref add YD65 div def /ZQ MISO_S1gXYZ i2i3 get MISO_S1gXYZ i20 2 add get div Zwref mul Znref add ZD65 div def XQ 0 lt {/XQ 0.00000001 def} if YQ 0 lt {/YQ 0.00000001 def} if ZQ 0 lt {/ZQ 0.00000001 def} if MISO_S1g i2i1 YQ 0.008856 lt {903.3 YQ mul} {YQ 0.33333333 exp 116 mul 16 sub} ifelse put MISO_S1g i2i2 XQ 0.008856 lt {7.787 XQ mul 16 116 div add} {XQ 0.33333333 exp} ifelse YQ 0.008856 lt {7.787 YQ mul 16 116 div add} {YQ 0.33333333 exp} ifelse sub 500 mul put MISO_S1g i2i3 YQ 0.008856 lt {7.787 YQ mul 16 116 div add} {YQ 0.33333333 exp} ifelse ZQ 0.008856 lt {7.787 ZQ mul 16 116 div add} {ZQ 0.33333333 exp} ifelse sub 200 mul put } for %i=0,15 } for %j=0,240,16 } bind def %END Procedure MXYZ_to_LAB* %END LE81/10L/OUTLIN1XNA.PS MXYZ_to_LAB* 20030101 /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 %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 /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 /colrecfiLAB* %x y width heigth LAB* { setcolor rec fill} bind def /colrecstLAB* %x y width heigth LAB* { setcolor rec stroke} bind def /colrecficmyn* %x y width heigth cmy0* or 000n* { setcmykcolor rec fill} bind def /colrecstcmyn* %x y width heigth cmy0* or 000n* { setcmykcolor rec stroke} bind def /colrecfiw* %x y width heigth w* { setgray rec fill} bind def /colrecstw* %x y width heigth w* { setgray rec stroke} bind def /colrecfiolv* %x y width heigth olv* { setrgbcolor rec fill} bind def /colrecstolv* %x y width heigth olv* { setrgbcolor rec stroke} bind def /tzocmy0* {0.0 1.0 1.0 0.0} bind def %Reproduction colours /tzlcmy0* {1.0 0.0 1.0 0.0} bind def %cmyn* setcmykcolor /tzvcmy0* {1.0 1.0 0.0 0.0} bind def /tzccmy0* {1.0 0.0 0.0 0.0} bind def /tzmcmy0* {0.0 1.0 0.0 0.0} bind def /tzycmy0* {0.0 0.0 1.0 0.0} bind def /tzoolv* {1.0 0.0 0.0} bind def %Reproduction colours /tzlolv* {0.0 1.0 0.0} bind def %olv* setrgbcolor /tzvolv* {0.0 0.0 1.0} bind def /tzcolv* {0.0 1.0 1.0} bind def /tzmolv* {1.0 0.0 1.0} bind def /tzyolv* {1.0 1.0 0.0} bind def /tzoLAB* [53.34 72.46 50.66] def %Reproduction colours /tzlLAB* [84.93 -79.83 74.80] def %LAB* setcolor /tzvLAB* [32.20 24.88 -37.89] def /tzcLAB* [88.10 -44.88 -13.36] def /tzmLAB* [59.66 90.32 -19.65] def /tzyLAB* [93.76 -20.24 85.93] def /tzncmy0* {1.00 1.00 1.00 0.00} bind def %grey series /tzdcmy0* {0.75 0.75 0.75 0.00} bind def %cmy0* setcmykcolor /tzzcmy0* {0.50 0.50 0.50 0.00} bind def /tzhcmy0* {0.25 0.25 0.25 0.00} bind def /tzwcmy0* {0.00 0.00 0.00 0.00} bind def /tzn000n* {0.00 0.00 0.00 1.00} bind def %grey series 000n* /tzd000n* {0.00 0.00 0.00 0.75} bind def %000n* setcmykcolor /tzz000n* {0.00 0.00 0.00 0.50} bind def /tzh000n* {0.00 0.00 0.00 0.25} bind def /tzw000n* {0.00 0.00 0.00 0.00} bind def /tznw* {0.00} bind def %grey series /tzdw* {0.25} bind def %w* setgray /tzzw* {0.50} bind def /tzhw* {0.75} bind def /tzww* {1.00} bind def /tznolv* {0.00 0.00 0.00} bind def %grey series /tzdolv* {0.25 0.25 0.25} bind def %olv* setrgbcolor /tzzolv* {0.50 0.50 0.50} bind def /tzholv* {0.75 0.75 0.75} bind def /tzwolv* {1.00 1.00 1.00} bind def /tznLAB* [18.01 0.00 0.00] def %grey series /tzdLAB* [37.36 0.00 0.00] def %LAB* setcolor /tzzLAB* [56.71 0.00 0.00] def /tzhLAB* [76.06 0.00 0.00] def /tzwLAB* [95.41 0.00 0.00] def /tfn {0 setgray} bind def /tfw {1 setgray} bind def /A4quer {598 0 translate 90 rotate} def %0 %1 /cvishow {cvi 6 string cvs show} def /cvsshow1 {10 mul cvi 0.1 mul 7 string cvs show} def /cvsshow2 {100 mul cvi 0.01 mul 7 string cvs show} def /cvsshow3 {1000 mul cvi 0.001 mul 7 string cvs show} def /tzank [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 %BEG 61 lines comment or new PS operators possible %02 %03 %04 %05 %06 %07 %08 %09 %11 %12 %13 %14 %15 %16 %17 %18 %19 %21 %22 %23 %24 %25 %26 %27 %28 %29 %31 %32 %33 %34 %35 %36 %37 %38 %39 %41 %42 %43 %44 %45 %46 %47 %48 %49 %51 %52 %53 %54 %55 %56 %57 %58 %59 %61 %62 %63 %64 %65 %66 %67 %68 %69 %END 71 lines comment or new PS operators possible %%EndProlog %%BeginPageSetup /#copies 1 def %A4quer 0.5 0.5 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 /SC$ [(N) (F) (S) (D) (T) (E) (C)] 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 /EX$ [(1.PS/.TXT) (B.PS/.BMP) (G.PS/.GIF) (H.PS/.HTM) (I.PS/.HTM) (J.PS/.JPE) (P.PS/.PDF) (T.PS/.TIF)] def /EY$ [(1.DAT) (B.DAT) (G.DAT) (H.DAT) (I.DAT) (J.DAT) (P.DAT) (T.DAT)] def /lanindg1 1 def /lanindg2 1 def /colormg1 0 def /colormg2 0 def /xcolorg1 0 def /xcolorg2 0 def /xchartg1 0 def /xchartg2 0 def /lanindg lanindg1 def %no loops /colormg colormg1 def /xcolorg xcolorg1 def /xchartg xchartg1 def /GSS$ SS$ lanindg get def /GSC$ SC$ colormg get def /GSX$ SX$ xcolorg get def /GSY$ SY$ xchartg get def /GEX$ EX$ 0 get def /GEY$ EY$ 0 get def gsave BeginEPSF 28 MM 197 MM translate 10 /Times-ISOL1 FS 1 1 scale -77 -91 translate %%BeginDocument: Bild 10 %line 329 %%EndDocument EndEPSF grestore gsave BeginEPSF 28 MM 152 MM translate 10 /Times-ISOL1 FS 53 MM 1 MM moveto ( ) show 1 1 scale -77 -91 translate %%BeginDocument: Bild 11 %!PS-Adobe-3.0 EPSF-3.0 LE81:L10-1N.EPS 20030301 %%BoundingBox: 70 90 226 206 /FS {findfont exch scalefont setfont} bind def /MM {72 25.4 div mul} def %%EndProlog gsave 8 /Times-Roman FS 72 83 moveto %!2 (LE81:L10-1N.EPS) show 72 90 translate %! 0.01 MM 0.01 MM scale %! 15 setlinewidth %! 0 0 moveto 5400 0 rlineto 0 4000 rlineto -5400 0 rlineto %! closepath stroke grestore showpage %%Trailer %line 339 %%EndDocument EndEPSF grestore gsave BeginEPSF 86 MM 152 MM translate 10 /Times-ISOL1 FS 53 MM 1 MM moveto ( ) show 1 1 scale -77 -91 translate %%BeginDocument: Bild 12 %line 349 %%EndDocument EndEPSF grestore gsave BeginEPSF 28 MM 108 MM translate 10 /Times-ISOL1 FS 53 MM 1 MM moveto ( ) show 1 1 scale -77 -91 translate %%BeginDocument: Bild 13 %!PS-Adobe-3.0 EPSF-3.0 M8751-7, LE810-3N 20070901 %%BoundingBox: 70 80 395 332 %START PDFDE011.EPS /pdfmark03 where {pop} {userdict /pdfmark03 /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: Image Technology) /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:2007090112000) /ModDate (D:2007090112000) /DOCINFO pdfmark03 [ /View [ /FitB ] /DOCVIEW pdfmark03 %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 offset-colours in the LAB* system, compare ISO/IEC 15775 % If these require changing only need to change them here /C*LAB* [ 58.62 -32.63 -42.75 ] def % cyan in LAB* /M*LAB* [ 48.13 75.20 -6.80 ] def % magenta in LAB* /Y*LAB* [ 90.37 -11.16 96.17 ] def % yellow in LAB* /O*LAB* [ 47.94 65.31 52.07 ] def % orange in LAB* /L*LAB* [ 50.90 -62.97 36.71 ] def % leafgreen in LAB* /V*LAB* [ 25.72 31.45 -44.36 ] def % violet in LAB* /N*LAB* [ 18.01 0.50 -0.47 ] def % black (noir=n) in LAB* /W*LAB* [ 95.41 -0.99 4.76 ] def % white /Ns*LAB* [ 18.01 0.50 -0.47 ] def % system dapted black (noir=n) in LAB* -> 18.01, 0, 0 for sysada=1 /Ws*LAB* [ 95.41 -0.99 4.76 ] def % system adapted white -> 95.41, 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-ISOL1 FS 72 83 moveto ( LE810-3, ) show (CIE- und Miescher-Elementarfarben: ORS18a (L*=18-95)) popde %08751-7 1 (CIE and Miescher elementary colours: ORS18a (L*=18-95)) popen %18751-7 1 (CIE and Miescher elementary colours: ORS18a (L*=18-95)) popes %28751-7 1 (CIE and Miescher elementary colours: ORS18a (L*=18-95)) popfr %38751-7 1 (CIE and Miescher elementary colours: ORS18a (L*=18-95)) popit %48751-7 1 (CIE and Miescher elementary colours: ORS18a (L*=18-95)) popjp %58751-7 1 show ( (olv*/cmy* SGcode=64-192)) 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 % definitions of CIE-test colours in the LAB* system, compare ISO/IEC 15775 % If these require changing only need to change them here /C*LABd* [ 39.92 58.74 27.99] def % R: CIE-TF09 ISO/IEC 15775 Tab. 2 /M*LABd* [ 81.26 -2.89 71.56] def % J: CIE-TF10 ISO/IEC 15775 Tab. 2 /Y*LABd* [ 52.23 -42.42 13.60] def % G: CIE-TF11 ISO/IEC 15775 Tab. 2 /O*LABd* [ 30.57 1.41 -46.47] def % B: CIE-TF12 ISO/IEC 15775 Tab. 2 /L*LABd* [ 49.10 65.72 39.10] def % R: Miescher calculated LM82 xyY->LAB* /V*LABd* [ 89.76 -9.27 91.55] def % J: Miescher /N*LABd* [ 53.15 -53.53 13.56] def % G: Miescher /W*LABd* [ 35.68 12.66 -43.85] def % B: Miescher /Nd*LAB* [ 18.01 0.50 -0.47 ] def % device dapted black (noir=n) in LAB* -> 18.01, 0, 0 for sysada=1 /Wd*LAB* [ 95.41 -0.99 4.76 ] def % device adapted white -> 95.41, 0, 0 for sysada=1 /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 i 0 eq {/L* C*LABd* 0 get def /A* C*LABd* 1 get def /B* C*LABd* 2 get def} if i 1 eq {/L* M*LABd* 0 get def /A* M*LABd* 1 get def /B* M*LABd* 2 get def} if i 2 eq {/L* Y*LABd* 0 get def /A* Y*LABd* 1 get def /B* Y*LABd* 2 get def} if i 3 eq {/L* O*LABd* 0 get def /A* O*LABd* 1 get def /B* O*LABd* 2 get def} if i 4 eq {/L* L*LABd* 0 get def /A* L*LABd* 1 get def /B* L*LABd* 2 get def} if i 5 eq {/L* V*LABd* 0 get def /A* V*LABd* 1 get def /B* V*LABd* 2 get def} if i 6 eq {/L* N*LABd* 0 get def /A* N*LABd* 1 get def /B* N*LABd* 2 get def} if i 7 eq {/L* W*LABd* 0 get def /A* W*LABd* 1 get def /B* W*LABd* 2 get 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-ISOL1 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 /xi10 xi0 600 add def /xi1a xi0 1100 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 /iy0 0 def i 4 ge {/iy0 4200 def} if /yi0 8100 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 2 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 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*CIEa: ) 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*CIEa:) 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*CIEa:) 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*CIEa:) show xi1 yi4b moveto C*da 0.005 add 100 mul truncate 100 div 8 string cvs show xi2 yi4b moveto (H*CIEa:) 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*8f, olv*7i *color data (8bit):) show xi0 yi5 moveto (o*n:) show xi10 yi5 moveto o*2 8 string cvs show xi1a yi5 moveto o*2 255 mul 8 string cvs show xi1b yi5 moveto o*2 127.5 mul cvi 64 add 8 string cvs show xi0 yi6 moveto (l*n:) show xi10 yi6 moveto l*2 8 string cvs show xi1a yi6 moveto l*2 255 mul 8 string cvs show xi1b yi6 moveto l*2 127.5 mul cvi 64 add 8 string cvs show xi0 yi7 moveto (v*n:) show xi10 yi7 moveto v*2 8 string cvs show xi1a yi7 moveto v*2 255 mul 8 string cvs show xi1b yi7 moveto v*2 127.5 mul cvi 64 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*8f, cmy*7i *color data (8bit):) show xi0 yi9 moveto (c*w:) show xi10 yi9 moveto c*2 8 string cvs show xi1a yi9 moveto c*2 255 mul 8 string cvs show xi1b yi9 moveto c*2 127.5 mul cvi 64 add 8 string cvs show xi0 yi10 moveto (m*w:) show xi10 yi10 moveto m*2 8 string cvs show xi1a yi10 moveto m*2 255 mul 8 string cvs show xi1b yi10 moveto m*2 127.5 mul cvi 64 add 8 string cvs show xi0 yi11 moveto (y*w:) show xi10 yi11 moveto y*2 8 string cvs show xi1a yi11 moveto y*2 255 mul 8 string cvs show xi1b yi11 moveto y*2 127.5 mul cvi 64 add 8 string cvs show % limit each number to 2 decimal places /n*ORS n* def /r*ORS 1 n* sub w* sub def /w*ORS w* def /n*ORS2 n*ORS 0.005 add 100 mul truncate 100 div def /r*ORS2 r*ORS 0.005 add 100 mul truncate 100 div def /w*ORS2 w*ORS 0.005 add 100 mul truncate 100 div def xi0 yi12 moveto (Additional ORS18a *color data) show xi0 yi13 moveto (n*:) show xi10 yi13 moveto n*ORS2 8 string cvs show xi1a yi13 moveto n*ORS2 255 mul 8 string cvs show xi1b yi13 moveto n*ORS2 127.5 mul cvi 64 add 8 string cvs show xi0 yi14 moveto (r*:) show xi10 yi14 moveto r*ORS2 8 string cvs show xi1a yi14 moveto r*ORS2 255 mul 8 string cvs show xi1b yi14 moveto r*ORS2 127.5 mul cvi 64 add 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 /e*r col_ang 360 div 0.005 add 100 mul truncate 100 div def xi0 yi15 moveto (e*: ) show xi10 yi15 moveto e*r 8 string cvs show xi1a yi15 moveto e*r 255 mul 8 string cvs show xi1b yi15 moveto e*r 127.5 mul cvi 64 add 8 string cvs show xi1b 500 add yi15 moveto h1* show H* 100 mul truncate 100 div 8 string cvs show h2* show xi0 yi16 moveto (w*:) show xi10 yi16 moveto w*ORS2 8 string cvs show xi1a yi16 moveto w*ORS2 255 mul 8 string cvs show xi1b yi16 moveto w*ORS2 127.5 mul cvi 64 add 8 string cvs show /t*ORS2 1 n*ORS r*ORS 0.5 mul add sub 0.005 add 100 mul truncate 100 div def xi0 yi17 moveto (t*:) show xi10 yi17 moveto t*ORS2 8 string cvs show xi1a yi17 moveto t*ORS2 255 mul 8 string cvs show xi1b yi17 moveto t*ORS2 127.5 mul cvi 64 add 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 %/IEND 1 def %IEND 0 eq { 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 %} if % 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 %output showpage %%Trailer %line 359 %%EndDocument EndEPSF grestore gsave BeginEPSF 86 MM 108 MM translate 10 /Times-ISOL1 FS 53 MM 1 MM moveto ( ) show 1 1 scale -77 -91 translate %%BeginDocument: Bild 14 %line 369 %%EndDocument EndEPSF grestore gsave BeginEPSF 28 MM 064 MM translate 10 /Times-ISOL1 FS 53 MM 1 MM moveto ( ) show 1 1 scale -77 -91 translate %%BeginDocument: Bild 15 %!PS-Adobe-3.0 EPSF-3.0 LE81:L10-5N.EPS 20030301 %%BoundingBox: 70 90 226 206 /FS {findfont exch scalefont setfont} bind def /MM {72 25.4 div mul} def %%EndProlog gsave 8 /Times-Roman FS 72 83 moveto %!2 (LE81:L10-5N.EPS) show 72 90 translate %! 0.01 MM 0.01 MM scale %! 15 setlinewidth %! 0 0 moveto 5400 0 rlineto 0 4000 rlineto -5400 0 rlineto %! closepath stroke grestore showpage %%Trailer %line 379 %%EndDocument EndEPSF grestore gsave BeginEPSF 86 MM 064 MM translate 10 /Times-ISOL1 FS 53 MM 1 MM moveto ( ) show 1 1 scale -77 -91 translate %%BeginDocument: Bild 16 %line 389 %%EndDocument EndEPSF grestore gsave BeginEPSF 26 MM 20 MM translate 10 /Times-ISOL1 FS 53 MM 1 MM moveto ( ) show 1 1 scale -77 -91 translate %%BeginDocument: Bild 17 %!PS-Adobe-3.0 EPSF-3.0 M8751-7, LE810-3N 20070901 %%BoundingBox: 70 80 395 332 %START PDFDE011.EPS /pdfmark07 where {pop} {userdict /pdfmark07 /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: Image Technology) /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:2007090112000) /ModDate (D:2007090112000) /DOCINFO pdfmark07 [ /View [ /FitB ] /DOCVIEW pdfmark07 %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 offset-colours in the LAB* system, compare ISO/IEC 15775 % If these require changing only need to change them here /C*LAB* [ 58.62 -32.63 -42.75 ] def % cyan in LAB* /M*LAB* [ 48.13 75.20 -6.80 ] def % magenta in LAB* /Y*LAB* [ 90.37 -11.16 96.17 ] def % yellow in LAB* /O*LAB* [ 47.94 65.31 52.07 ] def % orange in LAB* /L*LAB* [ 50.90 -62.97 36.71 ] def % leafgreen in LAB* /V*LAB* [ 25.72 31.45 -44.36 ] def % violet in LAB* /N*LAB* [ 18.01 0.50 -0.47 ] def % black (noir=n) in LAB* /W*LAB* [ 95.41 -0.99 4.76 ] def % white /Ns*LAB* [ 18.01 0.50 -0.47 ] def % system dapted black (noir=n) in LAB* -> 18.01, 0, 0 for sysada=1 /Ws*LAB* [ 95.41 -0.99 4.76 ] def % system adapted white -> 95.41, 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-ISOL1 FS 72 83 moveto ( LE810-7, ) show (CIE- und Miescher-Elementarfarben: ORS18a (L*=18-95)) popde %08751-7 1 (CIE and Miescher elementary colours: ORS18a (L*=18-95)) popen %18751-7 1 (CIE and Miescher elementary colours: ORS18a (L*=18-95)) popes %28751-7 1 (CIE and Miescher elementary colours: ORS18a (L*=18-95)) popfr %38751-7 1 (CIE and Miescher elementary colours: ORS18a (L*=18-95)) popit %48751-7 1 (CIE and Miescher elementary colours: ORS18a (L*=18-95)) popjp %58751-7 1 show ( (olv*/cmy* SGcode=64-192)) 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 % definitions of CIE-test colours in the LAB* system, compare ISO/IEC 15775 % If these require changing only need to change them here /C*LABd* [ 39.92 58.74 27.99] def % R: CIE-TF09 ISO/IEC 15775 Tab. 2 /M*LABd* [ 81.26 -2.89 71.56] def % J: CIE-TF10 ISO/IEC 15775 Tab. 2 /Y*LABd* [ 52.23 -42.42 13.60] def % G: CIE-TF11 ISO/IEC 15775 Tab. 2 /O*LABd* [ 30.57 1.41 -46.47] def % B: CIE-TF12 ISO/IEC 15775 Tab. 2 /L*LABd* [ 49.10 65.72 39.10] def % R: Miescher calculated LM82 xyY->LAB* /V*LABd* [ 89.76 -9.27 91.55] def % J: Miescher /N*LABd* [ 53.15 -53.53 13.56] def % G: Miescher /W*LABd* [ 35.68 12.66 -43.85] def % B: Miescher /Nd*LAB* [ 18.01 0.50 -0.47 ] def % device dapted black (noir=n) in LAB* -> 18.01, 0, 0 for sysada=1 /Wd*LAB* [ 95.41 -0.99 4.76 ] def % device adapted white -> 95.41, 0, 0 for sysada=1 /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 i 0 eq {/L* C*LABd* 0 get def /A* C*LABd* 1 get def /B* C*LABd* 2 get def} if i 1 eq {/L* M*LABd* 0 get def /A* M*LABd* 1 get def /B* M*LABd* 2 get def} if i 2 eq {/L* Y*LABd* 0 get def /A* Y*LABd* 1 get def /B* Y*LABd* 2 get def} if i 3 eq {/L* O*LABd* 0 get def /A* O*LABd* 1 get def /B* O*LABd* 2 get def} if i 4 eq {/L* L*LABd* 0 get def /A* L*LABd* 1 get def /B* L*LABd* 2 get def} if i 5 eq {/L* V*LABd* 0 get def /A* V*LABd* 1 get def /B* V*LABd* 2 get def} if i 6 eq {/L* N*LABd* 0 get def /A* N*LABd* 1 get def /B* N*LABd* 2 get def} if i 7 eq {/L* W*LABd* 0 get def /A* W*LABd* 1 get def /B* W*LABd* 2 get 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-ISOL1 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 /xi10 xi0 600 add def /xi1a xi0 1100 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 /iy0 0 def i 4 ge {/iy0 4200 def} if /yi0 8100 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 2 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 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*CIEa: ) 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*CIEa:) 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*CIEa:) 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*CIEa:) show xi1 yi4b moveto C*da 0.005 add 100 mul truncate 100 div 8 string cvs show xi2 yi4b moveto (H*CIEa:) 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*8f, olv*7i *color data (8bit):) show xi0 yi5 moveto (o*n:) show xi10 yi5 moveto o*2 8 string cvs show xi1a yi5 moveto o*2 255 mul 8 string cvs show xi1b yi5 moveto o*2 127.5 mul cvi 64 add 8 string cvs show xi0 yi6 moveto (l*n:) show xi10 yi6 moveto l*2 8 string cvs show xi1a yi6 moveto l*2 255 mul 8 string cvs show xi1b yi6 moveto l*2 127.5 mul cvi 64 add 8 string cvs show xi0 yi7 moveto (v*n:) show xi10 yi7 moveto v*2 8 string cvs show xi1a yi7 moveto v*2 255 mul 8 string cvs show xi1b yi7 moveto v*2 127.5 mul cvi 64 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*8f, cmy*7i *color data (8bit):) show xi0 yi9 moveto (c*w:) show xi10 yi9 moveto c*2 8 string cvs show xi1a yi9 moveto c*2 255 mul 8 string cvs show xi1b yi9 moveto c*2 127.5 mul cvi 64 add 8 string cvs show xi0 yi10 moveto (m*w:) show xi10 yi10 moveto m*2 8 string cvs show xi1a yi10 moveto m*2 255 mul 8 string cvs show xi1b yi10 moveto m*2 127.5 mul cvi 64 add 8 string cvs show xi0 yi11 moveto (y*w:) show xi10 yi11 moveto y*2 8 string cvs show xi1a yi11 moveto y*2 255 mul 8 string cvs show xi1b yi11 moveto y*2 127.5 mul cvi 64 add 8 string cvs show % limit each number to 2 decimal places /n*ORS n* def /r*ORS 1 n* sub w* sub def /w*ORS w* def /n*ORS2 n*ORS 0.005 add 100 mul truncate 100 div def /r*ORS2 r*ORS 0.005 add 100 mul truncate 100 div def /w*ORS2 w*ORS 0.005 add 100 mul truncate 100 div def xi0 yi12 moveto (Additional ORS18a *color data) show xi0 yi13 moveto (n*:) show xi10 yi13 moveto n*ORS2 8 string cvs show xi1a yi13 moveto n*ORS2 255 mul 8 string cvs show xi1b yi13 moveto n*ORS2 127.5 mul cvi 64 add 8 string cvs show xi0 yi14 moveto (r*:) show xi10 yi14 moveto r*ORS2 8 string cvs show xi1a yi14 moveto r*ORS2 255 mul 8 string cvs show xi1b yi14 moveto r*ORS2 127.5 mul cvi 64 add 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 /e*r col_ang 360 div 0.005 add 100 mul truncate 100 div def xi0 yi15 moveto (e*: ) show xi10 yi15 moveto e*r 8 string cvs show xi1a yi15 moveto e*r 255 mul 8 string cvs show xi1b yi15 moveto e*r 127.5 mul cvi 64 add 8 string cvs show xi1b 500 add yi15 moveto h1* show H* 100 mul truncate 100 div 8 string cvs show h2* show xi0 yi16 moveto (w*:) show xi10 yi16 moveto w*ORS2 8 string cvs show xi1a yi16 moveto w*ORS2 255 mul 8 string cvs show xi1b yi16 moveto w*ORS2 127.5 mul cvi 64 add 8 string cvs show /t*ORS2 1 n*ORS r*ORS 0.5 mul add sub 0.005 add 100 mul truncate 100 div def xi0 yi17 moveto (t*:) show xi10 yi17 moveto t*ORS2 8 string cvs show xi1a yi17 moveto t*ORS2 255 mul 8 string cvs show xi1b yi17 moveto t*ORS2 127.5 mul cvi 64 add 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 %/IEND 1 def %IEND 0 eq { 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 %} if % 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 %output showpage %%Trailer %line 399 %%EndDocument EndEPSF grestore gsave BeginEPSF 86 MM 020 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 %line 409 %%EndDocument EndEPSF grestore gsave BeginEPSF 161 MM 197 MM translate 10 /Times-ISOL1 FS 1 1 scale -77 -91 translate %%BeginDocument: Bild 12 %line 419 %%EndDocument EndEPSF grestore gsave BeginEPSF 161 MM 152 MM translate 10 /Times-ISOL1 FS 53 MM 1 MM moveto ( ) show 1 1 scale -77 -91 translate %%BeginDocument: Bild 21 %!PS-Adobe-3.0 EPSF-3.0 LE81:L11-1N.EPS 20030301 %%BoundingBox: 70 90 226 206 /FS {findfont exch scalefont setfont} bind def /MM {72 25.4 div mul} def %%EndProlog gsave 8 /Times-Roman FS 72 83 moveto %!2 (LE81:L11-1N.EPS) show 72 90 translate %! 0.01 MM 0.01 MM scale %! 15 setlinewidth %! 0 0 moveto 5400 0 rlineto 0 4000 rlineto -5400 0 rlineto %! closepath stroke grestore showpage %%Trailer %line 429 %%EndDocument EndEPSF grestore gsave BeginEPSF 219 MM 152 MM translate 10 /Times-ISOL1 FS 53 MM 1 MM moveto ( ) show 1 1 scale -77 -91 translate %%BeginDocument: Bild 22 %line 439 %%EndDocument EndEPSF grestore gsave BeginEPSF 161 MM 108 MM translate 10 /Times-ISOL1 FS 53 MM 1 MM moveto ( ) show 1 1 scale -77 -91 translate %%BeginDocument: Bild 23 %!PS-Adobe-3.0 EPSF-3.0 M8991-3, LE81/L11-3N 20041101 %%BoundingBox: 70 80 395 332 %%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* [ 95.41 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* [ 95.41 0.01 0.01 ] def % system adapted white -> 95.41, 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-ISOL1 FS 72 83 moveto ( LE811-3, ) show (CIE- und Miescher-Elementarfarben: TLS00 (L*=18-95)) popde %08751-7 1 (CIE and Miescher elementary colours: TLS00 (L*=18-95)) popen %18751-7 1 (CIE and Miescher elementary colours: TLS00 (L*=18-95)) popes %28751-7 1 (CIE and Miescher elementary colours: TLS00 (L*=18-95)) popfr %38751-7 1 (CIE and Miescher elementary colours: TLS00 (L*=18-95)) popit %48751-7 1 (CIE and Miescher elementary colours: TLS00 (L*=18-95)) popjp %58751-7 1 show ( (olv*/cmy* SGcode=64-192)) 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 % definitions of CIE-test colours in the LAB* system, compare ISO/IEC 15775 % If these require changing only need to change them here /C*LABd* [ 39.92 58.74 27.99] def % R: CIE-TF09 ISO/IEC 15775 Tab. 2 /M*LABd* [ 81.26 -2.89 71.56] def % J: CIE-TF10 ISO/IEC 15775 Tab. 2 /Y*LABd* [ 52.23 -42.42 13.60] def % G: CIE-TF11 ISO/IEC 15775 Tab. 2 /O*LABd* [ 30.57 1.41 -46.47] def % B: CIE-TF12 ISO/IEC 15775 Tab. 2 /L*LABd* [ 49.10 65.72 39.10] def % R: Miescher calculated LM82 xyY->LAB* /V*LABd* [ 89.76 -9.27 91.55] def % J: Miescher /N*LABd* [ 53.15 -53.53 13.56] def % G: Miescher /W*LABd* [ 35.68 12.66 -43.85] def % B: Miescher /Nd*LAB* [ 0.01 0.01 0.01 ] def % device dapted black (noir=n) in LAB* -> 0.01, 0, 0 for sysada=1 /Wd*LAB* [ 95.41 0.01 0.01 ] def % device adapted white -> 95.41, 0, 0 for sysada=1 /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 i 0 eq {/L* C*LABd* 0 get def /A* C*LABd* 1 get def /B* C*LABd* 2 get def} if i 1 eq {/L* M*LABd* 0 get def /A* M*LABd* 1 get def /B* M*LABd* 2 get def} if i 2 eq {/L* Y*LABd* 0 get def /A* Y*LABd* 1 get def /B* Y*LABd* 2 get def} if i 3 eq {/L* O*LABd* 0 get def /A* O*LABd* 1 get def /B* O*LABd* 2 get def} if i 4 eq {/L* L*LABd* 0 get def /A* L*LABd* 1 get def /B* L*LABd* 2 get def} if i 5 eq {/L* V*LABd* 0 get def /A* V*LABd* 1 get def /B* V*LABd* 2 get def} if i 6 eq {/L* N*LABd* 0 get def /A* N*LABd* 1 get def /B* N*LABd* 2 get def} if i 7 eq {/L* W*LABd* 0 get def /A* W*LABd* 1 get def /B* W*LABd* 2 get 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-ISOL1 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 /xi10 xi0 600 add def /xi1a xi0 1100 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 /iy0 0 def i 4 ge {/iy0 4200 def} if /yi0 8100 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 2 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 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*CIEa: ) 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*CIEa:) 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*CIEa:) 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*CIEa:) show xi1 yi4b moveto C*da 0.005 add 100 mul truncate 100 div 8 string cvs show xi2 yi4b moveto (H*CIEa:) 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*8f, olv*7i *color data (8bit):) show xi0 yi5 moveto (o*n:) show xi10 yi5 moveto o*2 8 string cvs show xi1a yi5 moveto o*2 255 mul 8 string cvs show xi1b yi5 moveto o*2 127.5 mul cvi 64 add 8 string cvs show xi0 yi6 moveto (l*n:) show xi10 yi6 moveto l*2 8 string cvs show xi1a yi6 moveto l*2 255 mul 8 string cvs show xi1b yi6 moveto l*2 127.5 mul cvi 64 add 8 string cvs show xi0 yi7 moveto (v*n:) show xi10 yi7 moveto v*2 8 string cvs show xi1a yi7 moveto v*2 255 mul 8 string cvs show xi1b yi7 moveto v*2 127.5 mul cvi 64 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*8f, cmy*7i *color data (8bit):) show xi0 yi9 moveto (c*w:) show xi10 yi9 moveto c*2 8 string cvs show xi1a yi9 moveto c*2 255 mul 8 string cvs show xi1b yi9 moveto c*2 127.5 mul cvi 64 add 8 string cvs show xi0 yi10 moveto (m*w:) show xi10 yi10 moveto m*2 8 string cvs show xi1a yi10 moveto m*2 255 mul 8 string cvs show xi1b yi10 moveto m*2 127.5 mul cvi 64 add 8 string cvs show xi0 yi11 moveto (y*w:) show xi10 yi11 moveto y*2 8 string cvs show xi1a yi11 moveto y*2 255 mul 8 string cvs show xi1b yi11 moveto y*2 127.5 mul cvi 64 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 xi0 yi12 moveto (Additional TLS00 *color data) show xi0 yi13 moveto (n*:) show xi10 yi13 moveto n*TLS2 8 string cvs show xi1a yi13 moveto n*TLS2 255 mul 8 string cvs show xi1b yi13 moveto n*TLS2 127.5 mul cvi 64 add 8 string cvs show xi0 yi14 moveto (r*:) show xi10 yi14 moveto r*TLS2 8 string cvs show xi1a yi14 moveto r*TLS2 255 mul 8 string cvs show xi1b yi14 moveto r*TLS2 127.5 mul cvi 64 add 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 /e*r col_ang 360 div 0.005 add 100 mul truncate 100 div def xi0 yi15 moveto (e*: ) show xi10 yi15 moveto e*r 8 string cvs show xi1a yi15 moveto e*r 255 mul 8 string cvs show xi1b yi15 moveto e*r 127.5 mul cvi 64 add 8 string cvs show xi1b 500 add yi15 moveto h1* show H* 100 mul truncate 100 div 8 string cvs show h2* show xi0 yi16 moveto (w*:) show xi10 yi16 moveto w*TLS2 8 string cvs show xi1a yi16 moveto w*TLS2 255 mul 8 string cvs show xi1b yi16 moveto w*TLS2 127.5 mul cvi 64 add 8 string cvs show /t*TLS2 1 n*TLS r*TLS 0.5 mul add sub 0.005 add 100 mul truncate 100 div def xi0 yi17 moveto (t*:) show xi10 yi17 moveto t*TLS2 8 string cvs show xi1a yi17 moveto t*TLS2 255 mul 8 string cvs show xi1b yi17 moveto t*TLS2 127.5 mul cvi 64 add 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 %/IEND 1 def %IEND 0 eq { 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 %} if %IEND=0 % 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 %output showpage %%Trailer %line 449 %%EndDocument EndEPSF grestore gsave BeginEPSF 219 MM 108 MM translate 10 /Times-ISOL1 FS 53 MM 1 MM moveto ( ) show 1 1 scale -77 -91 translate %%BeginDocument: Bild 24 %line 459 %%EndDocument EndEPSF grestore gsave BeginEPSF 161 MM 064 MM translate 10 /Times-ISOL1 FS 53 MM 1 MM moveto ( ) show 1 1 scale -77 -91 translate %%BeginDocument: Bild 25 %!PS-Adobe-3.0 EPSF-3.0 LE81:L11-5N.EPS 20030301 %%BoundingBox: 70 90 226 206 /FS {findfont exch scalefont setfont} bind def /MM {72 25.4 div mul} def %%EndProlog gsave 8 /Times-Roman FS 72 83 moveto %!2 (LE81:L11-5N.EPS) show 72 90 translate %! 0.01 MM 0.01 MM scale %! 15 setlinewidth %! 0 0 moveto 5400 0 rlineto 0 4000 rlineto -5400 0 rlineto %! closepath stroke grestore showpage %%Trailer %line 469 %%EndDocument EndEPSF grestore gsave BeginEPSF 219 MM 064 MM translate 10 /Times-ISOL1 FS 53 MM 1 MM moveto ( ) show 1 1 scale -77 -91 translate %%BeginDocument: Bild 26 %line 479 %%EndDocument EndEPSF grestore gsave BeginEPSF 161 MM 020 MM translate 10 /Times-ISOL1 FS 53 MM 1 MM moveto ( ) show 1 1 scale -77 -91 translate %%BeginDocument: Bild 27 %!PS-Adobe-3.0 EPSF-3.0 M8991-7, LE811-7N 20070901 %%BoundingBox: 70 80 395 332 %START PDFDE011.EPS /pdfmark17 where {pop} {userdict /pdfmark17 /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: Image Technology) /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:2007090112000) /ModDate (D:2007090112000) /DOCINFO pdfmark17 [ /View [ /FitB ] /DOCVIEW pdfmark17 %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* [ 95.41 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* [ 95.41 0.01 0.01 ] def % system adapted white -> 95.41, 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-ISOL1 FS 72 83 moveto ( LE811-7, ) show (CIE- und Miescher-Elementarfarben: TLS00 (L*=18-95)) popde %08751-7 1 (CIE and Miescher elementary colours: TLS00 (L*=18-95)) popen %18751-7 1 (CIE and Miescher elementary colours: TLS00 (L*=18-95)) popes %28751-7 1 (CIE and Miescher elementary colours: TLS00 (L*=18-95)) popfr %38751-7 1 (CIE and Miescher elementary colours: TLS00 (L*=18-95)) popit %48751-7 1 (CIE and Miescher elementary colours: TLS00 (L*=18-95)) popjp %58751-7 1 show ( (olv*/cmy* SGcode=64-192)) 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 % definitions of CIE-test colours in the LAB* system, compare ISO/IEC 15775 % If these require changing only need to change them here /C*LABd* [ 39.92 58.74 27.99] def % R: CIE-TF09 ISO/IEC 15775 Tab. 2 /M*LABd* [ 81.26 -2.89 71.56] def % J: CIE-TF10 ISO/IEC 15775 Tab. 2 /Y*LABd* [ 52.23 -42.42 13.60] def % G: CIE-TF11 ISO/IEC 15775 Tab. 2 /O*LABd* [ 30.57 1.41 -46.47] def % B: CIE-TF12 ISO/IEC 15775 Tab. 2 /L*LABd* [ 49.10 65.72 39.10] def % R: Miescher calculated LM82 xyY->LAB* /V*LABd* [ 89.76 -9.27 91.55] def % J: Miescher /N*LABd* [ 53.15 -53.53 13.56] def % G: Miescher /W*LABd* [ 35.68 12.66 -43.85] def % B: Miescher /Nd*LAB* [ 0.01 0.01 0.01 ] def % device dapted black (noir=n) in LAB* -> 0.01, 0, 0 for sysada=1 /Wd*LAB* [ 95.41 0.01 0.01 ] def % device adapted white -> 95.41, 0, 0 for sysada=1 /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 i 0 eq {/L* C*LABd* 0 get def /A* C*LABd* 1 get def /B* C*LABd* 2 get def} if i 1 eq {/L* M*LABd* 0 get def /A* M*LABd* 1 get def /B* M*LABd* 2 get def} if i 2 eq {/L* Y*LABd* 0 get def /A* Y*LABd* 1 get def /B* Y*LABd* 2 get def} if i 3 eq {/L* O*LABd* 0 get def /A* O*LABd* 1 get def /B* O*LABd* 2 get def} if i 4 eq {/L* L*LABd* 0 get def /A* L*LABd* 1 get def /B* L*LABd* 2 get def} if i 5 eq {/L* V*LABd* 0 get def /A* V*LABd* 1 get def /B* V*LABd* 2 get def} if i 6 eq {/L* N*LABd* 0 get def /A* N*LABd* 1 get def /B* N*LABd* 2 get def} if i 7 eq {/L* W*LABd* 0 get def /A* W*LABd* 1 get def /B* W*LABd* 2 get 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-ISOL1 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 /xi10 xi0 600 add def /xi1a xi0 1100 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 /iy0 0 def i 4 ge {/iy0 4200 def} if /yi0 8100 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 2 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 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*CIEa: ) 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*CIEa:) 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*CIEa:) 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*CIEa:) show xi1 yi4b moveto C*da 0.005 add 100 mul truncate 100 div 8 string cvs show xi2 yi4b moveto (H*CIEa:) 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*8f, olv*7i *color data (8bit):) show xi0 yi5 moveto (o*n:) show xi10 yi5 moveto o*2 8 string cvs show xi1a yi5 moveto o*2 255 mul 8 string cvs show xi1b yi5 moveto o*2 127.5 mul cvi 64 add 8 string cvs show xi0 yi6 moveto (l*n:) show xi10 yi6 moveto l*2 8 string cvs show xi1a yi6 moveto l*2 255 mul 8 string cvs show xi1b yi6 moveto l*2 127.5 mul cvi 64 add 8 string cvs show xi0 yi7 moveto (v*n:) show xi10 yi7 moveto v*2 8 string cvs show xi1a yi7 moveto v*2 255 mul 8 string cvs show xi1b yi7 moveto v*2 127.5 mul cvi 64 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*8f, cmy*7i *color data (8bit):) show xi0 yi9 moveto (c*w:) show xi10 yi9 moveto c*2 8 string cvs show xi1a yi9 moveto c*2 255 mul 8 string cvs show xi1b yi9 moveto c*2 127.5 mul cvi 64 add 8 string cvs show xi0 yi10 moveto (m*w:) show xi10 yi10 moveto m*2 8 string cvs show xi1a yi10 moveto m*2 255 mul 8 string cvs show xi1b yi10 moveto m*2 127.5 mul cvi 64 add 8 string cvs show xi0 yi11 moveto (y*w:) show xi10 yi11 moveto y*2 8 string cvs show xi1a yi11 moveto y*2 255 mul 8 string cvs show xi1b yi11 moveto y*2 127.5 mul cvi 64 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 xi0 yi12 moveto (Additional TLS00 *color data) show xi0 yi13 moveto (n*:) show xi10 yi13 moveto n*TLS2 8 string cvs show xi1a yi13 moveto n*TLS2 255 mul 8 string cvs show xi1b yi13 moveto n*TLS2 127.5 mul cvi 64 add 8 string cvs show xi0 yi14 moveto (r*:) show xi10 yi14 moveto r*TLS2 8 string cvs show xi1a yi14 moveto r*TLS2 255 mul 8 string cvs show xi1b yi14 moveto r*TLS2 127.5 mul cvi 64 add 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 /e*r col_ang 360 div 0.005 add 100 mul truncate 100 div def xi0 yi15 moveto (e*: ) show xi10 yi15 moveto e*r 8 string cvs show xi1a yi15 moveto e*r 255 mul 8 string cvs show xi1b yi15 moveto e*r 127.5 mul cvi 64 add 8 string cvs show xi1b 500 add yi15 moveto h1* show H* 100 mul truncate 100 div 8 string cvs show h2* show xi0 yi16 moveto (w*:) show xi10 yi16 moveto w*TLS2 8 string cvs show xi1a yi16 moveto w*TLS2 255 mul 8 string cvs show xi1b yi16 moveto w*TLS2 127.5 mul cvi 64 add 8 string cvs show /t*TLS2 1 n*TLS r*TLS 0.5 mul add sub 0.005 add 100 mul truncate 100 div def xi0 yi17 moveto (t*:) show xi10 yi17 moveto t*TLS2 8 string cvs show xi1a yi17 moveto t*TLS2 255 mul 8 string cvs show xi1b yi17 moveto t*TLS2 127.5 mul cvi 64 add 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 %/IEND 1 def %IEND 0 eq { 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 %} if %IEND=0 % 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 %output showpage %%Trailer %line 489 %%EndDocument EndEPSF grestore gsave BeginEPSF 219 MM 020 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 %line 499 %%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 %line 509 %%EndDocument EndEPSF grestore gsave BeginEPSF -0.5 MM -0.5 MM translate %xy-Verschiebung Rechteckrahmen nach innen% %%BeginDocument: Bild 30 %Rechteckrahmen %line 519 %!PS-Adobe-3.0 EPSF-3.0 Frame arround with Internet text LE81 20070901 %%BoundingBox: 0 0 598 845 %%EndProlog gsave /lanind 1 def /lantex [(G) (E) (S) (N) (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 /lanindg where {pop /lanind1 lanindg def /lanind2 lanindg def} {/lanind1 1 def /lanind2 1 def} ifelse /colormg where {pop /colorm1 colormg def /colorm2 colormg def} {/colorm1 0 def /colorm2 0 def} ifelse /xcolorg where {pop /xcolor1 xcolorg def /xcolor2 xcolorg def} {/xcolor1 0 def /xcolor2 0 def} ifelse /xchartg where {pop /xchart1 xchartg def /xchart2 xchartg def} {/xchart1 0 def /xchart2 0 def} ifelse /lanind lanind1 def %lanind1 1 lanind2 {/lanind exch def %output showpage /colorm colorm1 def %colorm1 1 colorm2 {/colorm exch def %output showpage /xcolor xcolor1 def %xcolor1 1 xcolor2 {/xcolor exch def %output showpage /xchart xchart1 def %xchart1 1 xchart2 {/xchart exch def %output showpage /GSS$ where {pop /LSS$ GSS$ def} {/LSS$ (1) def} ifelse /GSC$ where {pop /LSC$ GSC$ def} {/LSC$ (N) def} ifelse /GSX$ where {pop /LSX$ GSX$ def} {/LSX$ (0) def} ifelse /GSY$ where {pop /LSY$ GSY$ def} {/LSY$ (0) def} ifelse /GEX$ where {pop /LEX$ GEX$ def} {/LEX$ (P.PS./PDF) def} ifelse /GEY$ where {pop /LEY$ GEY$ def} {/LEY$ (P.DAT) def} ifelse /IMES where {pop %/IMES IMES def } {/IMES 0 def} ifelse /ISYSLAB where {pop %/ISYSLAB ISYSLAB def } {/ISYSLAB 0 def} ifelse /ISYSTEM where {pop %/ISYTEM ISYSTEM def } {/ISYSTEM 0 def} ifelse /i*ptrsc where {pop %/i*ptrsc i*ptrsc def } {/i*ptrsc 0 def} ifelse gsave 0 setgray 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 xlu 8 MM sub ylu moveto 16 MM 0 rlineto stroke xlu ylu 8 MM sub moveto 0 16 MM rlineto stroke xro 8 MM add yro moveto -16 MM 0 rlineto stroke xro yro 8 MM add moveto 0 -16 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 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 0 setgray 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 {tzccmy0* setcmykcolor} if j0 1 eq {0 setgray} if j0 2 eq {tzmcmy0* setcmykcolor} if j0 3 eq {0 setgray} if j0 4 eq {tzycmy0* setcmykcolor} if j0 5 eq {0 setgray} if j0 6 eq {tzocmy0* setcmykcolor} if j0 7 eq {0 setgray} if j0 8 eq {tzlcmy0* setcmykcolor} if j0 9 eq {0 setgray} if j0 10 eq {tzvcmy0* setcmykcolor} 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 %j=16,20 /ix0 xlu 8 MM add j0 7 MM mul add def /iy0 ylu 8 MM sub def 0 1 3 {/ij exch def %ij=0,3 ij 0 eq {/ix0 xlu 8 MM add j0 7 MM mul add def /iy0 ylu 8 MM sub def} if ij 1 eq {/ix0 xru 43 MM sub j0 7 MM mul add def /iy0 yru 8 MM sub def} if ij 2 eq {/ix0 xlo 8 MM add j0 7 MM mul add def /iy0 ylo 1 MM add def} if ij 3 eq {/ix0 xro 43 MM sub j0 7 MM mul add def /iy0 yro 1 MM add def} if i*ptrsc 0 eq i*ptrsc 2 eq or {%i*ptrsc=0,2 cmy0* setcmykcolor j 16 eq {tzan j get dup dup 0 setcmykcolor ix0 0.5 MM sub iy0 0.5 MM sub s5 s1 rec fill} if tzan j get dup dup 0 setcmykcolor ix0 iy0 s s rec fill } if %i*ptrsc=0,2 i*ptrsc 1 eq i*ptrsc 3 eq or {%i*ptrsc=1,3 www* setrgbcolor j 16 eq {1 tzan j get 1 sub dup dup setrgbcolor %N ix0 0.5 MM sub iy0 0.5 MM sub s5 s1 rec fill} if 1 tzan j get sub dup dup setrgbcolor %N ix0 iy0 s s rec fill } if %i*ptrsc=1,3 i*ptrsc 4 eq i*ptrsc 5 eq or {%i*ptrsc=4,5 [/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.089] %CIEXYZ fuer D65 >>] setcolorspace j 16 eq {tznLAB* 0 get tzwLAB* 0 get tznLAB* 0 get sub 0.25 j0 mul mul add tznLAB* 1 get tzwLAB* 1 get tznLAB* 1 get sub 0.25 j0 mul mul add tznLAB* 2 get tzwLAB* 2 get tznLAB* 2 get sub 0.25 j0 mul mul add setcolor %N ix0 0.5 MM sub iy0 0.5 MM sub s5 s1 rec fill} if tznLAB* 0 get tzwLAB* 0 get tznLAB* 0 get sub 0.25 j0 mul mul add tznLAB* 1 get tzwLAB* 1 get tznLAB* 1 get sub 0.25 j0 mul mul add tznLAB* 2 get tzwLAB* 2 get tznLAB* 2 get sub 0.25 j0 mul mul add setcolor %N ix0 iy0 s s rec fill } if %i*ptrsc=4,5 i*ptrsc 6 eq {%i*ptrsc=6 000n* setcmykcolor j 16 eq {0 0 0 tzan j get setcmykcolor ix0 0.5 MM sub iy0 0.5 MM sub s5 s1 rec fill} if 0 0 0 tzan j get setcmykcolor ix0 iy0 s s rec fill } if %i*ptrsc=6 i*ptrsc 7 eq {%i*ptrsc=7 w* setgray j 16 eq {1 tzan j get sub setgray ix0 0.5 MM sub iy0 0.5 MM sub s5 s1 rec fill} if 1 tzan j get sub setgray ix0 iy0 s s rec fill } if %i*ptrsc=7 } for %ij=0,3 } for %j=16,20 0 setgray 018 MM 008.2 MM moveto 6 /Times-Roman FS (-8) show 018 MM 006.2 MM moveto 6 /Times-Roman FS (-6) show 276 MM 008.2 MM moveto 6 /Times-Roman FS (-8) show 276 MM 006.2 MM moveto 6 /Times-Roman FS (-6) show 018 MM 202.2 MM moveto 6 /Times-Roman FS (-8) show 018 MM 204.2 MM moveto 6 /Times-Roman FS (-6) show 276 MM 202.2 MM moveto 6 /Times-Roman FS (-8) show 276 MM 204.2 MM moveto 6 /Times-Roman FS (-6) show 0 setgray 12 /Times-ISOL1 FS 61 MM 13 MM moveto (Pr\374fvorlage LE81: Elementarfarben) showde (Test chart LE81: Elementary colours) showen (Test chart LE81: Elementary colours) showes (Test chart LE81: Elementary colours) showfr (Test chart LE81: Elementary colours) showit (Test chart LE81: Elementary colours) showjp (Test chart LE81: Elementary colours) showm 12 /TimesI-ISOL1 FS ( RJGB) show 12 /Times-ISOL1 FS 61 MM 9 MM moveto (Farbmetrische Farbkoordinaten in ORS18a und TLS00) showde (Colorimetric colour coordinates in OSR18a and TLS00) showen (Colorimetric colour coordinates in OSR18a and TLS00) showes (Colorimetric colour coordinates in OSR18a and TLS00) showfr (Colorimetric colour coordinates in OSR18a and TLS00) showit (Colorimetric colour coordinates in OSR18a and TLS00) showjp (Colorimetric colour coordinates in OSR18a and TLS00) showm %130 MM 13 MM moveto %( ISO/IEC 15775 und) showde %( ISO/IEC 15775 and) showen %( ISO/IEC 15775 and) showes %( ISO/IEC 15775 and) showfr %( ISO/IEC 15775 and) showit %( ISO/IEC 15775 and) showjp %( ISO/IEC 15775 and) showm %130 MM 9 MM moveto %( DTR ISO/IEC 24705) showde %( DTR ISO/IEC 24705) showen %( DTR ISO/IEC 24705) showes %( DTR ISO/IEC 24705) showfr %( DTR ISO/IEC 24705) showit %( DTR ISO/IEC 24705) showjp %( DTR ISO/IEC 24705) showm %(; ) show 12 /Times-ISOL1 FS 157 MM 13 MM moveto (input) showen (Eingabe) showde 10 /Times-ISOL1 FS ISYSLAB 0 eq {(,ORS18: ) show} if ISYSLAB 1 eq {(,TLS00: ) show} if ISYSLAB 2 eq {(,DLSxx: ) show} if ISYSLAB 3 eq {(,TLR18: ) show} if 12 /Times-Italic FS (cmy0* setcmykcolor) show 12 /Times-ISOL1 FS 157 MM 9 MM moveto (output) showen (Ausgabe) showde 10 /Times-ISOL1 FS ISYSTEM 0 eq {(,ORS18: ) show} if ISYSTEM 1 eq {(,TLS00: ) show} if ISYSTEM 2 eq {(,DLSxx: ) show} if ISYSTEM 3 eq {(,TLR18: ) show} if 12 /TimesI-ISOL1 FS LSC$ (N) eq { (no change compared to input) showen (keine \304nderung) showde } if LSC$ (S) eq { (Startup (S) data dependend) showen (Startup (S) abh\344ngig) showde } if LSC$ (F) eq { 12 /Times-Italic FS i*ptrsc 0 eq {(cmy0* / 000n* setcmykcolor) show} if i*ptrsc 1 eq {(olv* setrgbcolor / w* setgray) show} if i*ptrsc 2 eq {(cmy0* / nnn0* setcmykcolor) show} if i*ptrsc 3 eq {(olv* / www* setrgbcolor) show} if i*ptrsc 4 eq {(lab* setcolor) show} if i*ptrsc 5 eq {(LAB* setcolor) show} if i*ptrsc 6 eq {(000n* setcmykcolor) show} if i*ptrsc 7 eq {(w* setgray) show} if } if 12 /Times-ISOL1 FS 62 MM 198.5 MM moveto (www.ps.bam.de/LE81/L81) show LSS$ show (00) show LSC$ show LEX$ show (; ) show LSC$ (N) eq { (Start\255Ausgabe und ohne OL: ) showde (start output) showen (start output) showes (start output) showfr (start output) showit (start output) showjp (start output) showm } if LSC$ (C) eq { (Start\255Ausgabe) showde (start output) showen (start output) showes (start output) showfr (start output) showit (start output) showjp (start output) showm } if LSC$ (F) eq { (Linearisierte\255Ausgabe) showde (linearized output) showen (linearized output) showes (linearized output) showfr (linearized output) showit (linearized output) showjp (linearized output) showm } if 62 MM 194 MM moveto LSC$ (N) eq LSC$ (C) eq or { (N: Keine Ausgabe\255Linearisierung (OL) in Datei (F), Startup (S), Ger\344t (D)) showde (N: No Output Linearization (OL) data in File (F), Startup (S) or Device (D)) showen (N: No Output Linearization (OL) data in File (F), Startup (S) or Device (D)) showes (N: No Output Linearization (OL) data in File (F), Startup (S) or Device (D)) showfr (N: No Output Linearization (OL) data in File (F), Startup (S) or Device (D)) showit (N: No Output Linearization (OL) data in File (F), Startup (S) or Device (D)) showjp (N: No Output Linearization (OL) data in File (F), Startup (S) or Device (D)) showm } {LSC$ show (: ) show (Ausgabe\255Linearisierung (OL\255Daten) ) showde (Output Linearization (OL) data ) showen (Output Linearization (OL) data ) showes (Output Linearization (OL) data ) showfr (Output Linearization (OL) data ) showit (Output Linearization (OL) data ) showjp (Output Linearization (OL) data ) showm (LE81/L81) show LSS$ show (00) show LSC$ show LEY$ show } ifelse LSC$ (F) eq { ( in der Datei (F)) showde ( in File (F)) showen ( in File (F)) showes ( in File (F)) showfr ( in File (F)) showit ( in File (F)) showjp ( in File (F)) showm } if LSC$ (S) eq { ( im Distiller Startup (S) Directory) showde ( in Distiller Startup (S) Directory) showen ( in Distiller Startup (S) Directory) showes ( in Distiller Startup (S) Directory) showfr ( in Distiller Startup (S) Directory) showit ( in Distiller Startup (S) Directory) showjp ( in Distiller Startup (S) Directory) showm } if LSC$ (D) eq { ( in PostScript Device (D)) showde ( in PostScript Device (D)) showen ( in PostScript Device (D)) showes ( in PostScript Device (D)) showfr ( in PostScript Device (D)) showit ( in PostScript Device (D)) showjp ( in PostScript Device (D)) showm } if LSC$ (T) eq { ( von Distiller Startup (S) Directory) showde ( of Distiller Startup (S) Directory) showen ( of Distiller Startup (S) Directory) showes ( of Distiller Startup (S) Directory) showfr ( of Distiller Startup (S) Directory) showit ( of Distiller Startup (S) Directory) showjp ( of Distiller Startup (S) Directory) showm } if LSC$ (E) eq { ( von PostScript Device (D)) showde ( of PostScript Device (D)) showen ( of PostScript Device (D)) showes ( of PostScript Device (D)) showfr ( of PostScript Device (D)) showit ( of PostScript Device (D)) showjp ( of PostScript Device (D)) showm } if 16 MM 185 MM moveto -90 rotate (Siehe \344hnliche Dateien: ) showde (See for similar files: ) showen (See for similar files: ) showes (See for similar files: ) showfr (See for similar files: ) showit (See for similar files: ) showjp (See for similar files: ) showm (http://www.ps.bam.de/LE81/; www.ps.bam.de/LE.HTM) show 90 rotate 12 MM 185 MM moveto -90 rotate (Information, Bestellung: ) showde (Information and Order: ) showen (Informaci\363n t\351cnica en: ) showes (Information and Order: ) showfr (Information and Order: ) showit (Information and Order: ) showjp (Information and Order: ) showm (http://www.ps.bam.de) show 90 rotate 12 MM 103 MM moveto -90 rotate (Version 2.0, io=0,) show LSC$ (N) eq {(0) show} if LSC$ (S) eq {(0?) show} if LSC$ (D) eq {(0?) show} if LSC$ (F) eq {i*ptrsc cvishow ISYSLAB 0 eq {IMES 0 eq {(; iORS) show} {(; iLRS) show} ifelse} if ISYSLAB 1 eq {IMES 0 eq {(; iTLS) show} {(; iTRS) show} ifelse} if ISYSLAB 2 eq {IMES 0 eq {(; iDLS) show} {(; iDRS) show} ifelse} if ISYSLAB 3 eq {IMES 0 eq {(; iTLR) show} {(; iTLS) show} ifelse} if ISYSLAB 4 eq {IMES 0 eq {(; iDRS) show} {(; iDLS) show} ifelse} if ISYSTEM 0 eq {IMES 0 eq {(; oORS) show} {(; oLRS) show} ifelse} if ISYSTEM 1 eq {IMES 0 eq {(; oTLS) show} {(; oTRS) show} ifelse} if ISYSTEM 2 eq {IMES 0 eq {(; oDLS) show} {(; oDRS) show} ifelse} if ISYSTEM 3 eq {IMES 0 eq {(; oTLR) show} {(; oTLS) show} ifelse} if ISYSTEM 4 eq {IMES 0 eq {(; oDRS) show} {(; oDLS) show} ifelse} if IMES 0 eq {(, CIELAB) show} {(, CIEXYZ) show} ifelse } if 90 rotate 281 MM 185 MM moveto -90 rotate (BAM\255Registrierung: 20070901\255LE81/L81) showde (BAM registration: 20070901\255LE81/L81) showen (BAM registration: 20070901\255LE81/L81) showes (BAM registration: 20070901\255LE81/L81) showfr (BAM registration: 20070901\255LE81/L81) showit (BAM registration: 20070901\255LE81/L81) showjp (BAM registration: 20070901\255LE81/L81) showm LSS$ show (00) show LSC$ show LEX$ show 90 rotate 281 MM 74 MM moveto -90 rotate (BAM\255Material: Code=rha4ta) showde (BAM material: code=rha4ta) showen (BAM material: code=rha4ta) showes (BAM material: code=rha4ta) showfr (BAM material: code=rha4ta) showit (BAM material: code=rha4ta) showjp (BAM material: code=rha4ta) showm 90 rotate 277 MM 185 MM moveto -90 rotate /cvsshow1 {10 mul cvi 0.1 mul 7 string cvs show} def ( Anwendung f\374r Messung von Monitor\255) showde ( application for measurement of monitor) showen ( application for measurement of monitor) showes ( application for measurement of monitor) showfr ( application for measurement of monitor) showit ( application for measurement of monitor) showjp ( application for measurement of monitor) showm IMES 0 eq { %IMES=0 ( (Yr=2.5) und Druckerausgabe) showde ( (Yr=2.5) and printer output) showen ( (Yr=2.5) and printer output) showes ( (Yr=2.5) and printer output) showfr ( (Yr=2.5) and printer output) showit ( (Yr=2.5) and printer output) showjp ( (Yr=2.5) and printer output) showm} if IMES 1 eq LSC$ (N) ne and { %IMES=1 (, Yr=) show Yre cvsshow1 (, XYZ) show } if %IMES=1 90 rotate showpage %grestore %} for %output with xchart end %} for %output with colorm end %} for %output with xcolor end %} for %output with lanind end %%Trailer %%EndDocument EndEPSF grestore gsave showpage %grestore %%Trailer