%!PS-Adobe-3.0 EPSF-3.0 AEY80-7N %%BoundingBox: 70 82 837 622 %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:2007010112000) /ModDate (D:2007010112000) /DOCINFO pdfmark07 [ /View [ /FitB ] /DOCVIEW pdfmark07 %END PDFDE011 /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 /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 /Courier findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /Courier-ISOL1 exch definefont pop /Courier-Bold findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /CourierB-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 /LAB*ioL {%BEG Procedure LAB*ioL (L=local) %notwendig %requires ISRL*ioL=0,1,2 /RJGBLAB* 12 array def /RJGBLAB*[ 39.92 58.74 27.99 % r CIE No.09 elementary colours in LAB, D65 81.26 -2.89 71.56 % J CIE No.10 52.23 -42.42 13.60 % G CIE No.11 30.57 1.41 -46.47 % B CIE No.12 ] def /LAB* 36 array def /LAB*a 36 array def /LAB*00 24 array def /LAB*01 24 array def /LAB*02 24 array def /LAB*03 24 array def /LAB*04 24 array def /LAB*05 24 array def /LAB*06 24 array def /LAB*07 24 array def /LAB*TE [(ORS18) (TLS00) (FRS06) (TSL18) (NLS00) (NLS18) (SRS18) (TLS70) (TLS00) (TLS06) (TLS11) (TLS18) (TLS27) (TLS38) (TLS52) (TLS70) (OLS00) (OLS06) (OLS11) (OLS18) (OLS27) (OLS38) (OLS52) (OLS70)] def ISRL*ioL 0 eq { %ISRL*ioL=0 /LAB*00 [%D=Device OYLCVMO+NW %for Offset Reflective System (ORS18) 47.94 65.31 52.07 %O 0 90.37 -11.16 96.17 %Y 1 50.90 -62.97 36.71 %L 2 58.62 -30.63 -42.75 %C 3 %see TABle 1 of ISO/IEC 15775:1999-12 25.72 31.45 -44.36 %V 4 48.13 75.20 -6.80 %M 5 18.01 0.50 -0.47 %N 7 95.41 -0.99 4.76 %W 8 ] def %OYLCVMO+NW /LAB*01 [%D=Device OYLCVMO+NW %for Television Luminous System (TLS00) 50.50 76.92 64.55 %O 0 92.66 -20.70 90.75 %Y 1 83.63 -82.76 79.90 %L 2 86.88 -46.17 -13.56 %C 3 %see TABle 1 of ISO/IEC 15775:1999-12 30.39 76.06 -103.6 %V 4 corected 57.30 94.35 -58.42 %M 5 corected 00.01 0.00 0.00 %N 7 corected 95.41 0.00 0.00 %W 8 ] def %OYLCVMO+NW /LAB*02 [%D=Device OYLCVMO+NW %for Device Reflective System (FRS06. FUJI) 32.57 61.14 43.72 %8-0-0 O-W 0 olv* setrgbcolor 64 82.73 -3.51 109.24 %8-8-0 Y-W 1 olv* setrgbcolor 32 39.43 -62.87 42.80 %0-8-0 L-W 2 olv* setrgbcolor 80 47.86 -27.73 -37.62 %0-8-8 C-W 3 olv* setrgbcolor 0 actual printer 10.16 53.56 -62.92 %0-0-8 V-W 4 olv* setrgbcolor 96 34.50 79.53 -36.77 %8-0-8 M-W 5 olv* setrgbcolor 16 06.25 -1.63 -1.73 %0-0-0 N-W 6 olv* setrgbcolor 48 91.97 -0.18 -5.11 %8-8-8 A-W 7 olv* setrgbcolor ] def %OYLCVMO+NW /LAB*03 [%D=Device OYLCVMO+NW %for Television Luminous System (TLS18) 52.76 71.63 49.88 %O 0 92.74 -20.03 84.97 %Y 1 84.00 -78.99 73.94 %L 2 87.14 -44.42 -13.12 %C 3 %see TABle 1 of ISO/IEC 15775:1999-12 35.47 64.92 -95.07 %V 4 %see TABle X of ISO/IEC TR 24705:2005-10 59.01 89.33 -55.68 %M 5 %see Annex A, www.ps.bam.de/RLABE.PDF 18.01 0.00 0.00 %N 6 Yr=2.52 95.41 0.00 0.00 %W 7 ] def %OYLCVMO+NW /LAB*04 [%Natural symmetric Luminous System OYLCVMO+NW (NLS00) 31.81 82.62 47.70 %O 0 95.40/2 = 47.70 63.61 00.00 95.40 %Y 1 C*ab = 95.40 31.81 -82.62 47.70 %L 2 0.866 C*ab = 0.866 * 95.40 = 82.62 63.61 -82.62 -47.70 %C 3 delta L*=25.8 31.81 00.00 -95.40 %V 4 43.81=00.01+31.80 63.61 82.62 -47.70 %M 5 69.61=00.01+2*31.80 00.01 0.00 0.00 %N 6 95.40/3 = 31.80 95.41 0.00 0.00 %W 7 95.40*(2/3) = 63.60 ] def %CVMOYLC+NW /LAB*05 [%Natural symmetric Luminous System OYLCVMO+NW (NLS18) 43.81 67.03 38.70 %O 0 77.40/2 = 38.70 69.61 00.00 77.40 %Y 1 C*ab = 77.40 43.81 -67.03 38.70 %L 2 0.866 C*ab = 67.03 69.61 -67.03 -38.70 %C 3 delta L*=25.8 43.81 00.00 -77.40 %V 4 43.81=18.01+25.80 69.61 67.03 -38.70 %M 5 69.61=18.01+2*25.80 18.01 0.00 0.00 %N 6 18.01+77.40/3 = 18.01+25.80=43.81 95.41 0.00 0.00 %W 7 18.01+77.40*(2/3) = 18.01+51.60=69.61 ] def %CVMOYLC+NW /LAB*06 [%Symmetric Reflective System OYLCVMO+NW (SRS18) 56.71 67.03 38.70 %O 0 18.01 + 77.40*0.5 = 18.01 + 38.70 = 56.71 56.71 00.00 77.40 %Y 1 C*ab = 77.40 56.71 -67.03 38.70 %L 2 0.866 C*ab = 67.03 56.71 -67.03 -38.70 %C 3 delta L*=25.8 56.71 00.00 -77.40 %V 4 43.81=18.01+25.80 56.71 67.03 -38.70 %M 5 69.61=18.01+2*25.80 18.01 0.00 0.00 %N 6 95.41 0.00 0.00 %W 7 95.41=18.01+3*25.80 ] def %CVMOYLC+NW /LAB*07 [%D=Device OYLCVMO+NW %for Television Luminous System (TLS70) 76.43 26.27 10.57 %O 0 93.93 -10.77 34.63 %Y 1 89.32 -35.81 27.64 %L 2 90.93 -21.96 -7.08 %C 3 %see Annex A, www.ps.bam.de/RLABE.PDF 72.10 15.76 -35.64 %V 4 78.50 37.52 -25.24 %M 5 69.70 0.00 0.00 %N 6 Yr=40.32 95.41 0.00 0.00 %W 7 ] def %OYLCVMO+NW } if %ISRL*ioL=0 ISRL*ioL 1 eq { %ISRL*ioL=1 /LAB*00 [%D=Device CVMOYLC+NW %for Television Luminous System (TLS00) 50.50 76.91 64.55 %O 0 92.66 -20.68 90.75 %Y 1 83.62 -82.74 79.90 %L 2 86.88 -46.15 -13.54 %C 3 %see TABle 1 of ISO/IEC 15775:1999-12 30.39 76.06 -103.6 %V 4 %see TABle X of ISO/IEC TR 24705:2005-10 57.31 94.35 -58.40 %M 5 %see Annex A, www.ps.bam.de/RLABE.PDF 00.01 0.00 0.00 %N 6 Yr=0.00 95.41 0.00 0.00 %W 7 ] def %CVMOYLC+NW /LAB*01 [%D=Device CVMOYLC+NW %for Television Luminous System (TLS06) 51.08 75.54 59.69 %O 0 92.68 -20.51 89.24 %Y 1 83.72 -81.79 78.32 %L 2 86.94 -45.72 -13.43 %C 3 %see Annex A, www.ps.bam.de/RLABE.PDF 31.77 72.91 -101.3 %V 4 57.74 93.06 -57.71 %M 5 05.69 0.00 0.00 %N 6 Yr=0.63 95.41 0.00 0.00 %W 7 ] def %CVMOYLC+NW /LAB*02 [%D=Device CVMOYLC+NW %for Television Luminous System (TLS11) 51.65 74.20 55.83 %O 0 92.70 -20.35 87.77 %Y 1 83.81 -80.85 76.81 %L 2 87.01 -45.28 -13.33 %C 3 %see Annex A, www.ps.bam.de/RLABE.PDF 33.06 70.03 -99.09 %V 4 58.17 91.80 -57.03 %M 5 10.99 0.00 0.00 %N 6 Yr=1.26 95.41 0.00 0.00 %W 7 ] def %CVMOYLC+NW /LAB*03 [%D=Device CVMOYLC+NW %for Television Luminous System (TLS18) 52.76 71.63 49.88 %O 0 92.74 -20.03 84.97 %Y 1 84.00 -78.99 73.94 %L 2 87.14 -44.42 -13.12 %C 3 %see TABle 1 of ISO/IEC 15775:1999-12 35.47 64.92 -95.07 %V 4 %see TABle X of ISO/IEC TR 24705:2005-10 59.01 89.33 -55.68 %M 5 %see Annex A, www.ps.bam.de/RLABE.PDF 18.01 0.00 0.00 %N 6 Yr=2.52 95.41 0.00 0.00 %W 7 ] def %CVMOYLC+NW /LAB*04 [%D=Device CVMOYLC+NW %for Television Luminous System (TLS27) 54.88 66.84 41.69 %O 0 92.82 -19.39 79.81 %Y 1 84.37 -75.39 68.76 %L 2 87.40 -42.72 -12.70 %C 3 %see Annex A, www.ps.bam.de/RLABE.PDF 39.70 56.66 -88.02 %V 4 60.64 84.61 -53.08 %M 5 26.85 0.00 0.00 %N 6 Yr=5.04 95.41 0.00 0.00 %W 7 ] def %CVMOYLC+NW /LAB*05 [%D=Device CVMOYLC+NW %for Television Luminous System (TLS38) 58.77 58.45 31.73 %O 0 92.98 -18.11 70.81 %Y 1 85.11 -68.58 60.02 %L 2 87.92 -39.42 -11.87 %C 3 %see Annex A, www.ps.bam.de/RLABE.PDF 46.64 44.93 -76.56 %V 4 63.71 75.92 -48.22 %M 5 37.99 0.00 0.00 %N 6 Yr=10.08 95.41 0.00 0.00 %W 7 ] def %CVMOYLC+NW /LAB*06 [%D=Device CVMOYLC+NW %for Television Luminous System (TLS52) 65.53 45.06 20.98 %O 0 93.30 -15.61 56.27 %Y 1 86.55 -56.31 46.52 %L 2 88.94 -33.19 -10.24 %C 3 %see Annex A, www.ps.bam.de/RLABE.PDF 57.17 30.66 -59.40 %V 4 69.22 60.95 -39.57 %M 5 52.02 0.00 0.00 %N 6 Yr=20.16 95.41 0.00 0.00 %W 7 ] def %CVMOYLC+NW /LAB*07 [%D=Device CVMOYLC+NW %for Television Luminous System (TLS70) 76.43 26.27 10.57 %O 0 93.93 -10.77 34.63 %Y 1 89.32 -35.81 27.64 %L 2 90.93 -21.96 -7.08 %C 3 %see Annex A, www.ps.bam.de/RLABE.PDF 72.10 15.76 -35.64 %V 4 78.50 37.52 -25.24 %M 5 69.70 0.00 0.00 %N 6 Yr=40.32 95.41 0.00 0.00 %W 7 ] def %CVMOYLC+NW } if %ISRL*ioL=1 ISRL*ioL 2 eq { %ISRL*ioL=2 /LAB*00 [%D=Device OYLCVMO+NW %for Offset Luminous System (OLS00) 45.14 71.37 75.54 %O 0 90.22 -10.60 99.51 %Y 1 48.45 -73.19 42.21 %L 2 56.88 -33.11 -47.41 %C 3 %see TABle 1 of ISO/IEC 15775:1999-12 16.48 45.84 -56.22 %V 4 %see TABle X of ISO/IEC TR 24705:2005-10 45.36 81.85 -9.29 %M 5 %see Annex A, www.ps.bam.de/RLABE.PDF 00.01 0.00 0.00 %N 6 Yr=0.00 95.41 0.00 0.00 %W 7 ] def %OYLCVMO+NW /LAB*01 [%D=Device OYLCVMO+NW %for Offset Luminous System (OLS06) 45.87 69.79 66.99 %O 0 90.25 -10.51 97.42 %Y 1 49.08 -70.28 40.08 %L 2 57.33 -32.38 -46.80 %C 3 %see Annex A, www.ps.bam.de/RLABE.PDF 19.26 40.73 -52.47 %V 4 46.07 80.12 -9.04 %M 5 05.69 0.00 0.00 %N 6 Yr=0.63 95.41 0.00 0.00 %W 7 ] def %OYLCVMO+NW /LAB*02 [%D=Device OYLCVMO+NW %for Offset Luminous System (OLS11) 46.57 68.27 59.62 %O 0 90.29 -10.43 95.45 %Y 1 49.70 -67.60 38.19 %L 2 57.76 -31.68 -46.19 %C 3 %see Annex A, www.ps.bam.de/RLABE.PDF 21.67 36.81 -49.37 %V 4 46.77 78.45 -8.80 %M 5 10.99 0.00 0.00 %N 6 Yr=1.26 95.41 0.00 0.00 %W 7 ] def %OYLCVMO+NW /LAB*03 [%D=Device OYLCVMO+NW %for Offset Luminous System (OLS18) 47.94 65.39 50.52 %O 0 90.37 -10.26 91.75 %Y 1 50.90 -62.83 34.96 %L 2 58.62 -30.34 -45.01 %C 3 %see TABle 1 of ISO/IEC 15775:1999-12 25.72 31.10 -44.40 %V 4 %see TABle X of ISO/IEC TR 24705:2005-10 48.13 75.28 -8.36 %M 5 %see Annex A, www.ps.bam.de/RLABE.PDF 18.01 0.00 0.00 %N 6 Yr=2.52 95.41 0.00 0.00 %W 7 ] def %OYLCVMO+NW /LAB*04 [%D=Device OYLCVMO+NW %for Offset Luminous System (OLS27) 50.51 60.17 40.13 %O 0 90.52 -9.92 85.20 %Y 1 53.18 -55.04 30.00 %L 2 60.28 -27.91 -42.75 %C 3 %see Annex A, www.ps.bam.de/RLABE.PDF 32.06 24.02 -37.32 %V 4 50.68 69.50 -7.57 %M 5 26.85 0.00 0.00 %N 6 Yr=5.04 95.41 0.00 0.00 %W 7 ] def %OYLCVMO+NW /LAB*05 [%D=Device OYLCVMO+NW %for Offset Luminous System (OLS38) 55.13 51.42 29.16 %O 0 90.83 -9.25 74.37 %Y 1 57.35 -43.84 23.35 %L 2 63.39 -23.83 -38.56 %C 3 %see Annex A, www.ps.bam.de/RLABE.PDF 41.26 16.67 -28.49 %V 4 55.27 59.74 -6.32 %M 5 37.99 0.00 0.00 %N 6 Yr=10.08 95.41 0.00 0.00 %W 7 ] def %OYLCVMO+NW /LAB*06 [%D=Device OYLCVMO+NW %for Offset Luminous System (OLS52) 62.90 38.38 18.55 %O 0 91.44 -7.95 57.91 %Y 1 64.49 -30.06 15.67 %L 2 68.98 -17.74 -31.24 %C 3 %see Annex A, www.ps.bam.de/RLABE.PDF 53.87 10.09 -18.84 %V 4 63.00 44.96 -4.56 %M 5 52.02 0.00 0.00 %N 6 Yr=20.16 95.41 0.00 0.00 %W 7 ] def %OYLCVMO+NW /LAB*07 [%D=Device OYLCVMO+NW %for Offset Luminous System (OLS70) 75.01 21.53 9.07 %O 0 92.64 -5.45 34.85 %Y 1 75.86 -15.50 7.96 %L 2 78.37 -9.90 -19.51 %C 3 %see Annex A, www.ps.bam.de/RLABE.PDF 70.54 4.74 -9.47 %V 4 75.07 25.47 -2.46 %M 5 69.70 0.00 0.00 %N 6 Yr=40.32 95.41 0.00 0.00 %W 7 ] def %OYLCVMO+NW } if %ISRL*ioL=2 0 1 11 {/sISO exch def /i30 sISO 3 mul def /i31 i30 1 add def /i32 i30 2 add def sISO 7 le { %sISO=0,7 ISIO*ioL 0 eq { %ORS18/TLS00/OLS00 LAB* i30 LAB*00 i30 get put LAB* i31 LAB*00 i31 get put LAB* i32 LAB*00 i32 get put } if ISIO*ioL 1 eq { %TLS00/TLS06/OLS06 LAB* i30 LAB*01 i30 get put LAB* i31 LAB*01 i31 get put LAB* i32 LAB*01 i32 get put } if ISIO*ioL 2 eq { %FRS06/TLS11/OLS11 LAB* i30 LAB*02 i30 get put LAB* i31 LAB*02 i31 get put LAB* i32 LAB*02 i32 get put } if ISIO*ioL 3 eq { %TLS18/TLS18/OLS18 LAB* i30 LAB*03 i30 get put LAB* i31 LAB*03 i31 get put LAB* i32 LAB*03 i32 get put } if ISIO*ioL 4 eq { %NLS00/TSL28/OLS28 LAB* i30 LAB*04 i30 get put LAB* i31 LAB*04 i31 get put LAB* i32 LAB*04 i32 get put } if ISIO*ioL 5 eq { %NRS18/TLS38/OLS38 LAB* i30 LAB*05 i30 get put LAB* i31 LAB*05 i31 get put LAB* i32 LAB*05 i32 get put } if ISIO*ioL 6 eq { %SRS18/TLS50/OLS50 LAB* i30 LAB*06 i30 get put LAB* i31 LAB*06 i31 get put LAB* i32 LAB*06 i32 get put } if ISIO*ioL 7 eq { %TLS70/TLS70/OLS70 LAB* i30 LAB*07 i30 get put LAB* i31 LAB*07 i31 get put LAB* i32 LAB*07 i32 get put } if } %sISO=0,7 { %sISO=8,11 /jISO sISO 8 sub def /j30 jISO 3 mul def /j31 j30 1 add def /j32 j30 2 add def LAB* i30 RJGBLAB* j30 get put LAB* i31 RJGBLAB* j31 get put LAB* i32 RJGBLAB* j32 get put } ifelse %sISO=0,7 and 8,11 } for /L*Nio LAB* 18 get def /A*Nio LAB* 19 get def /B*Nio LAB* 20 get def /L*Wio LAB* 21 get def /A*Wio LAB* 22 get def /B*Wio LAB* 23 get def /A*Dio A*Wio A*Nio sub def /B*Dio B*Wio B*Nio sub def 0 1 11 {/sISO exch def /i30 sISO 3 mul def /i31 i30 1 add def /i32 i30 2 add def LAB*a i30 LAB* i30 get put /l*CIE LAB* i30 get L*Nio sub L*Wio L*Nio sub div def %system rel. lightn. /a*s A*Wio A*Nio sub l*CIE mul def /b*s B*Wio B*Nio sub l*CIE mul def LAB*a i31 LAB* i31 get A*Nio sub a*s sub put LAB*a i32 LAB* i32 get B*Nio sub b*s sub put } for /cLAB*s0 3 array def %C cyan blue /vLAB*s0 3 array def %V violet blue /mLAB*s0 3 array def %M magenta red /oLAB*s0 3 array def %O orange red /yLAB*s0 3 array def %Y yellow /lLAB*s0 3 array def %L leaf green /nLAB*s0 3 array def %N black /wLAB*s0 3 array def %W white /rLAB*s0 3 array def %R elementary red /jLAB*s0 3 array def %J elementary yellow /gLAB*s0 3 array def %G elementary green /bLAB*s0 3 array def %B elementary blue %Determine Matrix data input or output data oLAB*s0 0 LAB*a 0 get L*Nio sub put oLAB*s0 1 LAB*a 1 get put oLAB*s0 2 LAB*a 2 get put yLAB*s0 0 LAB*a 3 get L*Nio sub put yLAB*s0 1 LAB*a 4 get put yLAB*s0 2 LAB*a 5 get put lLAB*s0 0 LAB*a 6 get L*Nio sub put lLAB*s0 1 LAB*a 7 get put lLAB*s0 2 LAB*a 8 get put cLAB*s0 0 LAB*a 9 get L*Nio sub put cLAB*s0 1 LAB*a 10 get put cLAB*s0 2 LAB*a 11 get put vLAB*s0 0 LAB*a 12 get L*Nio sub put vLAB*s0 1 LAB*a 13 get put vLAB*s0 2 LAB*a 14 get put mLAB*s0 0 LAB*a 15 get L*Nio sub put mLAB*s0 1 LAB*a 16 get put mLAB*s0 2 LAB*a 17 get put nLAB*s0 0 LAB*a 18 get L*Nio sub put nLAB*s0 1 LAB*a 19 get put nLAB*s0 2 LAB*a 20 get put wLAB*s0 0 LAB*a 21 get L*Nio sub put wLAB*s0 1 LAB*a 22 get put wLAB*s0 2 LAB*a 23 get put rLAB*s0 0 LAB*a 24 get L*Nio sub put rLAB*s0 1 LAB*a 25 get put rLAB*s0 2 LAB*a 26 get put jLAB*s0 0 LAB*a 27 get L*Nio sub put jLAB*s0 1 LAB*a 28 get put jLAB*s0 2 LAB*a 29 get put gLAB*s0 0 LAB*a 30 get L*Nio sub put gLAB*s0 1 LAB*a 31 get put gLAB*s0 2 LAB*a 32 get put bLAB*s0 0 LAB*a 33 get L*Nio sub put bLAB*s0 1 LAB*a 34 get put bLAB*s0 2 LAB*a 35 get put % Determine the input or output angle in the A* B* plane % of each of the colours defined above /C*Ang cLAB*s0 2 get cLAB*s0 1 get 0.0001 add atan def /V*Ang vLAB*s0 2 get vLAB*s0 1 get 0.0001 add atan def /M*Ang mLAB*s0 2 get mLAB*s0 1 get 0.0001 add atan def /O*Ang oLAB*s0 2 get oLAB*s0 1 get 0.0001 add atan def /Y*Ang yLAB*s0 2 get yLAB*s0 1 get 0.0001 add atan def /L*Ang lLAB*s0 2 get mLAB*s0 1 get 0.0001 add atan def /N*Ang 0 def /W*Ang 0 def /R*Ang rLAB*s0 2 get rLAB*s0 1 get 0.0001 add atan def /J*Ang jLAB*s0 2 get jLAB*s0 1 get 0.0001 add atan def /G*Ang gLAB*s0 2 get gLAB*s0 1 get 0.0001 add atan def /B*Ang bLAB*s0 2 get bLAB*s0 1 get 0.0001 add atan def % The detprocL below finds the determinant of the Matrix: % | A1 B1 C1 D1 | % | A2 B2 C2 D2 | % | A3 B3 C3 D3 | % | A4 B4 C4 D4 | % /detprocL { %BEG procedure detprocL /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 %END procedure detprocL % The CoeffprocL 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 % /CoeffprocL { %BEG procedure CoeffprocL /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 detprocL /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 detprocL /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 detprocL /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 detprocL /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 detprocL /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 } bind def %BEG procedure CoeffprocL } def %END Procedure LAB*ioL %notwendig %*********************************************************** /cmyolv*io_to_LAB*ioL { %BEG Procedure transfer cmyolv*io_to_LAB*ioL %notwendig %input olv* for IMODE=0 and cmy* for IMODE=1 %the following calculations based on olv* %Procedure LAB*inoutL is required in advance IMODE 1 eq {%IMODE=1, input cmy* /o* 1 c* sub def /l* 1 m* sub def /v* 1 y* sub def } if %output olv* and cmy* for both olv* and cmy* input %n*n: relative blackness %r*n: relative chromaticness %w*n: relative whiteness %L*F: CIE lightness L* %A*F: CIE chromaticness a* %B*F: CIE chromaticness b* %C*F: CIE radial chroma Cab* %x*F: x-position of colour F %y*F: y-position of colour F %e*w: eigencolour value of F o* 0 le {/o* 0.0001 def} if l* 0 le {/l* 0.0001 def} if v* 0 le {/v* 0.0001 def} if o* 1 ge {/o* 0.9999 def} if l* 1 ge {/l* 0.9999 def} if v* 1 ge {/v* 0.9999 def} if /tdel 0 def v* l* ge l* o* ge and tdel 0 eq and % v* >= l* >= o* equal y* <= m* <= c* %sector C-V of C-M, C>=M: i*p=0 {/w*n o* def /n*n 1 v* sub def /t*a v* l* sub def /array1 vLAB*s0 def % colour 1 is violet blue /t*b l* o* sub def /array2 cLAB*s0 def % colour 2 is cyan blue /i*p 0 def o* l* sub abs 0.001 le {/i*p 1 def} if /t*p l* l* v* add 0.0001 add div def /tdel 1 def } if % v* >= l* >= o* v* o* ge o* l* ge and tdel 0 eq and % v* >= o* >= l* equal y* <= c* <= m* %sector V-M of C-M, M>=C: i*p=1 {/w*n l* def /n*n 1 v* sub def /t*a v* o* sub def /array1 vLAB*s0 def % colour 1 is violet blue /t*b o* l* sub def /array2 mLAB*s0 def % colour 2 is magenta red /i*p 1 def v* o* sub abs 0.001 le {/i*p 2 def} if /t*p o* o* v* add 0.0001 add div def /tdel 1 def } if % v* >= o* >= l* o* v* ge v* l* ge and tdel 0 eq and % o* >= v* >= l* equal c* <= y* <= m* %sector M-O of M-Y, M>=Y: i*p=2 {/w*n l* def /n*n 1 o* sub def /t*a o* v* sub def /array1 oLAB*s0 def % colour 1 is orange /t*b v* l* sub def /array2 mLAB*s0 def % colour 2 is magenta red /i*p 2 def l* v* sub abs 0.001 le {/i*p 3 def} if /t*p v* v* o* add 0.0001 add div def /tdel 1 def } if % o* >= v* >= l* o* l* ge l* v* ge and tdel 0 eq and % o* >= l* >= v* equal c* <= m* <= y* %sector O-Y of M-Y, Y>=M: i*p=3 {/w*n v* def /n*n 1 o* sub def /t*a o* l* sub def /array1 oLAB*s0 def % colour 1 is orange red /t*b l* v* sub def /array2 yLAB*s0 def % colour 2 is yellow /i*p 3 def o* l* sub abs 0.001 le {/i*p 4 def} if /t*p l* l* o* add 0.0001 add div def /tdel 1 def } if % o* >= l* >= v* l* o* ge o* v* ge and tdel 0 eq and % l* >= o* >= v* equal m* <= c* <= y* %sector Y-L of Y-C, Y>=C: i*p=4 {/w*n v* def /n*n 1 l* sub def /t*a l* o* sub def /array1 lLAB*s0 def % colour 1 is leaf green /t*b o* v* sub def /array2 yLAB*s0 def % colour 2 is yellow /i*p 4 def o* v* sub abs 0.001 le {/i*p 5 def} if /t*p o* o* l* add 0.0001 add div def /tdel 1 def } if % l* >= o* >= v* l* v* ge v* o* ge and tdel 0 eq and % l* >= v* >= o* equal m* <= y* <= c* %sector L-C of Y-C, C>=Y: i*p=5 {/w*n o* def /n*n 1 l* sub def /t*a l* v* sub def /array1 lLAB*s0 def % colour 1 is leaf green /t*b v* o* sub def /array2 cLAB*s0 def % colour 2 is cyan blue /i*p 5 def l* v* sub abs 0.001 le {/i*p 0 def} if /t*p v* v* l* add 0.0001 add div def /tdel 1 def } if % l* >= v* >= o* %achromatic %W: o*, l*, v* = 1.00 1.0 o* sub abs 0.001 le 1.0 l* sub abs 0.001 le and 1.0 v* sub abs 0.001 le and %W special case {/i*p 6 def %W /e*w 0 def /n*n 0 def /w*n 1 def /t*a 0.0001 def /t*b 0.0001 def /t*p 0.0001 def } if %N: o*, l*, v* <= 0.001 o* abs 0.001 le l* abs 0.001 le and v* abs 0.001 le and %N special case {/i*p 6 def %N /e*w 0 def /n*n 1 def /w*n 0 def /t*a 0.0001 def /t*b 0.0001 def /t*p 0.0001 def } if %Achromatic o* l* sub abs 0.001 le l* v* sub abs 0.001 le and %Achromatic special case {/i*p 6 def %N /e*w 0 def /n*n 1 o* sub def /w*n o* def /t*a 0.0001 def /t*b 0.0001 def /t*p 0.0001 def } if /r*n 1 w*n sub n*n sub def /t*n 1 t*p sub def %w0-line of equal relative whiteness in colour triangle: y = 0.5 / h x + yw0 %n0-line of equal relative blackness in colour triangle: y = -0.5 / h x + yn0 %x*F = (yn0 - yw0) h %y*F = 0.5 (yn0 - yw0) + yw0 = 0.5 (yn0 + yw0) /h 0.75 sqrt def /yn0 1 n*n sub def /yw0 w*n def /x*F yn0 yw0 sub h mul def /y*F yn0 yw0 add 0.5 mul def /t*F y*F def /lab*tFa t*F def /lab*cFa r*n def /lab*wFa w*n def /lab*nFa n*n def %x*F / (1-y*F) = e*x / 1 %e*w = e*x /(2h) = [x*F / (1-y*F)]/(2h) %/e*w x*F 1 y*F sub div 2 h mul div def /e*w r*n n*n r*n add 0.0001 add div def %Eigencolor ratio r*n abs 0.001 le r*n abs 0.001 le and {/e*w 0.0001 def} if % with 0 for achromatic (c*n=0) and 1 for whitish colors (n*n=0) %cmyolv*_to_cmy* /c* 1 o* sub def /m* 1 l* sub def /y* 1 v* sub def %cmyolv*_to_LAB*LFs0 %L*Fs0 = w*n wLAB*s0 (0) + n*n nLAB*s0 (0) + t*a array1(0) + t*b array2(0) %A*Fs0 = w*n wLAB*s0 (1) + n*n nLAB*s0 (1) + t*a array1(1) + t*b array2(1) %B*Fs0 = w*n wLAB*s0 (2) + n*n nLAB*s0 (2) + t*a array1(2) + t*b array2(2) /L*Fs0 w*n wLAB*s0 0 get mul n*n nLAB*s0 0 get mul add t*a array1 0 get mul add t*b array2 0 get mul add def /A*Fs0 w*n wLAB*s0 1 get mul n*n nLAB*s0 1 get mul add t*a array1 1 get mul add t*b array2 1 get mul add def /B*Fs0 w*n wLAB*s0 2 get mul n*n nLAB*s0 2 get mul add t*a array1 2 get mul add t*b array2 2 get mul add def /L*Fsm t*a array1 0 get mul t*b array2 0 get mul add L*Nio add def %LAB*Fs0_to_LAB*F /L*F L*Fs0 L*Nio add def /l*CIE L*F L*Nio sub L*Wio L*Nio sub 0.0001 add div def /A*F A*Fs0 A*Nio add A*Dio l*CIE mul add def /B*F B*Fs0 B*Nio add B*Dio l*CIE mul add def /lab*lFa l*CIE def /LAB*LF L*F def /LAB*AF A*F def /LAB*BF B*F def /LAB*LFa L*F def /LAB*AFa A*Fs0 def /LAB*BFa B*Fs0 def %FOR CIELAB LCH /C*Fs0 A*Fs0 dup mul B*Fs0 dup mul add 0.000001 add sqrt def /H*Fs0 B*Fs0 A*Fs0 0.0001 add atan def /LAB*CFa C*Fs0 def /LAB*HFa H*Fs0 def /lab*hFa LAB*HFa 360 div def } bind def %END Procedure transfer cmyolv*io_to_LAB*ioL (L=local) %notwendig /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 %%EndProlog gsave /lanind 0 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 /xchartf where {pop /xchart1 xchartf def /xchart2 xchartf 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 /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 /cvi100show {100 mul cvi /xi exch def xi 0 lt {/vorz -1 def} {/vorz 1 def} ifelse /xia xi abs def vorz -1 eq {(\255) show} {(0) show} ifelse xia 0 ge xia 9 le {(000) show} if xia 10 ge xia 99 le and {(00) show} if xia 100 ge xia 999 le and {(0) show} if % xia 1000 ge xia 9999 le and {() show} if xia cvishow ( ) show } bind def /cvi001show {1000 mul cvi /xi exch def /xia xi abs def xia 0 ge xia 9 le {(000) show} if xia 10 ge xia 99 le and {(00) show} if xia 100 ge xia 999 le and {(0) show} if % xia 1000 ge xia 9999 le and {( ) show} if xia cvishow ( ) show } bind def /nr1 27 array def /tx1 52 array def /nr1 [(01) (02) (03) (04) (05) (06) (07) (08) (09) (10) (11) (12) (13) (14) (15) (16) (17) (18) (19) (20) (21) (22) (23) (24) (25) (26) (27)] def /tx1 [(A) (B) (C) (D) (E) (F) (G) (H) (I) (J) (K) (L) (M) (N) (O) (P) (Q) (R) (S) (T) (U) (V) (W) (X) (Y) (Z) (a) (b) (c) (d) (e) (f) (g) (h) (i) (j) (k) (l) (m) (n) (o) (p) (q) (r) (s) (t) (u) (v) (w) (x) (y) (z)] def 72 90 translate gsave %00 1 10 {/xchart exch def %xchart=0,10 %stackoverflow for >11 gsave xchart 10 le {/ISRL*ioL 2 def /xcharts 3 def} if %main series ORS18, TLS00, ... xchart 11 ge xchart 18 le and {/ISRL*ioL 1 def /xcharts 11 def} if %series ORSxx xchart 19 ge {/ISRL*ioL 2 def /xcharts 19 def} if %series TLSxx /ISRL*ioG ISRL*ioL def %8 Systems OLS18(ISRL*ioL=0), TLS00(ISRL*ioL=1), OLS00(ISRL*ioL=2) /LAB*ioG where {pop xchart 2 le {/ISIO*ioG 0 def} {/ISIO*ioG xchart xcharts sub def} ifelse LAB*ioG} {xchart 2 le {/ISIO*ioL 0 def} {/ISIO*ioL xchart xcharts sub def} ifelse LAB*ioL} ifelse /xs 900 3 div 2 mul def /ys xs def /d2 xs 2 div def /d8 xs 8 div def 8 /Times-ISOL1 FS 2 -7 moveto (AEY80-7N, ) show %colorm 0 eq {(N, ) show} {(F, ) show} ifelse (Test chart with 40x27=1080 colours) showen (Pr\374fvorlage mit 40x27=1080 Farben) showde (; digital equidistant 9 or 16 step colour scales;) showen (; digital gleichabst\344ndige 9 oder 16stufige Farbreihen;) showde ( Farbdaten in Spalte (A-n):) showde ( Colour data in column (A-n):) showen ( rgb (A-j, n), 000n (k), w (l), nnn0 (m)) show (, 245mm x 170mm) show %xchart 0 eq {(, 5,4mm x 5,4mm, 245mm x 170mm) show} if %xchart 0 eq {(, 245mm x 170mm) show} if %xchart 1 ge {(, 6,0mm x 6,0mm, 270mm x 187mm) show} if (, Page ) showen (, Seite ) showde xchart 1 add cvishow (/11, ) show xchart 2 le {LAB*TE 0 ISRL*ioL 8 mul add get show} {LAB*TE xchart 3 sub ISRL*ioL 8 mul add get show} ifelse (a) show xchart 0 eq {0.010 MM dup scale} if xchart 1 ge {0.010 MM dup scale} if /xmin 650 3 div 2.2 mul def /ymax 15800 def /xd 800 3 div 2 mul def /yd 800 3 div 2 mul def /xsd xs xd sub 0.5 mul def /ysd xs xd sub 0.5 mul def 0.5 0.5 0.5 setrgbcolor 0 0 moveto 24500 0 rlineto 0 17000 rlineto 24500 neg 0 rlineto closepath fill 20 setlinewidth 500 3 div 2 mul /CourierB-ISOL1 FS 0 0 0 setrgbcolor 1 1 27 {/i exch def %i=1,27 /x xs 0.1 mul def /y 27.6 ys mul ys i mul sub def x y moveto nr1 i 1 sub get show } for %i=1,27 1 1 40 {/i exch def %i=1,36 /x xs i mul 000 add def /y 27.6 ys mul def x y moveto tx1 i 1 sub get show } for %i=1,36 /IMODE 0 def %input rgb for output LAB* %row no.1 and 2: 9xrgb /imax 08 def /jmax 08 def /kmax 08 def /TKK2 {250 3 div 2 mul /CourierB-ISOL1 FS} bind def /TKK3 {190 8 div 2 mul /CourierB-ISOL1 FS} bind def TKK2 /xa xmin def %only for first line program macps2pdf /ya ymax def xa ya 600 3 div 2 mul add moveto ( $ ) show /ix 2 def ix 2 ne {%ix#2 0 1 kmax {/k exch def %beg k=0,08 /k0 k 3 idiv def /k1 k k0 3 mul sub def /xadd k1 xs 9 mul mul def /yadd k0 xs 9 mul mul def 0 1 jmax {/j exch def %beg j=0,jmax 0 1 imax {/i exch def %beg i=0,imax /n i j 9 mul add k 81 mul add def /j1 j k1 9 mul add def /j1$ tx1 j1 get def /i1 i 1 add k0 9 mul add def /xa xmin j xs mul add xadd add xsd add def /ya ymax i ys mul sub yadd sub ysd add def /r k kmax div def /g j jmax div def /b i imax div def /r*x r def /g*x g def /b*x b def xchart 1 le { r g b setrgbcolor} {1 1 1 setrgbcolor} ifelse xa ya xd dup rec fill xchart 2 eq {0 0 0 setrgbcolor xa ya 600 3 div 2 mul add moveto r*x cvi001show xa ya 400 3 div 2 mul add moveto g*x cvi001show xa ya 200 3 div 2 mul add moveto b*x cvi001show } if xchart 3 ge {0 0 0 setrgbcolor /o* r*x def /l* g*x def /v* b*x def /cmyolv*io_to_LAB*ioG where {pop cmyolv*io_to_LAB*ioG} {cmyolv*io_to_LAB*ioL} ifelse xa ya 600 3 div 2 mul add moveto LAB*LFa cvi100show xa ya 400 3 div 2 mul add moveto LAB*AFa cvi100show xa ya 200 3 div 2 mul add moveto LAB*BFa cvi100show } if xchart 2 ge {%xchart>=2 TKK3 xa ya 140 3 div 2 mul add moveto (%#) show r*x cvi001show g*x cvi001show b*x cvi001show xa ya 080 3 div 2 mul add moveto 1 r*x sub cvi001show 1 g*x sub cvi001show 1 b*x sub cvi001show (0000 ) show xa ya 020 3 div 2 mul add moveto (%) show n 9 le {(000) show} if n 10 ge n 99 le and {(00) show} if n 100 ge n 999 le and {(0) show} if n cvishow ( ) show j1$ show i1 9 le {(0) show} if i1 cvishow ( $) show TKK2 } if %xchart>=2 } for %end i=0,jmax } for %end j=0,jmax } for %end k=0,kmax } if %ix#2 %3x rgbcmy /id 1 8 div def /rijn 81 array def %for intermediate storage /gijn 81 array def /bijn 81 array def /lmax 2 def /n 728 def 0 1 lmax {/l exch def %beg k=0,kmax /xadd 3 xs 9 mul mul def /yadd l ys 9 mul mul def %for intermediate storage of l=0,lmax 0 1 01 {/jchart exch def %jchart=0,1 /xchartj l jchart 3 mul add def 0 1 08 {/j exch def %j=0,7 /im 8 j sub def jchart 1 im {/i exch def %i=0,8 /ia 1 id j mul sub def /argb ia def /brgb ia i id mul sub def xchartj 0 eq {/r argb def /g brgb def /b brgb def} if xchartj 1 eq {/r argb def /g argb def /b brgb def} if xchartj 2 eq {/r brgb def /g argb def /b brgb def} if xchartj 3 eq {/r brgb def /g argb def /b argb def} if xchartj 4 eq {/r brgb def /g brgb def /b argb def} if xchartj 5 eq {/r argb def /g brgb def /b argb def} if jchart 0 eq {/in i j add def /jn j def} {/in j def /jn i j add def} ifelse rijn in 9 mul jn add r put gijn in 9 mul jn add g put bijn in 9 mul jn add b put } for %i=0,7 } for %j=0,8 } for %jchart=0,1 %for output of l=0,lmax 0 1 08 {/j exch def %j=0,8 0 1 08 {/i exch def %i=0,8 /r rijn i j 9 mul add get def /g gijn i j 9 mul add get def /b bijn i j 9 mul add get def /xa xmin xs j mul add xadd add xsd add def /ya ymax xs i mul sub yadd sub ysd add def /r*x r def /g*x g def /b*x b def /n n 1 add def /i1 i 1 add l 9 mul add def /j1 j 27 add def /j1$ tx1 j1 get def xchart 1 le { r g b setrgbcolor} {1 1 1 setrgbcolor} ifelse xa ya xd dup rec fill xchart 2 eq {0 0 0 setrgbcolor xa 20 add ya 600 3 div 2 mul add moveto r*x cvi001show xa 20 add ya 400 3 div 2 mul add moveto g*x cvi001show xa 20 add ya 200 3 div 2 mul add moveto b*x cvi001show } if xchart 3 ge {0 0 0 setrgbcolor /o* r*x def /l* g*x def /v* b*x def /cmyolv*io_to_LAB*ioG where {pop cmyolv*io_to_LAB*ioG} {cmyolv*io_to_LAB*ioL} ifelse xa ya 600 3 div 2 mul add moveto LAB*LFa cvi100show xa ya 400 3 div 2 mul add moveto LAB*AFa cvi100show xa ya 200 3 div 2 mul add moveto LAB*BFa cvi100show } if xchart 2 ge {%xchart>=2 TKK3 xa ya 140 3 div 2 mul add moveto (%#) show r*x cvi001show g*x cvi001show b*x cvi001show xa ya 080 3 div 2 mul add moveto 1 r*x sub cvi001show 1 g*x sub cvi001show 1 b*x sub cvi001show (0000 ) show xa ya 020 3 div 2 mul add moveto (%) show n 9 le {(000) show} if n 10 ge n 99 le and {(00) show} if n 100 ge n 999 le and {(0) show} if n cvishow ( ) show j1$ show i1 9 le {(0) show} if i1 cvishow ( $) show TKK2 } if %xchart>=2 } for %i=0,7 } for %j=0,8 } for %end l=0,lmax /ix 2 def ix 2 ne {%ix#2 %6wrgbcmy /n 971 /lmax 03 def %4 rows with geys /kmax 1 def %9 or 16 steps 0 1 kmax {/k exch def % k 0 eq {/jmax 08 def} {/jmax 15 def} ifelse 0 1 lmax {/l exch def %beg l=0,lmax /xadd 36 l add xs mul def /yadd k 9 xs mul mul def /j1 l 36 add def /j1$ tx1 j1 get def 0 1 jmax {/j exch def %j=0,08 /n n 1 add def /i1 j k 9 mul add 1 add def %9 steps, 16 steps /argb j jmax div def /xa xmin xadd add xsd add def /ya ymax xs j mul sub yadd sub ysd add def /r*x argb def /g*x argb def /b*x argb def xchart 1 le { l 0 eq {0 0 0 1 argb sub setcmykcolor} if l 1 eq {argb setgray} if l 2 eq {1 argb sub dup dup 0 setcmykcolor} if l 3 eq {argb dup dup setrgbcolor} if } {1 1 1 setrgbcolor} ifelse xa ya xd dup rec fill xchart 2 eq {0 0 0 setrgbcolor xa ya 600 3 div 2 mul add moveto r*x cvi001show xa ya 400 3 div 2 mul add moveto g*x cvi001show xa ya 200 3 div 2 mul add moveto b*x cvi001show } if xchart 3 ge {0 0 0 setrgbcolor /o* r*x def /l* g*x def /v* b*x def /cmyolv*io_to_LAB*ioG where {pop cmyolv*io_to_LAB*ioG} {cmyolv*io_to_LAB*ioL} ifelse xa ya 600 3 div 2 mul add moveto LAB*LFa cvi100show xa ya 400 3 div 2 mul add moveto LAB*AFa cvi100show xa ya 200 3 div 2 mul add moveto LAB*BFa cvi100show } if xchart 2 ge {%xchart>=2 TKK3 xa ya 140 3 div 2 mul add moveto (%#) show r*x cvi001show g*x cvi001show b*x cvi001show xa ya 080 3 div 2 mul add moveto 1 r*x sub cvi001show 1 g*x sub cvi001show 1 b*x sub cvi001show (0000 ) show xa ya 020 3 div 2 mul add moveto (%) show n 9 le {(000) show} if n 10 ge n 99 le and {(00) show} if n 100 ge n 999 le and {(0) show} if n cvishow ( ) show j1$ show i1 9 le {(0) show} if i1 cvishow ( $) show TKK2 } if %xchart>=2 } for %j=0,jmax } for %l=0,lmax } for %k=0,kmax } if %ix#2 %basic colours 1072 - 1080 /basrgb 24 array def /basrgb [0 0 0 1 1 1 1 0 0 0 1 1 1 1 0 0 0 1 0 1 0 1 0 1 ] def /n 1071 def 0 1 7 {/i exch def %i=0,7 /n n 1 add def /i3 i 3 mul def /xadd 36 xs mul def /yadd 25 xs mul def i 0 eq {/l 0 def /j 0 def /j1$ (k) def /i1 26 def} if i 1 eq {/l 0 def /j 1 def /j1$ (k) def /i1 27 def} if i 2 eq {/l 1 def /j 0 def /j1$ (l) def /i1 26 def} if i 3 eq {/l 1 def /j 1 def /j1$ (l) def /i1 27 def} if i 4 eq {/l 2 def /j 0 def /j1$ (m) def /i1 26 def} if i 5 eq {/l 2 def /j 1 def /j1$ (m) def /i1 27 def} if i 6 eq {/l 3 def /j 0 def /j1$ (n) def /i1 26 def} if i 7 eq {/l 3 def /j 1 def /j1$ (n) def /i1 27 def} if /xa xmin xs l mul add xadd add xsd add def /ya ymax xs j mul sub yadd sub ysd add def /r basrgb i3 get def /g basrgb i3 1 add get def /b basrgb i3 2 add get def /r*x r def /g*x g def /b*x b def xchart 1 le { r g b setrgbcolor} {1 1 1 setrgbcolor} ifelse xa ya xd dup rec fill xchart 2 eq {0 0 0 setrgbcolor xa ya 600 3 div 2 mul add moveto r cvi001show xa ya 400 3 div 2 mul add moveto g cvi001show xa ya 200 3 div 2 mul add moveto b cvi001show } if xchart 3 ge {0 0 0 setrgbcolor /o* r*x def /l* g*x def /v* b*x def /cmyolv*io_to_LAB*ioG where {pop cmyolv*io_to_LAB*ioG} {cmyolv*io_to_LAB*ioL} ifelse xa ya 600 3 div 2 mul add moveto LAB*LFa cvi100show xa ya 400 3 div 2 mul add moveto LAB*AFa cvi100show xa ya 200 3 div 2 mul add moveto LAB*BFa cvi100show } if xchart 2 ge {%xchart>=2 TKK3 xa ya 140 3 div 2 mul add moveto (%#) show r*x cvi001show g*x cvi001show b*x cvi001show xa ya 080 3 div 2 mul add moveto 1 r*x sub cvi001show 1 g*x sub cvi001show 1 b*x sub cvi001show (0000 ) show xa ya 020 3 div 2 mul add moveto (%) show n 9 le {(000) show} if n 10 ge n 99 le and {(00) show} if n 100 ge n 999 le and {(0) show} if n cvishow ( ) show j1$ show i1 9 le {(0) show} if i1 cvishow ( $) show TKK2 } if %xchart>=2 } for %i=0,7 xchart 1 ge {%xchart>=1 40 3 div 2 mul setlinewidth /xtmin xmin def /ytmax ymax xs 01 mul add def /ytmin ytmax xs 27 mul sub def /xtmax xtmin xs 36 mul add def /ytmean1 ytmin ytmax ytmin sub 0.3333 mul add def /ytmean2 ytmin ytmax ytmin sub 0.6667 mul add def 1 0 0 setrgbcolor %xchart>=2 1 1 4 {/k exch def /xta xtmin xs 9 mul k mul add def xta ytmin 100 sub moveto xta ytmax 100 add lineto stroke } for xtmin 100 sub ytmean1 moveto xtmax ytmean1 lineto stroke xtmin 100 sub ytmean2 moveto xtmax xs 4 mul add 100 add ytmean2 lineto stroke /ytmean3 ytmin 2 xs mul add def xtmax ytmean3 moveto xtmax xs 4 mul add 100 add ytmean3 lineto stroke } if %xchart>=1 showpage grestore %} for %xchart=0,10 %%Trailer