%!PS-Adobe-3.0 EPSF-3.0 AGD30-2N.EPS, compare ISO 9241-306:2018 A(E/F/G)39 %%BoundingBox: 70 85 240 206 %START PDFDE011.EPS /pdfmark01 where {pop} {userdict /pdfmark01 /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: farbe.li.tu-berlin.de/AGD3/AGD3.HTM) /Author (compare K. Richter "Computergrafik ...": ISBN 3-8007-1775-1) /Subject (goto: http://farbe.li.tu-berlin.de http://130.149.60.45/~farbmetrik) /Keywords (image reproduction, colour devices) /Creator (klaus.richter@mac.com) /CreationDate (D:2020020112000) /ModDate (D:2020020112000) /DOCINFO pdfmark01 [ /View [ /Fit ] /DOCVIEW pdfmark01 %END PDFDE011 %BEG AGD3 EARLY BINDING IMAGE FILE (G) 1MR-0000F 200301 %BEG 1MR-0000F.TXT, 1MR & relative gamma change 200301 /gammaFi 15 array def /gammaFi %rel. gamma according to ISO 9241-306:2018 [0.475 0.550 0.625 0.700 0.775 0.849 0.924 1.000 1.081 1.176 1.290 1.428 1.600 1.818 2.105] def /1MR-0000F {%BEG procedure 1MR-0000F /FF_LM_setgrayF0 {setgray} bind def /FF_LM_setrgbcolorF0 {setrgbcolor} bind def /FF_LM_setcmykcolorF0 {setcmykcolor} bind def /FF_LM_transferF0 {settransfer} bind def /FF_LM_colortransferF0 {setcolortransfer} bind def /FF_LM_xchartg_gammaF {gammaFi xchart get exp} def /FF_LM_setrgbcolorF {%BEG FF_LM_setrgbcolorF /FF_LM_b0L exch def /FF_LM_g0L exch def /FF_LM_r0L exch def FF_LM_r0L 0 le {/FF_LM_r0L 0.0001 def} if FF_LM_g0L 0 le {/FF_LM_g0L 0.0001 def} if FF_LM_b0L 0 le {/FF_LM_b0L 0.0001 def} if /FF_LM_r1F FF_LM_r0L FF_LM_xchartg_gammaF def /FF_LM_g1F FF_LM_g0L FF_LM_xchartg_gammaF def /FF_LM_b1F FF_LM_b0L FF_LM_xchartg_gammaF def FF_LM_r1F FF_LM_g1F FF_LM_b1F FF_LM_setrgbcolorF0} def %END FF_LM_setrgbcolorF /setgray {%BEG procedure setgrayF dup dup FF_LM_setrgbcolorF %STOPs } def %END procedure setgrayF %part2 /setcmykcolor {%BEG procedure setcmykcolorF /FF_LM_k exch def /FF_LM_y exch def /FF_LM_m exch def /FF_LM_c exch def FF_LM_k 0 eq {1 FF_LM_c sub 1 FF_LM_m sub 1 FF_LM_y sub FF_LM_setrgbcolorF} {1 FF_LM_k sub dup dup FF_LM_setrgbcolorF} ifelse %STOPc } def %END procedure setcmykcolorF /setrgbcolor {%BEG procedure setrgbcolorF /FF_LM_b exch def /FF_LM_g exch def /FF_LM_r exch def FF_LM_r FF_LM_g FF_LM_b FF_LM_setrgbcolorF %STOPr } def %BEG procedure setrgbcolorF /FF_LM_transferF {%BEG FF_LM_transferF {FF_LM_xchartg_gammaF} FF_LM_transferF0} def %END FF_LM_transferF /settransfer {FF_LM_transferF} def /FF_LM_colortransferF {%BEG FF_LM_colortransferF {FF_LM_xchartg_gammaF} {FF_LM_xchartg_gammaF} {FF_LM_xchartg_gammaF} FF_LM_colortransferF0} def %END FF_LM_colortransferF /setcolortransfer {FF_LM_colortransferF} def } def %END procedure 1MR-0000F /iproc1MR 1 def %/1MR-0000G where {pop 1MR-0000G}{1MR-0000F} ifelse iproc1MR 1 eq {1MR-0000F} if %1MR-0000G %END 1MR-0000F.TXT, 1MR & relative gamma change 200301 %END AGD3 EARLY BINDING IMAGE FILE (G) 1MR-0000F 200301 %****************************************************************** /xchart1f 00 def /xchart2f 00 def /xchartdf 01 def /xchartmf 08 def /xchartf xchart1f def %****************************************************************** /FS {findfont exch scalefont setfont} bind def /MM {72 25.4 div mul} def /str {8 string } bind def /A4querL {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 /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 /LAB*ioL {%BEG Procedure LAB*ioL (L=local) %requires ISRL*ioL=0,1,3 /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 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 %*********************************************************** /cmyolv*io_to_LAB*ioL { %BEG Procedure transfer cmyolv*io_to_LAB*ioL %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 %skip of olv* data <0 and >1 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 %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) /LAB*io_to_cmyolv*ioL {%BEG Procedure LAB*io_to_cmyolv*ioL (L=local) /B*F exch def /A*F exch def /L*F exch def %ISIO*ioL 0 eq ISOUP*ioL 3 eq and % {%achromatic transfer L*F,A*F,B*F (PR18) % % -> L*Fsa, A*Fsa, B*Fsa (PR18) % % -> L*F, A*F, B*F (TV18) % %LAB*F_to_LAB*Fsa % /l*CIE L*F L*Nio sub L*Wio L*Nio sub 0.0001 add div def % /A*Fs0 A*F A*Nio sub A*Dio l*CIE mul sub def % /B*Fs0 B*F B*Nio sub B*Dio l*CIE mul sub def % /A*F A*Fs0 def % /B*F B*Fs0 def % } if %achromatic transfer L*F,A*F,B*F (PR18) /l*CIE L*F L*Nio sub L*Wio L*Nio sub 0.0001 add div def /L*Fs0 L*F L*Nio sub def /A*Fs0 A*F A*Nio sub A*Dio l*CIE mul sub def /B*Fs0 B*F B*Nio sub B*Dio l*CIE mul sub def /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*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 % the angle formed by the input LAB* *color data in the A*B* plane /col_ang B*Fs0 A*Fs0 0.0001 add 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 red and orange red, sector M-O of M-Y, M>=Y col_ang M*Ang ge col_ang O*Ang lt or {1 wLAB*s0 0 get wLAB*s0 1 get wLAB*s0 2 get 1 nLAB*s0 0 get nLAB*s0 1 get nLAB*s0 2 get 1 mLAB*s0 0 get mLAB*s0 1 get mLAB*s0 2 get 1 oLAB*s0 0 get oLAB*s0 1 get oLAB*s0 2 get 1 L*Fs0 A*Fs0 B*Fs0 CoeffprocL /c1*w exch def %O /c2*w exch def %M /n*w exch def /w*w exch def %magenta is a mixture of orange red and voilet blue, therefore leaf green(l) = white, %orange(o) = 1-black(n), voilet blue(v) = white + magenta red (c2*w) /v*n w*w c2*w add def % /l*n w*w def /o*n 1 n*w sub def /i*p 2 def /t*p v*n v*n o*n add 0.0001 add div def } if % angle between orange red and yellow, sector O-Y of M-Y, Y>=M col_ang O*Ang ge col_ang Y*Ang lt and {1 wLAB*s0 0 get wLAB*s0 1 get wLAB*s0 2 get 1 nLAB*s0 0 get nLAB*s0 1 get nLAB*s0 2 get 1 oLAB*s0 0 get oLAB*s0 1 get oLAB*s0 2 get 1 yLAB*s0 0 get yLAB*s0 1 get yLAB*s0 2 get 1 L*Fs0 A*Fs0 B*Fs0 CoeffprocL /c1*w exch def %Y /c2*w exch def %O /n*w exch def /w*w exch def %yellow is a mixture of orange red and leaf green, therefore voilet blue(v) = white, %orange(o) = 1-black(n), leaf green(l) = white + yellow (c1*w) /l*n w*w c1*w add def /v*n w*w def /o*n 1 n*w sub def /i*p 3 def /t*p l*n l*n o*n add 0.0001 add div def } if % angle between yellow and leaf green, sector Y-L of Y-C, Y>=C col_ang Y*Ang ge col_ang L*Ang lt and {1 wLAB*s0 0 get wLAB*s0 1 get wLAB*s0 2 get 1 nLAB*s0 0 get nLAB*s0 1 get nLAB*s0 2 get 1 yLAB*s0 0 get yLAB*s0 1 get yLAB*s0 2 get 1 lLAB*s0 0 get lLAB*s0 1 get lLAB*s0 2 get 1 L*Fs0 A*Fs0 B*Fs0 CoeffprocL /c1*w exch def %L /c2*w exch def %Y /n*w exch def /w*w exch def %yellow is a mixture of orange red and leaf green, therefore voilet blue(v) = white , %leaf green(l) = 1-black(n), orange red(o) = white + yellow (c2*w) /v*n w*w def /l*n 1 n*w sub def /o*n w*w c2*w add def /i*p 4 def /t*p o*n o*n l*n add 0.0001 add div def } if % angle between leaf green and cyan blue, sector L-C of Y-C, C>=Y col_ang L*Ang ge col_ang C*Ang lt and {1 wLAB*s0 0 get wLAB*s0 1 get wLAB*s0 2 get 1 nLAB*s0 0 get nLAB*s0 1 get nLAB*s0 2 get 1 lLAB*s0 0 get lLAB*s0 1 get lLAB*s0 2 get 1 cLAB*s0 0 get cLAB*s0 1 get cLAB*s0 2 get 1 L*Fs0 A*Fs0 B*Fs0 CoeffprocL /c1*w exch def %C /c2*w exch def %L /n*w exch def /w*w exch def %cyan is a mixture of leaf green and voilet blue, therefore orange red(o) = white, %leaf green(l) = 1-black(n), voilet blue(v) = white + cyan blue (c1*w) /v*n w*w c1*w add def /l*n 1 n*w sub def /o*n w*w def /i*p 5 def /t*p v*n v*n l*n add 0.0001 add div def } if % angle between cyan blue and voilet blue, sector C-V of C-M, C>=M col_ang C*Ang ge col_ang V*Ang lt and {1 wLAB*s0 0 get wLAB*s0 1 get wLAB*s0 2 get 1 nLAB*s0 0 get nLAB*s0 1 get nLAB*s0 2 get 1 cLAB*s0 0 get cLAB*s0 1 get cLAB*s0 2 get 1 vLAB*s0 0 get vLAB*s0 1 get vLAB*s0 2 get 1 L*Fs0 A*Fs0 B*Fs0 CoeffprocL /c1*w exch def %V /c2*w exch def %C /n*w exch def /w*w exch def %cyan is a mixture of leaf green and voilet blue, therefore orange red(o) = white, %violet blue(v) = 1-black(n), leaf green(l) = white + cyan blue (c2*w) /v*n 1 n*w sub def /l*n w*w c2*w add def /o*n w*w def /i*p 0 def /t*p l*n l*n v*n add 0.0001 add div def } if % angle between voilet blue and magenta red, sector V-M of C-M, M>=C col_ang V*Ang ge col_ang M*Ang lt and {1 wLAB*s0 0 get wLAB*s0 1 get wLAB*s0 2 get 1 nLAB*s0 0 get nLAB*s0 1 get nLAB*s0 2 get 1 vLAB*s0 0 get vLAB*s0 1 get vLAB*s0 2 get 1 mLAB*s0 0 get mLAB*s0 1 get mLAB*s0 2 get 1 L*Fs0 A*Fs0 B*Fs0 CoeffprocL /c1*w exch def %M /c2*w exch def %V /n*w exch def /w*w exch def %magenta is a mixture of orange red and voilet blue, therefore leaf green(l) = white, %violet(o) = 1-black(n), orange red(o) = white + magenta red (c1*w) /v*n 1 n*w sub def /l*n w*w def /o*n w*w c1*w add def /i*p 1 def /t*p o*n o*n v*n add 0.0001 add div def } if %achromatic %W: o*n, l*n, v*n = 1.00 1.0 o*n sub abs 0.001 le 1.0 l*n sub abs 0.001 le and 1.0 v*n 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*p 0.0001 def } if %N: o*n, l*n, v*n <= 0.01 o*n abs 0.001 le l*n abs 0.001 le and v*n 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*p 0.0001 def } if %Achromatic o*n l*n sub abs 0.001 le l*n v*n sub abs 0.001 le and %Achromatic special case {/i*p 6 def %N /e*w 0 def /n*n o*n def /w*n 1 o*n sub def /t*p 0.0001 def } if /c*w 1 o*n sub def /m*w 1 l*n sub def /y*w 1 v*n sub def /t*n 1 t*p sub def /r*w 1 n*w sub w*w sub def %Ostwald equation for radial chromaticness: %with r*w=radial chromaticness, n*w=blackness, w*w=whiteness /t*w 1 n*w sub r*w 0.5 mul add def %triangle lightness /e*w r*w n*w r*w add 0.0001 add div def %Eigencolor ratio r*w abs 0.001 le r*w abs 0.001 le and {/e*w 0.0001 def} if % with 0 for achromatic (c*w=0) and 1 for whitish colors (n*w=0) /lab*rFa r*w def %/lab*tFa t*w def /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 /p*F 0.00 H* 0.25 mul add 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 /p*F 0.25 H* 0.25 mul add 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 /p*F 0.50 H* 0.25 mul add 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 /p*F 0.75 H* 0.25 mul add def /h1* (b) def /h2* (r) def /H1* (B) def /H2* (R) def /HM* B*Ang def /HP* R*Ang 360 add def} if /lab*e1Fa h1* def /lab*EFa H* def /lab*e2Fa h2* def /lab*eFa p*F def /CIEF 100 88.60 div def /X* {L*F 16 add 116 div A*Fs0 500 div add } bind def /Y* {L*F 16 add 116 div } bind def /Z* {L*F 16 add 116 div B*Fs0 200 div sub} bind def /DecodeXYZ* { dup 6 29 div ge { dup dup mul mul } { 4 29 div sub 108 841 div mul } ifelse } bind def /XCIE {X* DecodeXYZ* 0.9505 mul} bind def /YCIE {Y* DecodeXYZ* } bind def /ZCIE {Z* DecodeXYZ* 1.0890 mul} bind def /XCIE1 {X* DecodeXYZ* 0.9505 mul CIEF mul} bind def /YCIE1 {Y* DecodeXYZ* CIEF mul} bind def /ZCIE1 {Z* DecodeXYZ* 1.0890 mul CIEF mul} bind def %Transformation X Y Z to RsRGB, GsRGB, BsRGB /RsRGB XCIE1 3.2406 mul YCIE1 -1.5372 mul add ZCIE1 -0.4986 mul add def /GsRGB XCIE1 -0.9686 mul YCIE1 1.8758 mul add ZCIE1 0.0415 mul add def /BsRGB XCIE1 0.0557 mul YCIE1 -0.2040 mul add ZCIE1 1.0570 mul add def /Slope 1.0 2.4 div def RsRGB 0.00313008 le {/R'sRGB RsRGB 12.92 mul def} {/R'sRGB RsRGB Slope exp 1.055 mul 0.055 sub def} ifelse GsRGB 0.00313008 le {/G'sRGB GsRGB 12.92 mul def} {/G'sRGB GsRGB Slope exp 1.055 mul 0.055 sub def} ifelse BsRGB 0.00313008 le {/B'sRGB BsRGB 12.92 mul def} {/B'sRGB BsRGB Slope exp 1.055 mul 0.055 sub def} ifelse c*w m*w y*w 0 %default output data definition } bind def %END Procedure LAB*io_to_cmyolv*ioL (L=local) /ouTab*ioL {%BEG Procedure ouTab*ioL (L=local) /Fontsize 152 Tabfakt mul def /TN {Fontsize /Times-ISOL1 FS} def /TI {Fontsize /TimesI-ISOL1 FS} def /TB {Fontsize /TimesB-ISOL1 FS} def /TBI {Fontsize /TimesBI-ISOL1 FS} def 0 0 0 setrgbcolor /o* r def /l* g def /v* b def %olv*, cmy* /yTABm ya ys 0.81 mul add def /yTABd 132 Tabfakt mul def /yTABx yTABm yTABd 1 mul sub def /yTAB0 yTABm yTABd 2 mul sub def /yTAB1 yTABm yTABd 3 mul sub def /yTAB2 yTABm yTABd 4 mul sub def /yTAB3 yTABm yTABd 5.1 mul sub def /yTAB4 yTABm yTABd 6.1 mul sub def /yTABn yTABm yTABd 7.1 mul sub def /yTAB5 yTABm yTABd 8.1 mul sub def /yTAB6 yTABm yTABd 9.2 mul sub def /yTAB7 yTABm yTABd 10.2 mul sub def /yTAB8 yTABm yTABd 11.2 mul sub def /yTAB9 yTABm yTABd 12.2 mul sub def /yTAB10 yTABm yTABd 13.3 mul sub def /yTAB11 yTABm yTABd 14.3 mul sub def /yTAB12 yTABm yTABd 15.2 mul sub def /yTAB13 yTABm yTABd 16.1 mul sub def /xTABm xa xs 0.84 mul sub def /xTABd 500 Tabfakt mul def /xTAB10 xTABm xTABd 1.15 mul add def /xTAB20 xTABm xTABd 2.00 mul add def /xTAB30 xTABm xTABd 2.85 mul add def /xTAB40 xTABm xTABd 3.70 mul add def /xTAB1 xTABm xTABd 1.60 mul add def /xTAB2 xTABm xTABd 2.55 mul add def /xTAB3 xTABm xTABd 3.50 mul add def /o3*Fa o* def /l3*Fa l* def /v3*Fa v* def xTABm yTABm moveto TBI (relative ) show TB (Inform. Technology (IT)) show xTABm yTABx moveto TI (olvi3*) show TN xTAB10 yTABx moveto o3*Fa cvsshow3 xTAB20 yTABx moveto l3*Fa cvsshow3 xTAB30 yTABx moveto v3*Fa cvsshow3 xTAB40 yTABx moveto ((1.0)) show /c3*Fa 1 o3*Fa sub def /m3*Fa 1 l3*Fa sub def /y3*Fa 1 v3*Fa sub def xTABm yTAB0 moveto TI (cmyn3*) show TN xTAB10 yTAB0 moveto c3*Fa cvsshow3 xTAB20 yTAB0 moveto m3*Fa cvsshow3 xTAB30 yTAB0 moveto y3*Fa cvsshow3 xTAB40 yTAB0 moveto ((0.0)) show LAB*ioL /c* c3*Fa def /m* m3*Fa def /y* y3*Fa def /n* 0.0 def /o* 1 c* sub def /l* 1 m* sub def /v* 1 y* sub def cmyolv*io_to_LAB*ioL xTABm yTAB3 moveto TBI (standard ) show TB (and ) show TBI (adapted ) show TB (CIELAB) show xTABm yTAB4 moveto TI (LAB*LAB) show TN xTAB1 yTAB4 moveto LAB*LF cvsshow2 xTAB2 yTAB4 moveto LAB*AF cvsshow2 xTAB3 yTAB4 moveto LAB*BF cvsshow2 xTABm yTABn moveto TI (LAB*LABa) show TN xTAB1 yTABn moveto LAB*LFa cvsshow2 xTAB2 yTABn moveto LAB*AFa cvsshow2 xTAB3 yTABn moveto LAB*BFa cvsshow2 xTABm yTAB5 moveto TI (LAB*TCHa) show TN xTAB1 yTAB5 moveto lab*tFa 100 mul cvsshow2 xTAB2 yTAB5 moveto LAB*CFa cvsshow2 xTAB3 yTAB5 moveto LAB*CFa 1.0 ge {LAB*HFa cvsshow2} {( -) show} ifelse L*F A*F B*F LAB*io_to_cmyolv*ioL %lab relative CIELAB /c4*Fa c3*Fa lab*nFa sub def %at least one of cmy will be cero /m4*Fa m3*Fa lab*nFa sub def /y4*Fa y3*Fa lab*nFa sub def /n4*Fa lab*nFa def /o4*Fa 1 c4*Fa sub def /l4*Fa 1 m4*Fa sub def /v4*Fa 1 y4*Fa sub def /i4*Fa 1 n4*Fa sub def colorm 0 eq {xTABm yTAB1 moveto TI (olvi4*) show TN xTAB10 yTAB1 moveto o4*Fa cvsshow3 xTAB20 yTAB1 moveto l4*Fa cvsshow3 xTAB30 yTAB1 moveto v4*Fa cvsshow3 xTAB40 yTAB1 moveto i4*Fa cvsshow3 xTABm yTAB2 moveto TI (cmyn4*) show TN xTAB10 yTAB2 moveto c4*Fa cvsshow3 xTAB20 yTAB2 moveto m4*Fa cvsshow3 xTAB30 yTAB2 moveto y4*Fa cvsshow3 xTAB40 yTAB2 moveto n4*Fa cvsshow3 } if colorm 1 eq {1 0 0 setrgbcolor xTABm yTAB1 moveto TI (olvi3*') show TN xTAB10 yTAB1 moveto o*sTab cvsshow3 xTAB20 yTAB1 moveto l*sTab cvsshow3 xTAB30 yTAB1 moveto v*sTab cvsshow3 xTAB40 yTAB1 moveto ((1.0)) show xTABm yTAB2 moveto TI (cmyn3*') show TN xTAB10 yTAB2 moveto 1 o*sTab sub cvsshow3 xTAB20 yTAB2 moveto 1 l*sTab sub cvsshow3 xTAB30 yTAB2 moveto 1 v*sTab sub cvsshow3 xTAB40 yTAB2 moveto ((0.0)) show 0 0 0 setrgbcolor } if xTABm yTAB6 moveto TBI (relative ) show TB (CIELAB ) show TBI (lab*) show xTABm yTAB7 moveto TI (lab*lab) show TN xTAB1 yTAB7 moveto lab*lFa cvsshow3 /lab*aFa lab*cFa LAB*HFa cos mul def /lab*bFa lab*cFa LAB*HFa sin mul def xTAB2 yTAB7 moveto lab*aFa cvsshow3 xTAB3 yTAB7 moveto lab*bFa cvsshow3 xTABm yTAB8 moveto TI (lab*tch) show TN xTAB1 yTAB8 moveto lab*tFa cvsshow3 xTAB2 yTAB8 moveto lab*cFa cvsshow3 xTAB3 yTAB8 moveto lab*cFa 0.01 ge {lab*hFa cvsshow3} {( -) show} ifelse xTABm yTAB9 moveto TI (lab*nch) show TN xTAB1 yTAB9 moveto lab*nFa cvsshow3 xTAB2 yTAB9 moveto lab*cFa cvsshow3 xTAB3 yTAB9 moveto lab*cFa 0.01 ge {lab*hFa cvsshow3} {( -) show} ifelse %lab*lrj,tce,ncE: similar to NCS xTABm yTAB10 moveto TBI (relative ) show TB (Natural Colour (NC)) show xTABm yTAB11 moveto TI (lab*lrj) show TN xTAB1 yTAB11 moveto lab*lFa cvsshow3 /lab*rFa lab*cFa lab*eFa 360 mul cos mul def /lab*jFa lab*cFa lab*eFa 360 mul sin mul def xTAB2 yTAB11 moveto lab*rFa cvsshow3 xTAB3 yTAB11 moveto lab*jFa cvsshow3 xTABm yTAB12 moveto TI (lab*tce) show TN xTAB1 yTAB12 moveto lab*tFa cvsshow3 xTAB2 yTAB12 moveto lab*cFa cvsshow3 xTAB3 yTAB12 moveto lab*cFa 0.01 ge {lab*eFa cvsshow3}{( -) show} ifelse xTABm yTAB13 moveto TI (lab*ncE) show TN xTAB1 yTAB13 moveto lab*nFa cvsshow3 xTAB2 yTAB13 moveto lab*cFa cvsshow3 xTAB3 yTAB13 moveto lab*cFa 0.01 ge {lab*e1Fa show lab*EFa 100 mul truncate cvi dup 10 lt {(0) show } if 6 string cvs show lab*e2Fa show} {( -) show} ifelse } bind def %END Procedure ouTab*ioL /ouCal*ioL {%BEG Procedure ouCal*ioL 0 0 0 setrgbcolor /o* r def /l* g def /v* b def /o3*Fa o* def /l3*Fa l* def /v3*Fa v* def /c3*Fa 1 o3*Fa sub def /m3*Fa 1 l3*Fa sub def /y3*Fa 1 v3*Fa sub def LAB*ioL /c* c3*Fa def /m* m3*Fa def /y* y3*Fa def /n* 0.0 def /o* 1 c* sub def /l* 1 m* sub def /v* 1 y* sub def cmyolv*io_to_LAB*ioL L*F A*F B*F LAB*io_to_cmyolv*ioL %lab relative CIELAB /c4*Fa c3*Fa lab*nFa sub def %at least one of cmy will be cero /m4*Fa m3*Fa lab*nFa sub def /y4*Fa y3*Fa lab*nFa sub def /n4*Fa lab*nFa def /o4*Fa 1 c4*Fa sub def /l4*Fa 1 m4*Fa sub def /v4*Fa 1 y4*Fa sub def /i4*Fa 1 n4*Fa sub def } bind def %END Procedure ouCal*ioL /proc_LAB*Fa_LAB*MaNTABl_olvi3*cmyn3*Ma*ioL { %BEG proc_LAB*Fa_LAB*MaNTABl_olvi3*cmyn3*Ma*ioL %only for calculation without hue tables %input LAB*Fa %input LAB*a (6 adapted colours OYLCVM) %input nLAB*s0 (colour white N for calculation of lab*l) %input wLAB*s0 (colour white W for achromatic axis) %output LAB*Ma %output olvi3*Ma %output cmyn3*Ma /UXF1a wLAB*s0 1 get B*Fa mul wLAB*s0 2 get A*Fa mul sub def /UXF2a wLAB*s0 2 get L*Fa mul wLAB*s0 0 get B*Fa mul sub def /UXF3a wLAB*s0 0 get A*Fa mul wLAB*s0 1 get L*Fa mul sub def /T1 0 def /T2 0 def 0 1 5 {/ia exch def /ia30 ia 3 mul def ia 5 eq {/ia31 0 def} {/ia31 ia30 3 add def} ifelse /T1 LAB*a ia30 get UXF1a mul LAB*a ia30 1 add get UXF2a mul add LAB*a ia30 2 add get UXF3a mul add def /T2 LAB*a ia31 get UXF1a mul LAB*a ia31 1 add get UXF2a mul add LAB*a ia31 2 add get UXF3a mul add def T1 0 le {/T1X (N) def} {/T1X (P) def} ifelse T2 0 gt {/T2X (P) def} {/T2X (N) def} ifelse T1 0 le T2 0 gt and {/ia3END ia30 def exit} if } for /L*11a LAB*a ia3END get def /A*11a LAB*a ia3END 1 add get def /B*11a LAB*a ia3END 2 add get def ia3END 15 ge {/ia3END -3 def} if /L*21a LAB*a ia3END 3 add get def /A*21a LAB*a ia3END 4 add get def /B*21a LAB*a ia3END 5 add get def /NENNER L*21a L*11a sub UXF1a mul A*21a A*11a sub UXF2a mul add B*21a B*11a sub UXF3a mul add def /ZAEHLE L*21a UXF1a mul A*21a UXF2a mul add B*21a UXF3a mul add def NENNER 0 ne {/ALPH ZAEHLE NENNER div def} {/ALPH 99999} ifelse /L*Ma ALPH L*11a mul 1 ALPH sub L*21a mul add def /A*Ma ALPH A*11a mul 1 ALPH sub A*21a mul add def /B*Ma ALPH B*11a mul 1 ALPH sub B*21a mul add def /C*Ma A*Ma dup mul B*Ma dup mul add 0.000001 add sqrt def /H*Ma B*Ma A*Ma 0.0001 add atan def /ia30 ia 3 mul def /iap 1 ALPH sub def /iam ALPH def ia 0 eq {/c3*Ma 0 def %L, c*=0, sector O->Y /m3*Ma iam def %L, m*=1->0 /y3*Ma 1 def %L, y*=1 } if ia 1 eq {/c3*Ma iap def %L, c*=0->1, sector Y->L /m3*Ma 0 def %L, m*=0 /y3*Ma 1 def %L, y*=1 } if ia 2 eq {/c3*Ma 1 def %L, c*=1, sector L->C /m3*Ma 0 def %L, m*=0 /y3*Ma iam def %L, y*=1->0 } if ia 3 eq {/c3*Ma 1 def %L, c*=1, sector C->V /m3*Ma iap def %L, m*=1->0 /y3*Ma 0 def %L, y*=0 } if ia 4 eq {/c3*Ma iam def %L, c*=1->0, sector V->M /m3*Ma 1 def %L, m*=1 /y3*Ma 0 def %L, y*=0 } if ia 5 eq {/c3*Ma 0 def %L, c*=0, sector M->O /m3*Ma 1 def %L, m*=1 /y3*Ma iap def %L, y*=0->1 } if /o3*Ma 1 c3*Ma sub def /l3*Ma 1 m3*Ma sub def /v3*Ma 1 y3*Ma sub def /i3*Ma 1 def /lab*nMa 0.00 def /lab*cMa 1.00 def /lab*wMa 0.00 def /lab*tMa 0.50 def /lab*hMa H*Ma 360 div def /lab*lMa L*Ma nLAB*s0 0 get sub wLAB*s0 0 get nLAB*s0 0 get sub 0.000001 add div def } bind def %END /proc_LAB*Fa_LAB*MaNTABl_olvi3*cmyn3*Ma*ioL /rec %x0, y0 width heigth {/heigth exch def /width exch def /y0 exch def /x0 exch def x0 width 0.5 mul sub y0 heigth 0.5 mul sub moveto width 0 rlineto 0 heigth rlineto width neg 0 rlineto closepath } bind def /A4quer {598 0 tl 90 rotate} def /cvsshow1g {/nxx exch def %example nxx=99.1/99.0 nxx 10 mul cvi /nxi exch def %nxi=991/990 nxi 10 idiv /nxa exch def %nxa=99 nxi nxa 10 mul sub /nxb exch def %nxb=1/0 nxa cvishow (,) show %nxa=99 nxb cvishow %nxb=1/0 } def /cvsshow2g {/nxx exch def %example nxx=99.12/99,02/99,00 nxx 100 mul cvi /nxi exch def %nxi=9912/9902/00 nxi 100 idiv /nxa exch def %nxa=99 nxi nxa 100 mul sub /nxb exch def %nxb=12/02/00 nxa cvishow (,) show %nxb=99, nxb 10 ge {nxb cvishow} if %nxb=12 nxb 1 ge nxb 9 le and {(0) show nxb cvishow} if %nxb=02 nxb 0 eq {(00) show} if %nxb=00 } def /cvsshow3g {/nxx exch def %example nxx=99.123/99.012/99.001/99.000 nxx 1000 mul cvi /nxi exch def %nxi=99123/99012/99001/99000 nxi 1000 idiv /nxa exch def %nxa=99 nxi nxa 1000 mul sub /nxb exch def %nxb=123/012/001/000 nxa cvishow (,) show %nxb=99, nxb 100 ge {nxb cvishow} if %nxb=123/012/001/000 nxb 10 ge nxb 99 le and {(0) show nxb cvishow} if %nxb=012 nxb 1 ge nxb 9 le and {(00) show nxb cvishow} if %nxb=001 nxb 0 eq {(000) show} if %nxb=000 } def %******************************************************************* %%EndProlog gsave /lanind 1 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 /showfr {2 lanind eq {show} {pop} ifelse} bind def /showes {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 /showea {1 lanind le {show} {pop} ifelse} bind def /showm {6 lanind eq {show} {pop} ifelse} 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 /RGB54CC17_L 17 array def /RGB54CC17_L [%high chromatic series: %relative hue h*, brillance i*, and chroma c*, range 0 ... 100 (R00Y_100_100) 1.00 0.00 0.00 %00 (R25Y_100_100) 1.00 0.25 0.00 %01 (R50Y_100_100) 1.00 0.50 0.00 %02 (R75Y_100_100) 1.00 0.75 0.00 %03 (Y00G_100_100) 1.00 1.00 0.00 %04 (Y25G_100_100) 0.75 1.00 0.00 %05 (Y50G_100_100) 0.50 1.00 0.00 %06 (Y75G_100_100) 0.25 1.00 0.00 %07 (G00B_100_100) 0.00 1.00 0.00 %08 (G25B_100_100) 0.00 1.00 0.50 %09 (G50B_100_100) 0.00 1.00 1.00 %10 (G75B_100_100) 0.00 0.50 1.00 %11 (B00R_100_100) 0.00 0.00 1.00 %12 (B25R_100_100) 0.50 0.00 1.00 %13 (B50R_100_100) 1.00 0.00 1.00 %14 (B75R_100_100) 1.00 0.00 0.50 %15 (R00Y_100_100) 1.00 0.00 0.00 %16 repeat for circle ] def /LAB*ee 12 array def %2x3=12 Lab* for D65 /LAB*ee [39.92 58.74 27.99 %0 00_04 R CIE No.09 elementary in LAB 81.26 -2.89 71.56 %1 05_09 J CIE No.10 52.23 -42.42 13.60 %2 10_14 G CIE No.11 30.57 1.41 -46.47 %3 20_24 B CIE No.12 ] def /rgb_12 12 array def %RYGCBMd, NWd,e, RYGBe /rgb_12 [1.0 0.0 0.0 1.0 1.0 0.0 0.0 1.0 0.0 %RYGd 0.0 1.0 1.0 0.0 0.0 1.0 1.0 0.0 1.0 %CBMd 0.0 0.0 0.0 1.0 1.0 1.0 %NWd,e 1.0 0.0 0.0 1.0 1.0 0.0 0.0 1.0 0.0 0.0 0.0 1.0 %RYGBe ] def %************************************************************ /proc_CIELAB_D {%BEG proc_CIELAB_D 25 setlinewidth 1.0 setgray 0 0 moveto 2800 0 rlineto 0 2800 rlineto -2800 0 rlineto closepath fill 0.0 setgray 0 0 moveto 2800 0 rlineto 0 2800 rlineto -2800 0 rlineto closepath stroke 1200 1300 translate -1000 0 moveto 1000 0 lineto stroke 0 -1000 moveto 0 1000 lineto stroke 1100 0 moveto (a*) kshow (a) ishow 0 1100 moveto (b*) kshow (a) ishow /rx 774 def %standard hexagon gamut 0.0 setgray rx 030 cos mul rx 030 sin mul moveto 0 rx lineto rx 150 cos mul rx 150 sin mul lineto rx 210 cos mul rx 210 sin mul lineto 0 rx neg lineto rx 330 cos mul rx 330 sin mul lineto closepath stroke /r*x 1 def /g*x 0 def /b*x 0 def r*x g*x b*x setrgbcolor rx 030 cos mul rx 030 sin mul 100 0 360 arc fill /r*x 1 def /g*x 1 def /b*x 0 def r*x g*x b*x setrgbcolor 0 rx 100 0 360 arc fill /r*x 0 def /g*x 1 def /b*x 0 def r*x g*x b*x setrgbcolor rx 150 cos mul rx 150 sin mul 100 0 360 arc fill /r*x 0 def /g*x 1 def /b*x 1 def r*x g*x b*x setrgbcolor rx 210 cos mul rx 210 sin mul 100 0 360 arc fill /r*x 0 def /g*x 0 def /b*x 1 def r*x g*x b*x setrgbcolor 0 rx neg 100 0 360 arc fill /r*x 1 def /g*x 0 def /b*x 1 def r*x g*x b*x setrgbcolor rx 330 cos mul rx 330 sin mul 100 0 360 arc fill %plot hexagon in device (d) space 45 setlinewidth 0 setgray 0 1 5 {/i exch def %i=0,5 /A*Ma LAB*a i 3 mul 1 add get def /B*Ma LAB*a i 3 mul 2 add get def i 0 eq {A*Ma 10 mul B*Ma 10 mul moveto} {A*Ma 10 mul B*Ma 10 mul lineto} ifelse i 5 eq {closepath stroke} if } for %i=0,5 xchart 1 ge {%xchart>=1, always only for device space %plot hexagon in actual device (d) space 45 setlinewidth /deintpd deintp def %attention change of deintp to device d! /deintp 0 def %draws allways device space gamut! 0 1 5 {/i exch def %i=0,5 /r*x r*dd08M i get def /g*x g*dd08M i get def /b*x b*dd08M i get def r*x g*x b*x setrgbcolor %default for calculation of LAB* /LAB*axF LAB*adyF def /LAB*bxF LAB*bdyF def /A*Ma LAB*axF def /B*Ma LAB*bxF def 1 0 0 setrgbcolor i 0 eq {A*Ma 10 mul B*Ma 10 mul moveto} {A*Ma 10 mul B*Ma 10 mul lineto} ifelse i 5 eq {closepath stroke} if } for %i=0,5 /deintp deintpd def %change back to deintp! } if %xchart>=1 %plot line of actual hue 50 setlinewidth xcharts 0 eq {/r*x 1 def /g*x 0 def /b*x 0 def} if xcharts 1 eq {/r*x 1 def /g*x 1 def /b*x 0 def} if xcharts 2 eq {/r*x 0 def /g*x 1 def /b*x 0 def} if xcharts 3 eq {/r*x 0 def /g*x 1 def /b*x 1 def} if xcharts 4 eq {/r*x 0 def /g*x 0 def /b*x 1 def} if xcharts 5 eq {/r*x 1 def /g*x 0 def /b*x 1 def} if xcharts 5 le {%xcharts<=5 r*x g*x b*x setrgbcolor 0 0 moveto /A*Ma LAB*a xcharts 3 mul 1 add get def /B*Ma LAB*a xcharts 3 mul 2 add get def A*Ma 10 mul B*Ma 10 mul lineto stroke } if %xcharts<=5 xcharts 6 ge {%xcharts>=6 xchart 0 eq {%xchart=0,>0 xcharts 9 eq {/i1 0 def /i2 5 def i1 1 i2 {/i exch def %i=i1,i2 /L*Ma0 LAB*a i 3 mul 0 add get def %produces ORS18 /A*Ma0 LAB*a i 3 mul 1 add get def /B*Ma0 LAB*a i 3 mul 2 add get def rgb_12 i 3 mul 0 add get rgb_12 i 3 mul 1 add get rgb_12 i 3 mul 2 add get setrgbcolor 0 0 moveto A*Ma0 10 mul B*Ma0 10 mul lineto stroke A*Ma0 10 mul B*Ma0 10 mul moveto -100 -100 rlineto 200 200 rlineto stroke A*Ma0 10 mul B*Ma0 10 mul moveto -100 100 rlineto 200 -200 rlineto stroke } for %i=i1,i2 } if %one or 6 lines xcharts 10 ge xcharts 25 le and {%xcharts>=10,<=25 %16 measured data, see PE54L0NP.pdf, page 11/24 %PE540-7N, Page 11/24 HIC*Fd rgb*Fd LabCh*Fd /LAB*a48 432 array def %48x9=432 /LAB*a48 [%HIC rgb LabCh nr (R00Y_100_100d) 1.000 0.000 0.000 48.4 66.1 40.2 77.4 31.3 %00 (R13Y_100_100d) 1.000 0.116 0.000 52.5 57.3 45.5 73.2 38.4 %01 (R25Y_100_100d) 1.000 0.233 0.000 56.8 48.0 50.5 69.8 46.4 %02 (R38Y_100_100d) 1.000 0.366 0.000 62.5 36.5 57.1 67.8 57.3 %03 (R50Y_100_100d) 1.000 0.500 0.000 68.6 25.0 63.9 68.7 68.6 %04 (R63Y_100_100d) 1.000 0.633 0.000 74.9 14.1 71.1 72.5 78.7 %05 (R75Y_100_100d) 1.000 0.766 0.000 80.6 4.8 77.2 77.4 86.4 %06 (R88Y_100_100d) 1.000 0.883 0.000 85.4 -2.5 82.3 82.3 91.7 %07 (Y00G_100_100d) 1.000 1.000 0.000 90.2 -9.6 88.2 88.7 96.2 %08 (Y13G_100_100d) 0.883 1.000 0.000 86.7 -14.2 83.5 84.7 99.6 %09 (Y25G_100_100d) 0.766 1.000 0.000 83.2 -18.4 79.9 82.0 102.9 %10 (Y38G_100_100d) 0.633 1.000 0.000 77.9 -25.1 69.5 74.0 109.8 %11 (Y50G_100_100d) 0.500 1.000 0.000 73.3 -31.7 62.7 70.3 116.8 %12 (Y63G_100_100d) 0.366 1.000 0.000 68.2 -39.5 55.9 68.5 125.2 %13 (Y75G_100_100d) 0.233 1.000 0.000 62.0 -49.7 43.2 65.9 138.9 %14 (Y88G_100_100d) 0.116 1.000 0.000 59.1 -57.1 38.5 68.9 145.9 %15 (G00C_100_100d) 0.000 1.000 0.000 55.8 -65.2 33.8 73.5 152.5 %16 (G13C_100_100d) 0.000 1.000 0.116 56.6 -62.9 24.0 67.3 159.0 %17 (G25C_100_100d) 0.000 1.000 0.233 57.4 -59.7 13.9 61.3 166.8 %18 (G38C_100_100d) 0.000 1.000 0.366 58.5 -54.9 1.5 55.0 178.4 %19 (G50C_100_100d) 0.000 1.000 0.500 59.3 -50.3 -9.0 51.1 190.2 %20 (G63C_100_100d) 0.000 1.000 0.633 60.1 -45.6 -18.7 49.3 202.3 %21 (G75C_100_100d) 0.000 1.000 0.766 61.1 -40.3 -27.8 49.0 214.6 %22 (G88C_100_100d) 0.000 1.000 0.883 62.0 -35.8 -34.7 49.9 224.0 %23 (C00B_100_100d) 0.000 1.000 1.000 63.0 -30.5 -42.0 51.9 234.0 %24 (C13B_100_100d) 0.000 0.883 1.000 59.4 -25.3 -42.7 49.7 239.2 %25 (C25B_100_100d) 0.000 0.766 1.000 55.8 -20.3 -43.2 47.7 244.7 %26 (C38B_100_100d) 0.000 0.633 1.000 50.8 -13.3 -43.9 45.9 253.0 %27 (C50B_100_100d) 0.000 0.500 1.000 45.7 -5.7 -44.6 45.0 262.6 %28 (C63B_100_100d) 0.000 0.366 1.000 40.4 2.6 -45.2 45.2 273.3 %29 (C75B_100_100d) 0.000 0.233 1.000 36.0 10.1 -46.1 47.2 282.3 %30 (C88B_100_100d) 0.000 0.116 1.000 32.1 17.3 -46.7 49.8 290.3 %31 (B00M_100_100d) 0.000 0.000 1.000 27.5 25.9 -47.3 54.0 298.7 %32 (B13M_100_100d) 0.116 0.000 1.000 29.5 33.4 -43.1 54.6 307.7 %33 (B25M_100_100d) 0.233 0.000 1.000 31.0 39.9 -38.5 55.5 315.9 %34 (B38M_100_100d) 0.366 0.000 1.000 35.1 44.5 -34.7 56.5 322.0 %35 (B50M_100_100d) 0.500 0.000 1.000 38.3 52.6 -28.5 59.9 331.5 %36 (B63M_100_100d) 0.633 0.000 1.000 41.2 59.3 -22.0 63.3 339.6 %37 (B75M_100_100d) 0.766 0.000 1.000 45.2 63.8 -18.2 66.4 344.0 %38 (B88M_100_100d) 0.883 0.000 1.000 47.5 68.6 -13.8 69.9 348.5 %39 (M00R_100_100d) 1.000 0.000 1.000 49.5 73.5 -9.0 74.1 352.9 %40 (M13R_100_100d) 1.000 0.000 0.883 49.4 72.4 -4.0 72.5 356.7 %41 (M25R_100_100d) 1.000 0.000 0.766 49.3 71.4 0.4 71.4 0.3 %42 (M38R_100_100d) 1.000 0.000 0.633 49.3 69.8 6.6 70.1 5.4 %43 (M50R_100_100d) 1.000 0.000 0.500 48.9 69.3 12.9 70.5 10.5 %44 (M63R_100_100d) 1.000 0.000 0.366 48.9 68.1 19.6 70.9 16.1 %45 (M75R_100_100d) 1.000 0.000 0.233 48.8 67.1 27.9 72.7 22.6 %46 (M88R_100_100d) 1.000 0.000 0.116 48.6 66.5 34.1 74.8 27.1 %47 ] def /indFa16 16 array def /indFa16 [%0 1 2 3 4 5 6 7 %0=R and xchart3=1, 4=Y and xchart3=5 00 02 04 06 08 10 12 14 %8 9 10 11 12 13 14 15 %8=G and xchart3=9, 12=B and xchart3=13 16 20 24 28 32 36 40 44] def /ix xchart3 1 sub def %i=0,15 /indx indFa16 ix get def /i90 indx 9 mul 4 add def /i91 i90 1 add def /i92 i90 2 add def /A*Ma0 LAB*a48 i91 get def /B*Ma0 LAB*a48 i92 get def /i90r indx 9 mul 1 add def /i91r i90r 1 add def /i92r i90r 2 add def /r_*Ma LAB*a48 i90r get def /g_*Ma LAB*a48 i91r get def /b_*Ma LAB*a48 i92r get def r_*Ma g_*Ma b_*Ma setrgbcolor 0 0 moveto A*Ma0 10 mul B*Ma0 10 mul lineto stroke A*Ma0 10 mul B*Ma0 10 mul moveto -100 -100 rlineto 200 200 rlineto stroke A*Ma0 10 mul B*Ma0 10 mul moveto -100 100 rlineto 200 -200 rlineto stroke } if %xcharts>=10,<=25 }%xchart=0 {%xchart>0 xcharts 9 eq {/i1 0 def /i2 15 def} %one or 16 lines {/i1 xcharts 10 sub def /i2 i1 def} ifelse i1 1 i2 {/i exch def %i=i1,i2 /r*x r*dd18M i get def /g*x g*dd18M i get def /b*x b*dd18M i get def r*x g*x b*x setrgbcolor %default to create data %setrgbcolor calculates data for output in "FF_LM_de_setrgbcolor_F" %colorm=0 calculates: rgb_dyF, rgb*dyF, LAB*dyF, ,cmyk*dyF and more %colorm=1 calculates: rgb_dyF, rgb*dyF, LAB*dyF', rgb'*dyF, cmyk*dyF and more /LAB*LxF LAB*LdyF def /LAB*axF LAB*adyF def /LAB*bxF LAB*bdyF def /A*Ma0 LAB*axF def /B*Ma0 LAB*bxF def r*x g*x b*x setrgbcolor 0 0 moveto A*Ma0 10 mul B*Ma0 10 mul lineto stroke A*Ma0 10 mul B*Ma0 10 mul moveto -100 -100 rlineto 200 200 rlineto stroke A*Ma0 10 mul B*Ma0 10 mul moveto -100 100 rlineto 200 -200 rlineto stroke } for %i=i1,i2 } ifelse %xchart=0,>0 } if %xcharts>=6 -1200 -1300 translate } bind def %END proc_CIELAB_D %************************************************************ /proc_CIELAB_T16 {%BEG proc_CIELAB_T16 /yhoe 6300 def ibild 0 eq {/xmi0 0 def /ymi0 -50 def} {/xmi0 700 def /ymi0 -1400 def} ifelse 15 setlinewidth 1.0 setgray 0 ymi0 moveto 5300 xmi0 add 0 rlineto 0 4800 ymi0 sub rlineto -5300 xmi0 sub 0 rlineto closepath fill 0.0 setgray 0 ymi0 moveto 5300 xmi0 add 0 rlineto 0 4800 ymi0 sub rlineto -5300 xmi0 sub 0 rlineto closepath stroke /nshow {TG show} bind def /kshow {TIG show} bind def /bshow {TBG show} bind def /jshow {TBIG show} bind def /sshow {SG show} bind def /ishow {SM -00 -50 rmoveto show 00 50 rmoveto} bind def /eshow {SM 0 100 rmoveto show 0 -100 rmoveto} bind def /yd 340 def %y-Zeilenabstand %Spalten /S1 20 def /S2 450 def /S3 1550 def /S4 2650 def /S5 3750 def /S6 4800 def /yu1 4650 def /yu2 3800 def 0 4100 moveto ibild 0 eq {5300}{6000} ifelse 0 rlineto stroke %Titeltext S1t 4550 moveto TBG xchart 0 eq {ibild 1 eq {(ORS20a) show}{TSYSIOa show} ifelse} {Devicea show} ifelse (;) show xcharti 12 lt ibild 0 ne or { TBM0 ( adaptierte CIELAB-Daten) showde ( adapted (a) CIELAB data) showen ( datos adaptados CIELAB (a)) showes ( donn\351es CIELAB (a) adapt\351es) showfr ( dati atti CIELAB (a)) showit ( adapterte (a) CIELAB data) showjp } if ibild 0 eq {%BEG ibild=0 S11 4250 moveto TM0 (Name) showde (name) showen (name) showes (nom) showfr (name) showit (navn) showjp S21 200 sub 4250 moveto TIG (L*=L*) show xcharti 12 lt ibild 0 ne or {(a) ishowTG} if S31 4250 moveto TIG (a*) show xcharti 12 lt ibild 0 ne or {(a) ishowTG} if S41 4250 moveto TIG (b*) show xcharti 12 lt ibild 0 ne or {(a) ishowTG} if S51 100 sub 4250 moveto TIG (C*) show (ab) ishowTG xcharti 12 lt ibild 0 ne or {(,a) ishowTG} if S61 100 sub 4250 moveto TIG (h*) show (ab) ishowTG xcharti 12 lt ibild 0 ne or {(,a) ishowTG} if 0 1 11 {/i exch def %i=0,11 /ya yu2 yd i mul sub def S11 ya moveto TG ColNames i get show Fxx ishowTG (,) ishowTG i 8 ge {(CIE) ishowTG} {(M) ishowTG xcharti 12 lt {(a) ishowTG} if} ifelse ( ) show xcharti 12 lt {%xcharti<=12,>12 i 7 le {%i<=7 xchart 0 eq {%xchart=0,1 /L*Fax LAB*a i 3 mul get def /A*Fax LAB*a i 3 mul 1 add get def /B*Fax LAB*a i 3 mul 2 add get def /C*Fax A*Fax dup mul B*Fax dup mul add sqrt def /H*Fax B*Fax A*Fax 0.0001 add atan def }%xchart=0 {%xchart=1 /r*x r*dd08M i get def /g*x g*dd08M i get def /b*x b*dd08M i get def r*x g*x b*x setrgbcolor %default to create data %setrgbcolor calculates data for output in "FF_LM_de_setrgbcolor_F" %colorm=0 calculates: rgb_dyF, rgb*dyF, LAB*dyF, ,cmyk*dyF and more %colorm=1 calculates: rgb_dyF, rgb*dyF, LAB*dyF', rgb'*dyF, cmyk*dyF and more /LAB*LxF LAB*LdyF def /LAB*axF LAB*adyF def /LAB*bxF LAB*bdyF def /L*Fax LAB*LxF def /A*Fax LAB*axF def /B*Fax LAB*bxF def } ifelse %xchart=0,1 } if %i<=7 i 8 ge {%i>=8 TYGB /L*Fax LAB*ee i 8 sub 3 mul get def /A*Fax LAB*ee i 8 sub 3 mul 1 add get def /B*Fax LAB*ee i 8 sub 3 mul 2 add get def } if %i>=8 /C*Fax A*Fax dup mul B*Fax dup mul add sqrt def /H*Fax B*Fax A*Fax 0.0001 add atan def 0 setgray S21 ya moveto L*Fax cvsshow1 S31 ya moveto A*Fax cvsshow1 S41 ya moveto B*Fax cvsshow1 S51 ya moveto C*Fax cvsshow1 S61 ya moveto H*Fax cvishow }%xcharti<=12 {%xcharti>12 xchart 0 eq {%xchart=0,1 /L*Fax LAB*a i 3 mul get def /A*Fax LAB*a i 3 mul 1 add get def /B*Fax LAB*a i 3 mul 2 add get def /C*Fax A*Fax dup mul B*Fax dup mul add sqrt def /H*Fax B*Fax A*Fax 0.0001 add atan def }%xchart=0 {%xchart=1 /L*Fax LAB*Ldd08M i get def /A*Fax LAB*add08M i get def /B*Fax LAB*bdd08M i get def } ifelse %xchart=0,1 /C*Fax A*Fax dup mul B*Fax dup mul add sqrt def /H*Fax B*Fax A*Fax 0.0001 add atan def 0 setgray S21 ya moveto L*Fax cvsshow1 S31 ya moveto A*Fax cvsshow1 S41 ya moveto B*Fax cvsshow1 S51 ya moveto C*Fax cvsshow1 S61 ya moveto H*Fax cvishow /L*Fx LAB* i 3 mul get def /A*Fx LAB* i 3 mul 1 add get def /B*Fx LAB* i 3 mul 2 add get def /C*Fx A*Fx dup mul B*Fx dup mul add sqrt def /H*Fx B*Fx A*Fx 0.0001 add atan def S2 350 add ya moveto L*Fx cvsshow2 S3 100 add ya moveto A*Fx cvsshow2 S4 100 add ya moveto B*Fx cvsshow2 S5 ya moveto C*Fx cvsshow2 S6 ya moveto H*Fx cvishow } ifelse %xcharti=12,#12 } for %i=0,11 }%END ibild=0 {%BEG ibild=1 S1t 4250 moveto (H*) kshow Fxx ishow () nshow S2t 200 sub 4250 moveto (L*=L*) kshow xcharti 12 lt ibild 0 ne or {(a) ishow} if S3t 4250 moveto (a*) kshow xcharti 12 lt ibild 0 ne or {(a) ishow} if S4t 4250 moveto (b*) kshow xcharti 12 lt ibild 0 ne or {(a) ishow} if S5t 150 sub 4250 moveto (C*) kshow (ab) ishow xcharti 12 lt ibild 0 ne or {(,a) ishow} if S6t 150 sub 4250 moveto (h*) kshow (ab) ishow xcharti 12 lt ibild 0 ne or {(,a) ishow} if %16 measured data, see PE54L0NP.pdf, page 11/24 %PE540-7N, Page 11/24 HIC*Fd rgb*Fd LabCh*Fd /LAB*a48 432 array def %48x9=432 /LAB*a48 [%HIC rgb LabCh nr (R00Y_100_100d) 1.000 0.000 0.000 48.4 66.1 40.2 77.4 31.3 %00 (R13Y_100_100d) 1.000 0.116 0.000 52.5 57.3 45.5 73.2 38.4 %01 (R25Y_100_100d) 1.000 0.233 0.000 56.8 48.0 50.5 69.8 46.4 %02 (R38Y_100_100d) 1.000 0.366 0.000 62.5 36.5 57.1 67.8 57.3 %03 (R50Y_100_100d) 1.000 0.500 0.000 68.6 25.0 63.9 68.7 68.6 %04 (R63Y_100_100d) 1.000 0.633 0.000 74.9 14.1 71.1 72.5 78.7 %05 (R75Y_100_100d) 1.000 0.766 0.000 80.6 4.8 77.2 77.4 86.4 %06 (R88Y_100_100d) 1.000 0.883 0.000 85.4 -2.5 82.3 82.3 91.7 %07 (Y00G_100_100d) 1.000 1.000 0.000 90.2 -9.6 88.2 88.7 96.2 %08 (Y13G_100_100d) 0.883 1.000 0.000 86.7 -14.2 83.5 84.7 99.6 %09 (Y25G_100_100d) 0.766 1.000 0.000 83.2 -18.4 79.9 82.0 102.9 %10 (Y38G_100_100d) 0.633 1.000 0.000 77.9 -25.1 69.5 74.0 109.8 %11 (Y50G_100_100d) 0.500 1.000 0.000 73.3 -31.7 62.7 70.3 116.8 %12 (Y63G_100_100d) 0.366 1.000 0.000 68.2 -39.5 55.9 68.5 125.2 %13 (Y75G_100_100d) 0.233 1.000 0.000 62.0 -49.7 43.2 65.9 138.9 %14 (Y88G_100_100d) 0.116 1.000 0.000 59.1 -57.1 38.5 68.9 145.9 %15 (G00C_100_100d) 0.000 1.000 0.000 55.8 -65.2 33.8 73.5 152.5 %16 (G13C_100_100d) 0.000 1.000 0.116 56.6 -62.9 24.0 67.3 159.0 %17 (G25C_100_100d) 0.000 1.000 0.233 57.4 -59.7 13.9 61.3 166.8 %18 (G38C_100_100d) 0.000 1.000 0.366 58.5 -54.9 1.5 55.0 178.4 %19 (G50C_100_100d) 0.000 1.000 0.500 59.3 -50.3 -9.0 51.1 190.2 %20 (G63C_100_100d) 0.000 1.000 0.633 60.1 -45.6 -18.7 49.3 202.3 %21 (G75C_100_100d) 0.000 1.000 0.766 61.1 -40.3 -27.8 49.0 214.6 %22 (G88C_100_100d) 0.000 1.000 0.883 62.0 -35.8 -34.7 49.9 224.0 %23 (C00B_100_100d) 0.000 1.000 1.000 63.0 -30.5 -42.0 51.9 234.0 %24 (C13B_100_100d) 0.000 0.883 1.000 59.4 -25.3 -42.7 49.7 239.2 %25 (C25B_100_100d) 0.000 0.766 1.000 55.8 -20.3 -43.2 47.7 244.7 %26 (C38B_100_100d) 0.000 0.633 1.000 50.8 -13.3 -43.9 45.9 253.0 %27 (C50B_100_100d) 0.000 0.500 1.000 45.7 -5.7 -44.6 45.0 262.6 %28 (C63B_100_100d) 0.000 0.366 1.000 40.4 2.6 -45.2 45.2 273.3 %29 (C75B_100_100d) 0.000 0.233 1.000 36.0 10.1 -46.1 47.2 282.3 %30 (C88B_100_100d) 0.000 0.116 1.000 32.1 17.3 -46.7 49.8 290.3 %31 (B00M_100_100d) 0.000 0.000 1.000 27.5 25.9 -47.3 54.0 298.7 %32 (B13M_100_100d) 0.116 0.000 1.000 29.5 33.4 -43.1 54.6 307.7 %33 (B25M_100_100d) 0.233 0.000 1.000 31.0 39.9 -38.5 55.5 315.9 %34 (B38M_100_100d) 0.366 0.000 1.000 35.1 44.5 -34.7 56.5 322.0 %35 (B50M_100_100d) 0.500 0.000 1.000 38.3 52.6 -28.5 59.9 331.5 %36 (B63M_100_100d) 0.633 0.000 1.000 41.2 59.3 -22.0 63.3 339.6 %37 (B75M_100_100d) 0.766 0.000 1.000 45.2 63.8 -18.2 66.4 344.0 %38 (B88M_100_100d) 0.883 0.000 1.000 47.5 68.6 -13.8 69.9 348.5 %39 (M00R_100_100d) 1.000 0.000 1.000 49.5 73.5 -9.0 74.1 352.9 %40 (M13R_100_100d) 1.000 0.000 0.883 49.4 72.4 -4.0 72.5 356.7 %41 (M25R_100_100d) 1.000 0.000 0.766 49.3 71.4 0.4 71.4 0.3 %42 (M38R_100_100d) 1.000 0.000 0.633 49.3 69.8 6.6 70.1 5.4 %43 (M50R_100_100d) 1.000 0.000 0.500 48.9 69.3 12.9 70.5 10.5 %44 (M63R_100_100d) 1.000 0.000 0.366 48.9 68.1 19.6 70.9 16.1 %45 (M75R_100_100d) 1.000 0.000 0.233 48.8 67.1 27.9 72.7 22.6 %46 (M88R_100_100d) 1.000 0.000 0.116 48.6 66.5 34.1 74.8 27.1 %47 ] def /indFa16 16 array def /indFa16 [00 02 04 06 08 10 12 14 16 20 24 28 32 36 40 44] def 0 1 15 {/i exch def %i=0,15 /ya yu2 yd i mul sub def xchart 0 eq {%xchart=0,>0 /indx indFa16 i get def /i90 indx 9 mul 4 add def /i91 i90 1 add def /i92 i90 2 add def /L*Ma LAB*a48 i90 get def /A*Ma LAB*a48 i91 get def /B*Ma LAB*a48 i92 get def /C*Ma A*Ma dup mul B*Ma dup mul add 0.0001 add sqrt def /H*Ma B*Ma A*Ma 0.0001 add atan def }%xchart=0 {%xchart>0 /r*x r*dd18M i get def /g*x g*dd18M i get def /b*x b*dd18M i get def r*x g*x b*x setrgbcolor %default to create data %setrgbcolor calculates data for output in "FF_LM_de_setrgbcolor_F" %colorm=0 calculates: rgb_dyF, rgb*dyF, LAB*dyF, ,cmyk*dyF and more %colorm=1 calculates: rgb_dyF, rgb*dyF, LAB*dyF', rgb'*dyF, cmyk*dyF and more /r*xF r*dyF def /g*xF g*dyF def /b*xF b*dyF def /LAB*LxF LAB*LdyF def /LAB*axF LAB*adyF def /LAB*bxF LAB*bdyF def /LAB*CxF LAB*adyF dup mul LAB*bdyF dup mul add 0.0001 add sqrt def /LAB*hxF LAB*bdyF LAB*adyF 0.0001 add atan def /L*Ma LAB*LxF def /A*Ma LAB*axF def /B*Ma LAB*bxF def /C*Ma LAB*CxF def /H*Ma LAB*hxF def } ifelse %xchart=0,>0 0 setgray S1t ya moveto () nshow S1t ya moveto RGB54CC17_L i 4 mul get show Fxx ishow () nshow S2t 60 add ya moveto L*Ma cvsshow1 S3t ya moveto A*Ma cvsshow1 S4t ya moveto B*Ma cvsshow1 S5t ya moveto C*Ma cvsshow1 S6t ya moveto H*Ma cvishow } for %i=0,15 } ifelse %END ibild=1 } bind def %END proc_CIELAB_T16 %****************************************************************** /proc_CIELAB_G {%BEG CIELAB_G /u* 0 def /H*MGam 6 array def /C*MGam 6 array def 0 1 5 {/i exch def %i=0,5 /A*Ma LAB*a i 3 mul 1 add get def /B*Ma LAB*a i 3 mul 2 add get def /C*MGama A*Ma dup mul B*Ma dup mul add sqrt def H*MGam i B*Ma A*Ma 0.0001 add atan put C*MGam i C*MGama put /u* u* C*MGama L*Wio L*Nio sub mul add def } for %i=0,5 /u*r u* 77.4 77.4 mul 6 mul div 100 mul def 1 1 1 setrgbcolor /xmtext 2200 def /xms 0 def xmtext xms sub 11500 moveto TBG0 (%Gamut) showen (%Umfang) showde (%Gama) showes (%Gamme) showfr (%Gamma) showit (%Omfang) showjp xmtext xms sub 11100 moveto TBG0 (u*) show TBM0 -20 -50 rmoveto (rel) show 0 50 rmoveto TBG0 ( = ) show u*r cvishow 0 1 4 {/i exch def %i=0,4 /H*dif H*MGam i 1 add get H*MGam i get sub def i 0 eq {/H*MGamin H*dif def /H*MGamax H*dif def} if H*dif H*MGamin lt {/H*MGamin H*dif def} if H*dif H*MGamax gt {/H*MGamax H*dif def} if } for %i=0,4 /g*Hr H*MGamin H*MGamax div 100 mul def xmtext xms sub 10700 moveto TBG0 (%Regularity) showen (%Regularit\344t) showde (%Regularidad) showes (%R\351gularit\351) showfr (%Regularit\340) showit (%Regularitet) showjp xmtext 10300 moveto TBG0 (g*) show TBM0 -20 -50 rmoveto (H,rel) show 0 50 rmoveto TBG0 ( = ) show g*Hr cvishow 0 1 4 {/i exch def %i=0,4 /C*akt C*MGam i get def i 0 eq {/C*MGamin C*akt def /C*MGamax C*akt def} if C*akt C*MGamin lt {/C*MGamin C*akt def} if C*akt C*MGamax gt {/C*MGamax C*akt def} if } for %i=0,4 /g*Cr C*MGamin C*MGamax div 100 mul def xmtext 09900 moveto TBG0 (g*) show TBM0 -20 -50 rmoveto (C,rel) show 0 50 rmoveto TBG0 ( = ) show g*Cr cvishow } bind def %CIELAB_G %****************************************************************** /ilf 8 array def /ilf [0.00 0.25 0.50 1.00 2.00 4.00 8.00 16.00] def /Lrefl 11 array def /Lrefl [(0%) (0%) (0%) (0%) (0,6%) (1,2%) (2,5%) (5%) (10%) (20%) (40%)] def /cvishowb {cvi 6 string cvs show ( ) show} def /cvsshow1b {10 mul cvi 0.1 mul 7 string cvs show ( ) show} def /cvsshow2b {100 mul cvi 0.01 mul 7 string cvs show ( ) show} def /cvsshow3b {1000 mul cvi 0.001 mul 7 string cvs show ( ) show} def /cvsshow1r {0.05 add 10 mul cvi 0.1 mul 7 string cvs show} def /cvsshow2r {0.005 add 100 mul cvi 0.01 mul 7 string cvs show} def /cvsshow3r {0.0005 add 1000 mul cvi 0.001 mul 7 string cvs show} def /cvsshow1br {0.05 add 10 mul cvi 0.1 mul 7 string cvs show ( ) show} def /cvsshow2br {0.005 add 100 mul cvi 0.01 mul 7 string cvs show ( ) show} def /cvsshow3br {0.0005 add 1000 mul cvi 0.001 mul 7 string cvs show ( ) show} def /cvi100 {100 mul cvi /xi exch def xi 0 lt {/vorz -1 def} {/vorz 1 def} ifelse /xia xi abs def vorz -1 eq {(-) show} {(0) show} ifelse xia 0 ge xia 9 le {(0000) show} if xia 10 ge xia 99 le and {(000) show} if xia 100 ge xia 999 le and {(00) show} if xia 1000 ge xia 9999 le and {(0) show} if xia cvishow } bind def %************************************************ %******BEG RGB_48_16_6.PS default rgb data for 48/16/6 steps for device colours /r*dd64M 64 array def /r*dd64M [1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 %R 1.000 0.875 0.750 0.625 0.500 0.375 0.250 0.125 %J 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 %G 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 %C 0.000 0.125 0.250 0.375 0.500 0.625 0.750 0.875 %B 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 %M 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 %R 1.000 0.875 0.750 0.625 0.500 0.375 0.250 0.125 %J ] def /g*dd64M 64 array def /g*dd64M [0.000 0.125 0.250 0.375 0.500 0.625 0.750 0.875 %R 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 %J 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 %G 1.000 0.875 0.750 0.625 0.500 0.375 0.250 0.125 %C 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 %B 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 %M 0.000 0.125 0.250 0.375 0.500 0.625 0.750 0.875 %R 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 %J ] def /b*dd64M 64 array def /b*dd64M [0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 %R 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 %J 0.000 0.125 0.250 0.375 0.500 0.625 0.750 0.875 %G 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 %C 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 %B 1.000 0.875 0.750 0.625 0.500 0.375 0.250 0.125 %M 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 %R 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 %J ] def %calculate all data of 16+1=17 step elementary colour circle /ind64M 17 array def /ind64M %R00Y R25Y R50Y R75Y Y00G Y25G Y50G Y75G [0 2 4 6 8 10 12 14 %G00B G25B G50B G75G B00R B25R B50R B75R R00Y 16 20 24 28 32 36 40 44 0 ] def %actual 16 step device circle + N + W /r*dd18M 18 array def /g*dd18M 18 array def /b*dd18M 18 array def 0 1 15 {/i exch def %i=0,15 /indi ind64M i get def r*dd18M i r*dd64M indi get put %16 device colours g*dd18M i g*dd64M indi get put b*dd18M i b*dd64M indi get put } for %i=0,15 r*dd18M 16 0 put %N g*dd18M 16 0 put b*dd18M 16 0 put r*dd18M 17 1 put %W g*dd18M 17 1 put b*dd18M 17 1 put %actual 6 step device circle + N + W /r*dd08M 08 array def /g*dd08M 08 array def /b*dd08M 08 array def 0 1 5 {/i exch def %i=0,5 r*dd08M i r*dd64M i 8 mul get put %6 device colours g*dd08M i g*dd64M i 8 mul get put b*dd08M i b*dd64M i 8 mul get put } for %i=0,5 r*dd08M 6 0 put %N g*dd08M 6 0 put b*dd08M 6 0 put r*dd08M 7 1 put %W g*dd08M 7 1 put b*dd08M 7 1 put %******END RGB_48_16_6.PS default rgb data for 48/16/6 steps for device colours /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 /showfr {2 lanind eq {show} {pop} ifelse} bind def /showes {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 /showea {1 lanind le {show} {pop} ifelse} bind def /showm {6 lanind eq {show} {pop} ifelse} bind def /lanind1 0 def /lanind2 0 def /lanindd 01 def /lanindm 01 def /colorm1 00 def /colorm2 00 def /colormd 01 def /colormm 01 def /deintp1 00 def /deintp2 00 def /deintpd 01 def /deintpm 01 def /xcolor1 03 def /xcolor2 03 def /xcolord 01 def /xcolorm 01 def /xchart1 07 def /xchart2 07 def /xchartd 01 def /xchartm 01 def /pchart1 00 def /pchart2 00 def /pchartd 01 def /pchartm 03 def /colsep1 00 def /colsep2 00 def /colsepd 01 def /colsepm 01 def /pmetam1 00 def /pmetam2 00 def /pmetamd 01 def /pmetamm 01 def /xchart3 00 def %free /xchart4 00 def %test charts ISO/IEC 3, 2, 4; CIE R8-09 G, O, H /xchart5 00 def %free /lanindf where {pop /lanind1 lanindf def /lanind2 lanindf def /lanindd laninddf def /lanindm lanindmf def} if /colormf where {pop /colorm1 colormf def /colorm2 colormf def /colormd colormdf def /colormm colormmf def} if /deintpf where {pop /deintp1 deintpf def /deintp2 deintpf def /deintpd deintpdf def /deintpm deintpmf def} if /xcolorf where {pop /xcolor1 xcolorf def /xcolor2 xcolorf def /xcolord xcolordf def /xcolorm xcolormf def} if /xchartf where {pop /xchart1 xchartf def /xchart2 xchartf def /xchartd xchartdf def /xchartm xchartmf def} if /pchartf where {pop /pchart1 pchartf def /pchart2 pchartf def /pchartd pchartdf def /pchartm pchartmf def} if /colsepf where {pop /colsep1 colsepf def /colsep2 colsepf def /colsepd colsepdf def /colsepm colsepmf def} if /pmetamf where {pop /pmetam1 pmetamf def /pmetam2 pmetamf def /pmetamd pmetamdf def /pmetamm pmetammf def} if /xchart3f where {pop /xchart3 xchart3f def} {/xchart3 1 def} ifelse /xchart4f where {pop /xchart4 xchart4f def} {/xchart4 2 def} ifelse /lanind lanind1 def % /colorm colorm1 def % /deintp deintp1 def % /xcolor xcolor1 def % /xchart xchart1 def % /pchart pchart1 def % /colsep colsep1 def % /pmetam pmetam1 def % /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 %A4querL /colorml colorm def %0 1 1 {/colorml exch def %colorml=0,1 /xcolorl xcolor def %0 1 3 {/xcolorl exch def %xcolorl=0,3 /xchartl xchart def %0 1 7 {/xchartl exch def %xchartl=0,7 /pchartl pchart def %0 1 2 {/pchartl exch def %pchartl=0,2 colorml 0 eq deintp 0 eq and {/TxS () def /Txx (dd) def /Fxx (d) def} if colorml 0 eq deintp 1 eq and {/TxS () def /Txx (de) def /Fxx (e) def} if colorml 1 eq deintp 0 eq and {/TxS () def /Txx (dd) def /Fxx (d) def} if colorml 1 eq deintp 1 eq and {/TxS () def /Txx (de) def /Fxx (e) def} if %xchart 0 eq {/Txx (-) def /Fxx (-) def} if gsave xcolorl 0 eq {/tfnx* {0 0 0 1 setcmykcolor} def /tfwx* {0 0 0 0 setcmykcolor} def /colrecfix* {setcmykcolor rec fill} bind def /colrecstx* {setcmykcolor rec stroke} bind def } if xcolorl 1 eq {/tfnx* {0 setgray} def /tfwx* {1 setgray} def /colrecfix* {setgray rec fill} bind def /colrecstx* {setgray rec stroke} bind def } if xcolorl 2 eq {/tfnx* {1 1 1 0 setcmykcolor} def /tfwx* {0 0 0 0 setcmykcolor} def /colrecfix* {setcmykcolor rec fill} bind def /colrecstx* {setcmykcolor rec stroke} bind def } if xcolorl 3 eq {/tfnx* {0 0 0 setrgbcolor} def /tfwx* {1 1 1 setrgbcolor} def /colrecfix* {setrgbcolor rec fill} bind def /colrecstx* {setrgbcolor rec stroke} bind def } if %pchartl 0 eq {%%pchartl=0 Y10-7N_AL39_JSO.E%pS %font0309.ps*********************************************** /CW {100 /Courier-ISOL1 FS} bind def /CV {150 /Courier-ISOL1 FS} bind def /CS {200 /Courier-ISOL1 FS} bind def /CK {250 /Courier-ISOL1 FS} bind def /CM {300 /Courier-ISOL1 FS} bind def /CG {350 /Courier-ISOL1 FS} bind def /CBW {100 /CourierB-ISOL1 FS} bind def /CBV {150 /CourierB-ISOL1 FS} bind def /CBS {200 /CourierB-ISOL1 FS} bind def /CBK {250 /CourierB-ISOL1 FS} bind def /CBM {300 /CourierB-ISOL1 FS} bind def /CBG {350 /CourierB-ISOL1 FS} bind def /RW {100 /Times-Roman FS} bind def /RV {150 /Times-Roman FS} bind def /RS {200 /Times-Roman FS} bind def /RK {250 /Times-Roman FS} bind def /RM {300 /Times-Roman FS} bind def /RG {350 /Times-Roman FS} bind def /RIW {100 /Times-Italic FS} bind def /RIV {150 /Times-Italic FS} bind def /RIS {200 /Times-Italic FS} bind def /RIK {250 /Times-Italic FS} bind def /RIM {300 /Times-Italic FS} bind def /RIG {350 /Times-Italic FS} bind def /RBW {100 /Times-Bold FS} bind def /RBV {150 /Times-Bold FS} bind def /RBS {200 /Times-Bold FS} bind def /RBK {250 /Times-Bold FS} bind def /RBM {300 /Times-Bold FS} bind def /RBG {350 /Times-Bold FS} bind def /RBIW {100 /Times-BoldItalic FS} bind def /RBIV {150 /Times-BoldItalic FS} bind def /RBIS {200 /Times-BoldItalic FS} bind def /RBIK {250 /Times-BoldItalic FS} bind def /RBIM {300 /Times-BoldItalic FS} bind def /RBIG {350 /Times-BoldItalic FS} bind def /TW {100 /Times-ISOL1 FS} bind def /TV {150 /Times-ISOL1 FS} bind def /TS {200 /Times-ISOL1 FS} bind def /TK {250 /Times-ISOL1 FS} bind def /TM {300 /Times-ISOL1 FS} bind def /TG {350 /Times-ISOL1 FS} bind def /TIW {100 /TimesI-ISOL1 FS} bind def /TIV {150 /TimesI-ISOL1 FS} bind def /TIS {200 /TimesI-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 /TBW {100 /TimesB-ISOL1 FS} bind def /TBV {150 /TimesB-ISOL1 FS} bind def /TBS {200 /TimesB-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 /TBIW {100 /TimesBI-ISOL1 FS} bind def /TBIV {150 /TimesBI-ISOL1 FS} bind def /TBIS {200 /TimesBI-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 /SW {100 /Symbol FS} bind def /SV {150 /Symbol FS} bind def /SS {200 /Symbol FS} bind def /SK {250 /Symbol FS} bind def /SM {300 /Symbol FS} bind def /SG {350 /Symbol FS} bind def /ishowRV {RW -00 -30 rmoveto show 00 30 rmoveto RV} def /jshowRV {RBW -00 -30 rmoveto show 00 30 rmoveto RBV} def /ishowTV {TW -00 -30 rmoveto show 00 30 rmoveto TV} def /jshowTV {TBW -00 -30 rmoveto show 00 30 rmoveto TBV} def /ishowRS {RV -00 -40 rmoveto show 00 40 rmoveto RS} def /jshowRS {RBV -00 -40 rmoveto show 00 40 rmoveto RBS} def /ishowTS {TV -00 -40 rmoveto show 00 40 rmoveto TS} def /jshowTS {TBV -00 -40 rmoveto show 00 40 rmoveto TBS} def /ishowRK {RS -00 -50 rmoveto show 00 50 rmoveto RK} def /jshowRK {RBS -00 -50 rmoveto show 00 50 rmoveto RBK} def /ishowTK {TS -00 -50 rmoveto show 00 50 rmoveto TK} def /jshowTK {TBS -00 -50 rmoveto show 00 50 rmoveto TBK} def /ishowRM {RK -00 -60 rmoveto show 00 60 rmoveto RM} def /jshowRM {RBK -00 -60 rmoveto show 00 60 rmoveto RBM} def /ishowTM {TK -00 -60 rmoveto show 00 60 rmoveto TM} def /jshowTM {TBK -00 -60 rmoveto show 00 60 rmoveto TBM} def /ishowRG {RM -00 -70 rmoveto show 00 70 rmoveto RG} def /jshowRG {RBM -00 -70 rmoveto show 00 70 rmoveto RBG} def /ishowTG {TM -00 -70 rmoveto show 00 70 rmoveto TG} def /jshowTG {TBM -00 -70 rmoveto show 00 70 rmoveto TBG} def %font0309.ps*********************************************** /L*Nl 18.01 def %standard lightness black /L*Wl 95.41 def %standard lightness white /L*ND where {pop /L*Nl L*ND def} if /L*WD where {pop /L*Wl L*WD def} if /L*Dl L*Wl L*Nl sub def %range between white and black /cvishow {cvi 6 string cvs show} def /IMODE 0 def /xs 1000 def /ys xs def /d2 xs 2 div def /d8 xs 8 div def /xs5x xs 5.4 mul def /ys5x ys 5.4 mul def /x xs 0.1 mul def /y ys 12.0 mul def /cvishow {0.5 add cvi 6 string cvs show} def /cvsshow1 {0.05 add 10 mul cvi 0.1 mul 7 string cvs show} def /cvsshow2 {0.005 add 100 mul cvi 0.01 mul 7 string cvs show} def /cvsshow3 {0.0005 add 1000 mul cvi 0.001 mul 7 string cvs show} def /xd 800 def /yd 800 def /xd5x xs5x 200 sub def /yd5x ys5x 200 sub def /j 0 def /i 0 def /xmin 0000 def /xmax 10000 def /ymin 0000 def /ymax 10000 def /ISIN*ioG where {pop /ISIN*ioL ISIN*ioG def} {/ISIN*ioL 1 def} ifelse /ISOU*ioG where {pop /ISOU*ioL ISOU*ioG def} {/ISOU*ioL 1 def} ifelse /ISRL*ioL 0 def %*********************************************************************************** /vheigh 3.4 def /vheigk 3.0 def /TINN {vheigh /Times-ISOL1 FS} bind def /TINI {vheigh /TimesI-ISOL1 FS} bind def /RINN {vheigh /Times-Roman FS} bind def /TINK {vheigk /Times-ISOL1 FS} bind def 72 86.9 moveto /xchart16 2 def %1..16 RINN xchart16 8 le {(AGD30-) show xchart16 cvishow} {/xchartX xchart16 8 sub def (AGD31-) show xchartX cvishow} ifelse TINN (N, ) show (Input file: ) showen (Eingabedatei: ) showde RINN 0 0 1 setrgbcolor (http://farbe.li.tu-berlin.de/AED3/AED30-1N.EPS) showen (http://farbe.li.tu-berlin.de/AGD3/AGD30-1N.EPS) showde (, ) show 0 setgray TINN iproc1MR 0 eq {%iproc1MR=0 (No 1MR, ) showen (No 1MR, ) showde} {%iproc1MR=1 (1MR, ) show } ifelse %iproc1MR=0,1 /ioutg 1 def ioutg 1 eq {%ioutg=1 TINN (Gamma ) showde (gamma ) showen TINI (g) show 0 -1 rmoveto TINK (P) show 0 1 rmoveto TINN (=) show gammaFi xchart get cvsshow3g (, ) show TINI (C) show /xchartP xchart 1 add def 0 -1 rmoveto TINK (YP) show xchartP cvishow 0 1 rmoveto xchartP 8 ge {%xchartP>=8 TINN (=) show TINI (C) show 0 -1 rmoveto TINK (YN) show 8 xchartP 8 sub sub cvishow 0 1 rmoveto } if %xchartP>=8 %RINN %( AGD30-1N) show } if %ioutg=1 72 90 translate %72 90 translate 0.00237 MM dup scale %00229? 15 setlinewidth /xyf 1 def /xwidth 24700 def /ywidth 17000 def 0.5 0.5 0.5 setrgbcolor 0 0 moveto xwidth 0 rlineto 0 ywidth rlineto xwidth neg 0 rlineto closepath fill 0.0 setgray 0 0 moveto xwidth 0 rlineto 0 ywidth rlineto xwidth neg 0 rlineto closepath stroke 0 1 1 {/ibild exch def %ibild=0,1 ibild 0 eq {/ISIO*ioL ISIN*ioL def} {/ISIO*ioL ISOU*ioL def} ifelse /ISIO*ioG where {pop /ISIO*ioG ISIO*ioL def} if /ISRL*ioG where {pop /ISRL*ioG ISRL*ioL def} if /LAB*ioG where {pop LAB*ioG}{LAB*ioL} ifelse %new for hue data 0 0 0 setrgbcolor ibild 0 eq { 1500 1700 translate} if ibild 1 eq {13800 1700 translate} if %ibild 0 eq {-1250 -1950 moveto % RM % (AGD30-7N) show % RM (-) show colorml cvishow xcolorl cvishow % xchartd 1 eq {xchartl cvishow} % {xchartl xchartd idiv cvishow} ifelse % RM (-) show pchartl cvishow (: ) show} % {-600 -1950 moveto} ifelse %TM %(20stufiger Bunttonkreis mit 4 Elementarfarben) showde %(20 step hue circle with 4 elementary colours) showen %(Hue circulo con 20 pasos y 4 colores elementales) showes %(Cercle cromatique avec 20 paliers et 4 coleurs \351l\351mentales) showfr %(Cerchio tinta con 20 passi e 4 colori elementari) showit %(Kulor sirkel med 20 trinn og 4 elementarfarger) showjp %TIM ( R) show (e) jshowTM %TIM (, J) show (e) jshowTM %TIM (, G) show (e) jshowTM %TIM (, B) show (e) jshowTM %ibild 0 eq { %TM %( (links) ) showde %( (left) ) showen %( (izquierda) ) showes %( (gauche) ) showfr %( (sinistra) ) showit %( (venstre) ) showjp % } % { %TM %( (rechts) ) showde %( (right) ) showen %( (derecha) ) showes %( (droit) ) showfr %( (destra) ) showit %( (hoyre) ) showjp % } ifelse 1 1 1 setrgbcolor -1200 15000 moveto ibild 0 eq { %ibild=0,1 TBG (Eingabe: Farbmetrisches ) showde (Input: Colorimetric ) showen (Entrada: Colorimetrico ) showes (Entr\351e: Colorim\351trique ) showfr (Ingresso: Colorimetrico ) showit (Input: Kolorimetrisk ) showjp } { TBG (Ausgabe: Farbmetrisches ) showde (Output: Colorimetric ) showen (Salida: Colorimetrico ) showes (Sortie: Colorim\351trique ) showfr (Uscita: Colorimetrico ) showit (Utgang: Kolorimetrisk ) showjp } ifelse ISRL*ioL 0 eq {%ISRL*ioL=0 %default ISIN*ioL=1, ISOU*ioL=1, ISIO*ioL 0 eq {/TSYSIO (ORS18a) def (Offset Reflective System ) showen (Offset-Reflektiv-System ) showde} if ISIO*ioL 1 eq {/TSYSIO (TLS00a) def RBG (Fernseh-Licht-System ) showde (Television Luminous System ) showen TBG (Televisi\363n sistema luminoso ) showes (Syst\350me lumineux de la t\351l\351vision ) showfr (Televisione sistema luminoso ) showit (Tv Lysende System ) showjp } if ISIO*ioL 2 eq {/TSYSIO (FRS06a) def (Printer Reflective System ) showen (Drucker-Reflektiv-System ) showde} if ISIO*ioL 3 eq {/TSYSIO (TLS18a) def (Television Luminous System ) showen (Fernseh-Licht-System ) showde} if ISIO*ioL 4 eq {/TSYSIO (NLS00a) def (Natural Luminous System ) showen (Nat\374rliches-Licht-System ) showde} if ISIO*ioL 5 eq {/TSYSIO (NRS18a) def (Natural Reflective System ) showen (Nat\374rliches-Reflektiv-System ) showde} if ISIO*ioL 6 eq {/TSYSIO (SRS18a) def (Standard Reflective System ) showen (Standard-Reflektiv-System ) showde} if ISIO*ioL 7 eq {/TSYSIO (TLS70a) def (Television Luminous System ) showen (Fernseh-Licht-System ) showde} if } if %ISRL*ioL=0 ISRL*ioL 1 eq {%ISRL*ioL=1 TBG ISIO*ioL 0 eq {/TSYSIO (TLS00a) def} if ISIO*ioL 1 eq {/TSYSIO (TLS06a) def} if ISIO*ioL 2 eq {/TSYSIO (TLS11a) def} if ISIO*ioL 3 eq {/TSYSIO (TLS18a) def} if ISIO*ioL 4 eq {/TSYSIO (TLS27a) def} if ISIO*ioL 5 eq {/TSYSIO (TLS38a) def} if ISIO*ioL 6 eq {/TSYSIO (TLS52a) def} if ISIO*ioL 7 eq {/TSYSIO (TLS70a) def} if RBG (Fernseh-Licht-System ) showde (Television Luminous System ) showen TBG (Televisi\363n sistema luminoso ) showes (Syst\350me lumineux de la t\351l\351vision ) showfr (Televisione sistema luminoso ) showit (Tv Lysende System ) showjp } if %ISRL*ioL=1 ISRL*ioL 2 eq {%ISRL*ioL=2 TBG ISIO*ioL 0 eq {/TSYSIO (OLS00a) def} if ISIO*ioL 1 eq {/TSYSIO (OLS06a) def} if ISIO*ioL 2 eq {/TSYSIO (OLS11a) def} if ISIO*ioL 3 eq {/TSYSIO (OLS18a) def} if ISIO*ioL 4 eq {/TSYSIO (OLS27a) def} if ISIO*ioL 5 eq {/TSYSIO (OLS38a) def} if ISIO*ioL 6 eq {/TSYSIO (OLS52a) def} if ISIO*ioL 7 eq {/TSYSIO (OLS70a) def} if (Offset Luminous System ) showen (Offset-Licht-System ) showde } if %ISRL*ioL=2 TSYSIO show ibild 0 eq {%ibild=0 -1200 14500 moveto TBG (mit) showde (with ) showen (con ) showes (avec ) showfr (con ) showit (med ) showjp RBIG (rgb-) showde TBIG (rgb ) showen (rgb ) showes (rgb ) showfr (rgb ) showit (rgb ) showjp TBG (Daten der) showde (data of the) showen (los datos de los) showes (les donn\351es de) showfr (i dati di) showit (data i) showjp -1200 14000 moveto TBG (vier Elementarbuntt\366ne) showde (four elementary hues) showen (ciatro colores elementales) showes (4 couleur \351l\351mentaire) showfr (quattro colori elementari) showit (fire elementaerfarge) showjp -1200 13500 moveto TBG (1 0 0 = ) show TBG (Rot) showde (Red) showen (Rojo) showes (Rouge) showfr (Rosso) showit (R\370d) showjp TBIG ( R) show (e) jshowTG -1200 13000 moveto TBG (1 1 0 = ) show TBG (Gelb) showde (Yellow) showen (Amarillo) showes (Jaune) showfr (Giallo) showit (Gul) showjp TBIG ( Y) show (e) jshowTG -1200 12500 moveto TBG (0 1 0 = ) show TBG (Gr\374n) showde (Green) showen (Verde) showes (Vert) showfr (Verde) showit (Gr\370nn) showjp TBIG ( G) show (e) jshowTG -1200 12000 moveto TBG (0 0 1 = ) show TBG (Blau) showde (Blue) showen (Azul) showes (Bleu) showfr (Blu) showit (Bl\345) showjp TBIG ( B) show (e) jshowTG } if %ibild=0 ibild 1 eq {%ibild=0 -1200 14500 moveto TBG (mit Bunttonnummer) showde (with hue number) showen (con tono n\372mero) showes (avec num\351ro de teinte) showfr (con numero di tonalit\340) showit (med fargetone nummer) showjp -1200 14000 moveto TBIG (n) show TBG (= 00 bis 19) showde (= 00 to 19) showen (= 00 to 19) showes (= 00 to 19) showfr (= 00 to 19) showit (= 00 to 19) showjp -1200 13500 moveto TBG (00 = ) show (Rot) showde (Red) showen (Rojo) showes (Rouge) showfr (Rosso) showit (R\370d) showjp TBIG ( R) show (e) jshowTG -1200 13000 moveto TBG (05 = ) show (Gelb) showde (Yellow) showen (Amarillo) showes (Jaune) showfr (Giallo) showit (Gul) showjp TBIG ( Y) show (e) jshowTG -1200 12500 moveto TBG (10 = ) show (Gr\374n) showde (Green) showen (Verde) showes (Vert) showfr (Verde) showit (Gr\370nn) showjp TBIG ( G) show (e) jshowTG -1200 12000 moveto TBG (15 = ) show (Blau) showde (Blue) showen (Azul) showes (Bleu) showfr (Blu) showit (Bl\345) showjp TBIG ( B) show (e) jshowTG } if %ibild=1 0.0 setgray %CIELAB-Table 5400 10000 translate /yhoe 6300 def 15 setlinewidth 1 1 1 setrgbcolor 0 0 moveto 5400 0 rlineto 0 4800 rlineto -5400 0 rlineto closepath fill 0 0 0 setrgbcolor 0 0 moveto 5400 0 rlineto 0 4800 rlineto -5400 0 rlineto closepath stroke /yd 340 def %y-Zeilenabstand %Spalten /S1 20 def /S2 450 def /S3 1550 def /S4 2650 def /S5 3750 def /S6 4800 def /yu1 4650 def /yu2 3800 def 0 4100 moveto 5200 0 rlineto stroke %Titeltext /ColNames [(O) (Y) (L) (C) (V) (M) (N) (W) (R) (J) (G) (B)] def S1 4550 moveto TBM ibild 0 eq {TSYSIO show} {TSYSIO show} ifelse (; adaptierte CIELAB-Daten) showde (; adapted (a) CIELAB data) showen (; adaptatos (a) datos CIELAB) showes (; adapt\351 (a) donn\351es CIELAB) showfr (; adattato (a) dati CIELAB) showit (; tilpasset (a) CIELAB data) showjp S2 000 add 4250 moveto TBIM (L*=L*) show (a) jshowTM S3 100 add 4250 moveto TBIM (a*) show (a) jshowTM S4 000 add 4250 moveto TBIM (b*) show (a) jshowTM S5 100 sub 4250 moveto TBIM (C*) show (ab,a) jshowTM S6 200 sub 4250 moveto TBIM (h*) show (ab,a) jshowTM 0 1 11 {/ic exch def %ic=0,11 S1 20 add yu2 yd ic mul sub moveto TM ColNames ic get show ic 8 ge {(CIE) ishowTM}{(Ma) ishowTM} ifelse } for %ic=0,11 0 1 11 {/i exch def %i=0,11 /ya yu2 yd i mul sub def /L*Ma LAB*a i 3 mul get def /A*Ma LAB*a i 3 mul 1 add get def /B*Ma LAB*a i 3 mul 2 add get def /C*Ma A*Ma dup mul B*Ma dup mul add sqrt def /H*Ma B*Ma A*Ma 0.0001 add atan def S2 200 add ya moveto L*Ma cvsshow2 S3 ya moveto A*Ma cvsshow2 S4 ya moveto B*Ma cvsshow2 S5 ya moveto C*Ma cvsshow2 S6 ya moveto H*Ma cvishow } for %i=0,11 -5400 -10000 translate %CIELAB-Diagram 2500 11600 translate 25 setlinewidth 1 1 1 setrgbcolor 0 0 moveto 2800 0 rlineto 0 2800 rlineto -2800 0 rlineto closepath fill 0 0 0 setrgbcolor 0 0 moveto 2800 0 rlineto 0 2800 rlineto -2800 0 rlineto closepath stroke 1200 1300 translate -1000 0 moveto 1000 0 lineto stroke 0 -1000 moveto 0 1000 lineto stroke 1100 0 moveto TIG (a*) show (a) ishowTG 0 1100 moveto TIG (b*) show (a) ishowTG /rx 774 def %standard hexagon gamut 0 0 0 setrgbcolor rx 030 cos mul rx 030 sin mul moveto 0 rx lineto rx 150 cos mul rx 150 sin mul lineto rx 210 cos mul rx 210 sin mul lineto 0 rx neg lineto rx 330 cos mul rx 330 sin mul lineto closepath stroke /r 1 def /g 0 def /b 0 def r g b setrgbcolor rx 030 cos mul rx 030 sin mul 100 0 360 arc fill /r 1 def /g 1 def /b 0 def r g b setrgbcolor 0 rx 100 0 360 arc fill /r 0 def /g 1 def /b 0 def r g b setrgbcolor rx 150 cos mul rx 150 sin mul 100 0 360 arc fill /r 0 def /g 1 def /b 1 def r g b setrgbcolor rx 210 cos mul rx 210 sin mul 100 0 360 arc fill /r 0 def /g 0 def /b 1 def r g b setrgbcolor 0 rx neg 100 0 360 arc fill /r 1 def /g 0 def /b 1 def r g b setrgbcolor rx 330 cos mul rx 330 sin mul 100 0 360 arc fill %calculation line of actual hue 45 setlinewidth %actual gamut 0 0 0 setrgbcolor 0 1 5 {/i exch def %i=0,5 /A*Ma LAB*a i 3 mul 1 add get def /B*Ma LAB*a i 3 mul 2 add get def i 0 eq {A*Ma 10 mul B*Ma 10 mul moveto} {A*Ma 10 mul B*Ma 10 mul lineto} ifelse i 5 eq {closepath stroke} if } for %i=0,5 -1200 -1300 translate -2500 -11600 translate %BEG CIELAB-Hue Circle -1200 -1500 translate /xym xyf 4 mul def 25 setlinewidth /xd2 xd 0.8 mul def 0.5 0.5 0.5 setrgbcolor 0 0 moveto 2800 xym mul 0 rlineto 0 2800 xym mul rlineto -2800 xym mul 0 rlineto closepath fill 0.0 setgray 0 0 moveto 2800 xym mul 0 rlineto 0 2800 xym mul rlineto -2800 xym mul 0 rlineto closepath stroke 1400 xym mul 1400 xym mul translate %cero at center -550 xym mul 0 moveto 550 xym mul 0 lineto stroke 0 -650 xym mul moveto 0 650 xym mul lineto stroke /rx 774 xym mul 1.56 mul def %standard hexagon gamut 0 0 0 setrgbcolor 0 0 rx 0 360 arc stroke /AngrgbTabt 88 array def /AngrgbTabt [%31 angles = 360/18 + 1 = 20 + 1 000 1.0 0.0 0.0 018 1.0 0.2 0.0 036 1.0 0.4 0.0 054 1.0 0.6 0.0 072 1.0 0.8 0.0 090 1.0 1.0 0.0 108 0.8 1.0 0.0 126 0.6 1.0 0.0 144 0.4 1.0 0.0 162 0.2 1.0 0.0 180 0.0 1.0 0.0 198 0.0 1.0 0.4 216 0.0 1.0 0.8 234 0.0 0.8 1.0 252 0.0 0.4 1.0 270 0.0 0.0 1.0 288 0.4 0.0 1.0 306 0.8 0.0 1.0 324 1.0 0.0 0.8 342 1.0 0.0 0.4 360 1.0 0.0 0.0 ] def /xd2r xd2 0.7 mul def 0 1 20 {/j exch def %j=0,30 /xpos rx AngrgbTabt j 4 mul get cos mul def /ypos rx AngrgbTabt j 4 mul get sin mul def /r AngrgbTabt j 4 mul 1 add get def /g AngrgbTabt j 4 mul 2 add get def /b AngrgbTabt j 4 mul 3 add get def r g b setrgbcolor xpos ypos xd2 0 360 arc fill /xchax 0 def xchax 0 eq {%xchax=0 /xpos rx AngrgbTabt j 4 mul get cos mul def /ypos rx AngrgbTabt j 4 mul get sin mul def /r AngrgbTabt j 4 mul 1 add get def /g AngrgbTabt j 4 mul 2 add get def /b AngrgbTabt j 4 mul 3 add get def 1 r sub 1 g sub 1 b sub 0 setcmykcolor xpos ypos xd2r 0 360 arc fill } if %xchax=0 } for %j=0,20 TBG 0 0 0 setrgbcolor ibild 0 eq {%ibild=1 4400 -100 moveto (1 0 0) show -300 4700 moveto (1 1 0) show -5200 -100 moveto (0 1 0) show 1 setgray -300 -4900 moveto (0 0 1) show } if %ibild=1 ibild 1 eq {%ibild=1 0 1 19 {/j exch def %j=0,30 /xpos rx AngrgbTabt j 4 mul get cos mul def /ypos rx AngrgbTabt j 4 mul get sin mul def 0 0 0 setrgbcolor j 13 ge j 17 le and {1 1 1 setrgbcolor} if xpos 200 sub ypos 100 sub moveto j 9 le {TBG (0) show j cvishow} {j cvishow} ifelse } for %j=0,20 } if %ibild=1 1 1 1 setrgbcolor 2600 800 moveto TBG ( gelblich) showde (yellowish) showen (jaun\342tre) showfr ( gullig) showjp -250 0 rmoveto (amarillento) showes ( giallastro) showit -3800 800 moveto TBG ( gelblich) showde (yellowish) showen (amarillento) showes (jaun\342tre) showfr (giallastro) showit ( gullig) showjp 2600 -1150 moveto TBG (bl\344ulich) showde ( bluish) showen ( azulado) showes ( blu\342tre) showfr ( bluastro) showit ( bl\345lig) showjp -3800 -1150 moveto TBG (bl\344ulich) showde ( bluish) showen ( azulado) showes ( blu\342tre) showfr ( bluastro) showit ( bl\345lig) showjp -1600 3400 moveto TBG (gr\374nlich) showde (greenish) showen (verdoso) showes (verd\342tre) showfr (verdastro) showit ( gr\370nnlig) showjp -1600 -3600 moveto TBG (gr\374nlich) showde (greenish) showen (verdoso) showes (verd\342tre) showfr (verdastro) showit ( gr\370nnlig) showjp 700 3400 moveto TBG (r\366tlich) showde ( redish) showen (rojizo) showes (rouge\342tre) showfr (rossastro) showit ( r\370dlig) showjp 700 -3600 moveto TBG (r\366tlich) showde ( redish) showen (rojizo) showes (rouge\342tre) showfr (rossastro) showit ( r\370dlig) showjp 2700 -100 moveto TBG ( Rot) showde ( Red) showen (Rojo) showes (Rouge) showfr (Rosso) showit ( R\370d) showjp TBIG ( R) show (e) jshowTG -600 3800 moveto TBG ( Gelb) showde ( Yellow) showen (Amarillo) showes ( Jaune) showfr ( Giallo) showit ( Gul) showjp TBIG ( Y) show (e) jshowTG -4000 -100 moveto TBG (Gr\374n) showde (Green) showen (Verde) showes (Vert) showfr (Verde) showit (Gr\370nn) showjp TBIG ( G) show (e) jshowTG -500 -4000 moveto TBG (Blau) showde (Blue) showen (Azul) showes (Bleu) showfr (Blu) showit (Bl\345) showjp TBIG ( B) show (e) jshowTG -1400 xym mul -1400 xym mul translate %END CIELAB-Hue Circle 1200 1500 translate ibild 0 eq { -1500 -1700 translate} if ibild 1 eq {-13800 -1700 translate} if 0 0 0 setrgbcolor 0 0 moveto 25000 0 rlineto 0 17000 rlineto -25000 0 rlineto closepath stroke } for %ibild=0,1 %} if %pchartl=0 Y10-7N_AL39_JSO.EPS %} for %pchartl=0,2 %} for %xchartl=0,7 %} for %xcolorl=0,3 %} for %colorml=0,1 grestore showpage %%EOF