%!PS-Adobe-3.0 EPSF-3.0 www.ps.bam.de/Eg93/10L/L93E00XX.PS 20080701 %%BoundingBox: 00 00 414 292 /pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse /languagelevel where {pop languagelevel} {1} ifelse 2 lt { userdict (<<) cvn ([) cvn load put userdict (>>) cvn (]) cvn load put } if [ /Title (PostScript pictures: www.ps.bam.de/Eg93/Eg93.HTM) /Author (compare K. Richter "Computergrafik ...": ISBN 3-8007-1775-1) /Subject (goto: www.ps.bam.de or http://o2.ps.bam.de) /Keywords (image reproduction, colour devices) /Creator (klaus.Richter@bam.de) /CreationDate (D:2008070112000) /ModDate (D:2008070112000) /DOCINFO pdfmark [ /View [ /Fit ] /DOCVIEW pdfmark /ColSpxG 0 def /ColSpx ColSpxG def %BEG De8_9x/Eg93/OUTLIN10.PS Output Linearization (OL) LAB* -> cmyolvnw* 20080601 %Early Binding: needed for colour separation /sgcmykcolor {setcmykcolor} bind def /sggray {setgray} bind def /sgrgbcolor {setrgbcolor} bind def %FILE PREPARED FOR MIXED MODE, e. g. input ORS18 and output TLS00 /IMES 0 def %0=LAB* used, no reflection factor necessary %/IMES 1 def /Yre 2.52 def %1=XYZ measurement and standard device reflection %/i*ptrsc 0 def %LAB* setcolor to cmy0* / 000n* setcmykcolor /i*ptrsc 1 def %LAB* setcolor to olv* setrgbcolor / w* setgray %/i*ptrsc 2 def %LAB* setcolor to cmy0* / nnn0* setcmykcolor %/i*ptrsc 3 def %LAB* setcolor to olv* / www* setrgbcolor %/i*ptrsc 4 def %LAB* setcolor to lab* setcolor %/i*ptrsc 5 def %LAB* setcolor to LAB* setcolor %/i*ptrsc 6 def %LAB* setcolor to 000n* setcmykcolor %/i*ptrsc 7 def %LAB* setcolor to w* setgray /ISIN*ioG 0 def %default input for Offset Reflective System (ORS18/FRS09) /ISOU*ioG 0 def %default output dto. %/ISIN*ioG 1 def %input for Television Luminous System (TLS00) %/ISOU*ioG 1 def %output dto. %/ISIN*ioG 2 def %input for Device Reflective measurement system (FRS09) %/ISOU*ioG 2 def %output dto. %/ISIN*ioG 3 def %input for Television Luminous Reflection System (TLS18) %/ISOU*ioG 3 def %output dto. %/ISIN*ioG 4 def %input for Natural Luminous System (NLS00) %/ISOU*ioG 4 def %output dto. %/ISIN*ioG 5 def %input for Natural Reflective System (NRS11) %/ISOU*ioG 5 def %output dto. %/ISIN*ioG 6 def %input for Standard Reflective System (CIE18) %/ISOU*ioG 6 def %output dto. %/ISIN*ioG 7 def %input for Standard Reflective System (TLS70) %/ISOU*ioG 7 def %output dto. /iLAB 0 def /ISIO*ioG 0 def /ISRL*ioG 0 def % for io-System, only once /auszg 8 def /ausz 8 def %END De8_9x/Eg93/OUTLIN10.PS Output Linearization (OL) LAB* -> cmyolvnw* 20080601 %***************************************************************************** %BEG /Eg93/10L/OUTLIN1X.PS, identical for NP-(*ioG), FP-files (*ioG) 20080701 %***************************************************************************** %Data (FRS09_92aM) def /LAB*ioG {%BEG Procedure LAB*ioG %requires ISRL*ioG=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* 84 array def %12x3=36 including N,W + 16x3=48 elementary system /LAB*a 84 array def /LAB*Hx 13 array def %0_to_6 8_to_12 for device and elemetary colours /LAB*00 24 array def /LAB*01 24 array def /LAB*02 24 array def /LAB*03 24 array def /LAB*04 24 array def /LAB*05 24 array def /LAB*06 24 array def /LAB*07 24 array def /LAB*TE %not used [(ORS18) (TLS00) (FRS06) (TSL18) (NLS00) (NLS18) (SRS18) (TLS70) (TLS00) (TLS06) (TLS11) (TLS18) (TLS27) (TLS38) (TLS52) (TLS70) (OLS00) (OLS06) (OLS11) (OLS18) (OLS27) (OLS38) (OLS52) (OLS70)] def %FRS09_92M.DAT, Model data are not adapted here, 55 lines, 141:195 ISRL*ioG 0 eq { %ISRL*ioG=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 %From LUT_De740-7N_3_4_FRS09_92.DAT 20080625 %Data output of De74/10L/De740-7N.EPS -> De740_3_4_Model.log %LAB*a %#1000 x (r g b c m y 0) %nr. pos (FRS09_92aM) %035.06 059.98 043.99 %#1000 0000 0000 0000 1000 1000 0000 %1074 l26 $O %083.76 -05.16 109.29 %#1000 1000 0000 0000 0000 1000 0000 %1076 m26 $Y %044.13 -62.65 048.23 %#0000 1000 0000 1000 0000 1000 0000 %1078 n26 $L %052.65 -29.13 -31.98 %#0000 1000 1000 1000 0000 0000 0000 %1075 l27 $C %014.15 050.29 -59.02 %#0000 0000 1000 1000 1000 0000 0000 %1077 m27 $V %037.37 078.62 -33.49 %#1000 0000 1000 0000 1000 0000 0000 %1079 n27 $M %008.59 000.00 000.00 %#0000 0000 0000 1000 1000 1000 0000 %1072 k26 $N %092.01 000.00 000.00 %#1000 1000 1000 0000 0000 0000 0000 %1073 k27 $W %$ %LAB*a %#1000 x (r g b c m y 0) %nr. pos (FRS09_92aM) %035.06 059.98 043.99 %#1000 0000 0000 0000 1000 1000 0000 %1074 l26 $O %083.76 -05.16 109.29 %#1000 1000 0000 0000 0000 1000 0000 %1076 m26 $Y %044.13 -62.65 048.23 %#0000 1000 0000 1000 0000 1000 0000 %1078 n26 $L %052.65 -29.13 -31.98 %#0000 1000 1000 1000 0000 0000 0000 %1075 l27 $C %014.15 050.29 -59.02 %#0000 0000 1000 1000 1000 0000 0000 %1077 m27 $V %037.37 078.62 -33.49 %#1000 0000 1000 0000 1000 0000 0000 %1079 n27 $M %008.59 000.00 000.00 %#0000 0000 0000 1000 1000 1000 0000 %1072 k26 $N %092.01 000.00 000.00 %#1000 1000 1000 0000 0000 0000 0000 %1073 k27 $W %LAB* %#1000 x (r g b c m y 0) %nr. pos $ (FRS09_92M) 0035.06 0060.53 0039.66 %#1000 0000 0000 0000 1000 1000 0000 %0648 S19 %O1 0 $ 0083.77 -004.50 0103.15 %#1000 1000 0000 0000 0000 1000 0000 %0720 a19 %Y1 1 $ 0044.13 -062.11 0043.56 %#0000 1000 0000 1000 0000 1000 0000 %0072 I01 %L1 2 $ 0052.66 -028.56 -036.99 %#0000 1000 1000 1000 0000 0000 0000 %0080 I09 %C1 3 $ 0014.15 0050.78 -062.60 %#0000 0000 1000 1000 1000 0000 0000 %0008 A09 %V1 4 $ 0037.37 0079.18 -037.93 %#1000 0000 1000 0000 1000 0000 0000 %0656 S27 %M1 5 $ 0008.58 0000.46 -003.35 %#0000 0000 0000 1000 1000 1000 0000 %0000 A01 %N1 6 $ 0092.02 0000.69 -006.48 %#1000 1000 1000 0000 0000 0000 0000 %0728 a27 %W1 7 $ %$ %LAB* %#1000 x (r g b c m y 0) %nr. pos $ (FRS09_92M) %0035.06 0060.53 0039.66 %#1000 0000 0000 0000 1000 1000 0000 %0648 S19 %O1 0 $ %0083.77 -004.50 0103.15 %#1000 1000 0000 0000 0000 1000 0000 %0720 a19 %Y1 1 $ %0044.13 -062.11 0043.56 %#0000 1000 0000 1000 0000 1000 0000 %0072 I01 %L1 2 $ %0052.66 -028.56 -036.99 %#0000 1000 1000 1000 0000 0000 0000 %0080 I09 %C1 3 $ %0014.15 0050.78 -062.60 %#0000 0000 1000 1000 1000 0000 0000 %0008 A09 %V1 4 $ %0037.37 0079.18 -037.93 %#1000 0000 1000 0000 1000 0000 0000 %0656 S27 %M1 5 $ %0008.58 0000.46 -003.35 %#0000 0000 0000 1000 1000 1000 0000 %0000 A01 %N1 6 $ %0092.02 0000.69 -006.48 %#1000 1000 1000 0000 0000 0000 0000 %0728 a27 %W1 7 $ ] 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*ioG=0 ISRL*ioG 1 eq { %ISRL*ioG=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*ioG=1 ISRL*ioG 2 eq { %ISRL*ioG=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*ioG=2 0 1 11 {/sISO exch def %sISO=0,11 /i30 sISO 3 mul def /i31 i30 1 add def /i32 i30 2 add def sISO 7 le { %sISO=0,7 ISIO*ioG 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*ioG 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*ioG 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*ioG 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*ioG 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*ioG 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*ioG 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*ioG 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 %Definition 8 to 11 (24 to 35=33+2) /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 LAB*a i30 LAB* i30 get put LAB*a i31 LAB* i31 get put LAB*a i32 LAB* i32 get put } ifelse } for %sISO=0,11 % possible change of LAB*a according to reduced gamut %LAB* = 20 for Black N %LAB* = 95 for White W %cfakt = (95 - 20)/(95.41 - 18.01) = 0.969 %LAB*L*Nn = 20 for Black N instead of LAB*L*N = 18,01 %LAB*L*Wn = 95 for White W instead of LAB*L*W = 95,41 %LAB*L*Zn = 20+(95-20)/2=57,5 for Grey Z instead of %LAB*L*Z = 18,01+(95,41-18,01)/2=56,71 %L*neu = L*alt + (1 - cfakt %For achromatic %deltaLmean = 57,5 (1-c*neu); 56,71 (1-c*alt) %deltaLmimu = 20,0 (1-c*neu); 18,01 (1-c*alt) %deltaLplus = 95,0 (1-c*neu); 95,41 (1-c*alt) %For chromatic M %deltaLmean = L*Ma,neu; L*Ma,alt = known %C*Ma,alt known, C*Ma,neu known /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 /L*Wioref 90.0 def /L*Nioref 15.0 def %/cfakt 1 def /cfakt L*Wioref L*Nioref sub L*Wio L*Nio sub div def cfakt 1 ne {%cfakt#1 %change of lightness for Maximum colour /l*CIEN L*Nioref L*Nio sub L*Wio L*Nio sub div def /l*CIEW L*Wioref L*Nio sub L*Wio L*Nio sub div def LAB* 18 L*Nioref put %defined change of lightness and chroma a*,b* for N LAB* 19 A*Nio A*Wio A*Nio sub l*CIEN mul add put LAB* 20 B*Nio B*Wio B*Nio sub l*CIEN mul add put LAB* 21 L*Wioref put %defined change of lightness and chroma a*,b* for W LAB* 22 A*Nio A*Wio A*Nio sub l*CIEW mul add put LAB* 23 B*Nio B*Wio B*Nio sub l*CIEW mul add put %change of chroma by factor cfakt 0 1 07 {/iISO exch def /i30 iISO 3 mul def /i31 i30 1 add def /i32 i30 2 add def LAB* i30 LAB* i30 get put LAB* i31 LAB* i31 get cfakt mul put LAB* i32 LAB* i32 get cfakt mul put } for } if %cfakt#1 /L*Nior LAB* 18 get def %r=reference for reverse transform /A*Nior LAB* 19 get def /B*Nior LAB* 20 get def /L*Wior LAB* 21 get def /A*Wior LAB* 22 get def /B*Wior LAB* 23 get def 0 1 7 {/iISO exch def %iISO=0,7 /i30 iISO 3 mul def /i31 i30 1 add def /i32 i30 2 add def /l*CIE LAB* i30 get L*Nior sub L*Wior L*Nior sub div def /a*sr A*Wior A*Nior sub l*CIE mul def /b*sr B*Wior B*Nior sub l*CIE mul def LAB*a i30 LAB* i30 get put LAB*a i31 LAB* i31 get A*Nior sub a*sr sub put LAB*a i32 LAB* i32 get B*Nior sub b*sr sub put } for /L*Nio LAB*a 18 get def %=18.01 /A*Nio LAB*a 19 get def %=0 /B*Nio LAB*a 20 get def %=0 /L*Wio LAB*a 21 get def %=95.41 /A*Wio LAB*a 22 get def %=0 /B*Wio LAB*a 23 get def %=0 /A*Dio A*Wio A*Nio sub def %=0 /B*Dio B*Wio B*Nio sub def %=0 /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 %Definition 12 to 24 (36=12*3 to 75=24*3+3) by equal angle difference %between R and J, J and G, G and B, and B and R 0 1 03 {/ik exch def %ik=0,3 /H*1 RJGBLAB* ik 3 mul 2 add get RJGBLAB* ik 3 mul 1 add get 0.00001 add atan def ik 2 le {/ik2b ik 3 mul 5 add def} {/ik2b 2 def} ifelse /ik2a ik2b 1 sub def /H*2 RJGBLAB* ik2b get RJGBLAB* ik2a get 0.00001 add atan def ik 3 eq {/H*2 H*2 360 add def} if 0 1 03 {/ij exch def %ij=1,3 ij 0 eq {/a0 1.00 def /b0 0.00 def} if ij 1 eq {/a0 0.75 def /b0 0.25 def} if ij 2 eq {/a0 0.50 def /b0 0.50 def} if ij 3 eq {/a0 0.25 def /b0 0.75 def} if /H*M a0 H*1 mul b0 H*2 mul add def H*M 360 ge {/H*M H*M 360 sub def} if /L*Fa 50 def /A*Fa 75 H*M cos mul def /B*Fa 75 H*M sin mul def proc_LAB*Fa_LAB*MaNTABl_olvi3*cmyn3*Ma*ioG %calculates LAB*Ma /i30 36 ik 12 mul add ij 3 mul add def /i31 i30 1 add def /i32 i30 2 add def LAB*a i30 L*Ma put LAB*a i31 A*Ma put LAB*a i32 B*Ma put } for %ik=0,3 } for %ij=0,3 %6+1 hue angles for 6 device colour (index 0 to 06) %4+1 hue angles for 4 elementary colours (index 8 to 12) %no. 6 and 7 originaly achromatic 0 1 11 {/iHx exch def /i1x iHx 3 mul 1 add def /i2x i1x 1 add def LAB*Hx iHx LAB*a i2x get LAB*a i1x get 0.000001 add atan put } for LAB*Hx 06 LAB*Hx 00 get 360 add put LAB*Hx 12 LAB*Hx 08 get 360 add put } bind def %END Procedure LAB*ioG %*********************************************************** /detprocL*ioG { %BEG procedure detprocL*ioG % The detprocL*ioG below finds the determinant of the Matrix: % | A1 B1 C1 D1 | % | A2 B2 C2 D2 | % | A3 B3 C3 D3 | % | A4 B4 C4 D4 | % /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*ioG %*********************************************************** /CoeffprocL*ioG { %BEG procedure CoeffprocL*ioG % The CoeffprocL*ioG proced. 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| |xD| % | A2 B2 C2 D2 | |BlackCoeff| = |yD| % | A3 B3 C3 D3 | |Col1Coeff | |zD| % | A4 B4 C4 D4 | |Col2Coeff | |tD| % A B = C % /tD exch def /zD exch def /yD exch def /xD 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*ioG /den det def % determine white coefficient /temp1 A1 def /temp2 A2 def /temp3 A3 def /temp4 A4 def /A1 xD def /A2 yD def /A3 zD def /A4 tD def detprocL*ioG /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 xD def /B2 yD def /B3 zD def /B4 tD def detprocL*ioG /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 xD def /C2 yD def /C3 zD def /C4 tD def detprocL*ioG /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 xD def /D2 yD def /D3 zD def /D4 tD def detprocL*ioG /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*ioG %*********************************************************** /cmyolv*io_to_LAB*ioG { %BEG Procedure transfer cmyolv*io_to_LAB*ioG %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*ioG %*************************************************************** /LAB*io_to_cmyolv*ioG {%BEG Procedure LAB*io_to_cmyolv*ioG /B*F exch def /A*F exch def /L*F exch def /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*ioG /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*ioG /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*ioG /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*ioG /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*ioG /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*ioG /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*ioG %*************************************************************** /ouTab*ioG {%BEG Procedure ouTab*ioG /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*ioG /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*ioG 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*ioG %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*ioG %*************************************************************** /ouCal*ioG {%BEG Procedure ouCal*ioG /v* exch def /l* exch def /o* exch 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*ioG /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*ioG L*F A*F B*F LAB*io_to_cmyolv*ioG %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*ioG %*************************************************************** /proc_LAB*Fa_LAB*MaNTABl_olvi3*cmyn3*Ma*ioG { %BEG procedure proc_LAB*Fa_LAB*MaNTABl_olvi3*cmyn3*Ma*ioG %only for calculation without hue tables %input LAB*Fa %input LAB*a (6 adapted colours OYLCVM) %input nLAB*s0 (colour Black 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 procedure proc_LAB*Fa_LAB*MaNTABl_olvi3*cmyn3*Ma*ioG %******************************************************************* from De990-7N04.PS /ColSep*ioG {%BEG Procedure ColSep*ioG ColourSeparation for NP-file 20080601 /setgc {pop pop pop 1 exch sub sggray} bind def /setgm {pop pop 1 exch sub sggray pop} bind def /setgy {pop 1 exch sub sggray pop pop} bind def /setgn {1 exch sub sggray pop pop pop} bind def /setgf {/ncolor exch def /ycolor exch def /mcolor exch def /ccolor exch def 0 ccolor eq 0 mcolor eq and 0 ycolor eq and {1 ncolor sub sggray} {1 ccolor sub 0.71 mul 1 mcolor sub 0.22 mul add 1 ycolor sub 0.07 mul add sggray} ifelse } bind def /setcmykcolorf { sgcmykcolor} bind def %fuer PSL1/2-Farbgeraet /setcmyknew { %Ersatz setcolornew durch setcmykcolor1 ausz 1 eq {setgc} if %C ausz 2 eq {setgm} if %M ausz 3 eq {setgy} if %Y ausz 4 eq {pop pop pop /ccolor exch def ccolor 0 0 0 /setcmykcolor where %Abfrage Farb-/SW-Geraet {pop setcmykcolorf} %PSL1/2-Farb-Geraet {setgc} %PSL1-SW-Geraet ifelse } if %Cbunt ausz 5 eq {pop pop /mcolor exch def pop 0 mcolor 0 0 /setcmykcolor where %Abfrage Farb-/SW-Geraet {pop setcmykcolorf} %PSL1/2-Farb-Geraet {setgm} %PSL1-SW-Geraet ifelse } if %Mbunt ausz 6 eq {pop /ycolor exch def pop pop 0 0 ycolor 0 /setcmykcolor where %Abfrage Farb-/SW-Geraet {pop setcmykcolorf} %PSL1/2-Farb-Geraet {setgy} %PSL1-SW-Geraet ifelse } if %Ybunt ausz 7 eq {setgn} if %N ausz 8 ge { /setcmykcolor where %Abfrage Farb-/SW-Geraet {pop setcmykcolorf} %PSL1/2-Farb-Geraet {setgf} %PSL1-SW-Geraet ifelse } if %bei ausz=8: Farb- oder SW-Ausdruck je nach Drucker } bind def %********************************************************************* /rgb_LAB_Interp_olv*ioG {%BEG Procedure rgb_LAB_Interp_olv*ioG zm60'LABINPLT.PS %assumes input of rgb, LAB_Interpolation and calculation of olv* %split in chromatic and achromatic colours %two special cases black N and white W /b exch def /g exch def /r exch def r g sub abs 0.001 le r b sub abs 0.001 le and {%achromatic case /Case 0 def r abs 0.001 le g abs 0.001 le and b abs 0.001 le and {%N special case /Case 1 def } if %N special case 1 r sub abs 0.001 le 1 g sub abs 0.001 le and 1 b sub abs 0.001 le and {%W special case /Case 2 def } if }%achromatic {%chromatic /Case 3 def } ifelse %chromatic Case 1 eq {%Black N /o* 0 def /l* 0 def /v* 0 def } if %N special case Case 2 eq {%White W /o* 1 def /l* 1 def /v* 1 def } if %W special case Case 0 eq Case 3 eq or {%chromatic or gray r g b ouCal*ioG L*F A*F B*F Lab2RGBinterpolation /v* exch def /l* exch def /o* exch def } if %chromatic or gray } bind def %END Procedure rgb_LAB_Interp_olv*ioG 'zm60'LABINPLT.PS %********************************************************************* /trans_rgb3*_cmyn4*ioG {%BEG Procedure trans_rgb3*_cmyn4*ioG %assumes input of olv* o* 0 le {/o* 0.0000 def} if l* 0 le {/l* 0.0000 def} if v* 0 le {/v* 0.0000 def} if o* 1 ge {/o* 1.0000 def} if l* 1 ge {/l* 1.0000 def} if v* 1 ge {/v* 1.0000 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 {/n*n 1 v* sub def /w*w o* 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 {/n*n 1 v* sub def /w*w l* 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 {/n*n 1 o* sub def /w*w l* 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 {/n*n 1 o* sub def /w*w v* 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 {/n*n 1 l* sub def /w*w v* 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 {/n*n 1 l* sub def /w*w o* 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 {/n*n 0 def /w*w 1 def %W } 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 {/n*n 1 def /w*w 0 def %N } if %Achromatic o* l* sub abs 0.001 le l* v* sub abs 0.001 le and %Achromatic special case {/n*n 1 o* sub def /w*w o* def %grey } if /lab*wFa w*w def /lab*nFa n*n def /c3*Fa 1 o* sub def /m3*Fa 1 l* sub def /y3*Fa 1 v* sub def /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 trans_rgb3*_cmyn4*ioG %******************************************************************* /trans_rgb3*_cmyn5*ioG {%BEG Procedure trans_rgb3*_cmyn5*ioG %assumes input of olv*, 'zm60'CMYN559LT.PS o* 0 le {/o* 0.0000 def} if l* 0 le {/l* 0.0000 def} if v* 0 le {/v* 0.0000 def} if o* 1 ge {/o* 1.0000 def} if l* 1 ge {/l* 1.0000 def} if v* 1 ge {/v* 1.0000 def} if /ok* o* def /lk* l* def /vk* v* def /tdel 0 def vk* lk* ge lk* ok* ge and tdel 0 eq and % v* >= l* >= o* equal y* <= m* <= c* %sector C-V of C-M, C>=M: i*p=0 {/n*n 1 vk* sub def /w*w ok* def /m*w lk* def /tdel 1 def /isec 3 def } if % v* >= l* >= o* vk* ok* ge ok* lk* ge and tdel 0 eq and % v* >= o* >= l* equal y* <= c* <= m* %sector V-M of C-M, M>=C: i*p=1 {/n*n 1 vk* sub def /w*w lk* def /m*w ok* def /tdel 1 def /isec 4 def } if % v* >= o* >= l* ok* vk* ge vk* lk* ge and tdel 0 eq and % o* >= v* >= l* equal c* <= y* <= m* %sector M-O of M-Y, M>=Y: i*p=2 {/n*n 1 ok* sub def /w*w lk* def /m*w vk* def /tdel 1 def /isec 5 def } if % o* >= v* >= l* ok* lk* ge lk* vk* ge and tdel 0 eq and % o* >= l* >= v* equal c* <= m* <= y* %sector O-Y of M-Y, Y>=M: i*p=3 {/n*n 1 ok* sub def /w*w vk* def /m*w lk* def /tdel 1 def /isec 0 def } if % o* >= l* >= v* lk* ok* ge ok* vk* ge and tdel 0 eq and % l* >= o* >= v* equal m* <= c* <= y* %sector Y-L of Y-C, Y>=C: i*p=4 {/n*n 1 lk* sub def /w*w vk* def /m*w ok* def /tdel 1 def /isec 1 def } if % l* >= o* >= v* lk* vk* ge vk* ok* ge and tdel 0 eq and % l* >= v* >= o* equal m* <= y* <= c* %sector L-C of Y-C, C>=Y: i*p=5 {/n*n 1 lk* sub def /w*w ok* def /m*w vk* def /tdel 1 def /isec 2 def } if % l* >= v* >= o* %achromatic %W: ok*, lk*, vk* = 1.00 1.0 ok* sub abs 0.001 le 1.0 lk* sub abs 0.001 le and 1.0 vk* sub abs 0.001 le and %W special case {/n*n 0 def /w*w 1 def /m*w 1 def %W /isec 6 def } if %N: ok*, lk*, vk* <= 0.001 ok* abs 0.001 le lk* abs 0.001 le and vk* abs 0.001 le and %N special case {/n*n 1 def /w*w 0 def /m*w 0 def %N /isec 6 def } if %Achromatic ok* lk* sub abs 0.001 le lk* vk* sub abs 0.001 le and %Achromatic special case {/n*n 1 ok* sub def /w*w ok* def /m*w ok* def %grey /isec 6 def } if /lab*wFa w*w def /lab*nFa n*n def /lab*cFa 1 n*n sub w*w sub def /argb 1 lab*nFa sub def /brgb m*w def /crgb lab*wFa def /c* lab*cFa def /lab*tFa 1 lab*nFa sub lab*cFa 0.5 mul sub def isec 6 eq {%BEG isec=6 achromatic /o*1 1 def /l*1 1 def /v*1 1 def }%END isec=6 achromatic {%BEG isec#6 chromatic /o*1 ok* argb 0.000001 add div def /l*1 lk* argb 0.000001 add div def /v*1 vk* argb 0.000001 add div def } ifelse %END isec#6 /c3*Fa 1 o*1 sub def /m3*Fa 1 l*1 sub def /y3*Fa 1 v*1 sub def /c4*Fa c3*Fa def %at least one of cmy will be cero /m4*Fa m3*Fa def /y4*Fa y3*Fa 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 trans_rgb3*_cmyn5*ioG 'zm60'CMYN559LT.PS %********************************************************************* /trans_rgb3*_cmyn6*ioG {%BEG Procedure trans_rgb3*_cmyn6*ioG %assumes input of olv*, 'zm60'CMYN559LT.PS o* 0 le {/o* 0.0000 def} if l* 0 le {/l* 0.0000 def} if v* 0 le {/v* 0.0000 def} if o* 1 ge {/o* 1.0000 def} if l* 1 ge {/l* 1.0000 def} if v* 1 ge {/v* 1.0000 def} if /ok* o* def /lk* l* def /vk* v* def /tdel 0 def vk* lk* ge lk* ok* ge and tdel 0 eq and % v* >= l* >= o* equal y* <= m* <= c* %sector C-V of C-M, C>=M: i*p=0 {/n*n 1 vk* sub def /w*w ok* def /m*w lk* def /tdel 1 def /isec 3 def } if % v* >= l* >= o* vk* ok* ge ok* lk* ge and tdel 0 eq and % v* >= o* >= l* equal y* <= c* <= m* %sector V-M of C-M, M>=C: i*p=1 {/n*n 1 vk* sub def /w*w lk* def /m*w ok* def /tdel 1 def /isec 4 def } if % v* >= o* >= l* ok* vk* ge vk* lk* ge and tdel 0 eq and % o* >= v* >= l* equal c* <= y* <= m* %sector M-O of M-Y, M>=Y: i*p=2 {/n*n 1 ok* sub def /w*w lk* def /m*w vk* def /tdel 1 def /isec 5 def } if % o* >= v* >= l* ok* lk* ge lk* vk* ge and tdel 0 eq and % o* >= l* >= v* equal c* <= m* <= y* %sector O-Y of M-Y, Y>=M: i*p=3 {/n*n 1 ok* sub def /w*w vk* def /m*w lk* def /tdel 1 def /isec 0 def } if % o* >= l* >= v* lk* ok* ge ok* vk* ge and tdel 0 eq and % l* >= o* >= v* equal m* <= c* <= y* %sector Y-L of Y-C, Y>=C: i*p=4 {/n*n 1 lk* sub def /w*w vk* def /m*w ok* def /tdel 1 def /isec 1 def } if % l* >= o* >= v* lk* vk* ge vk* ok* ge and tdel 0 eq and % l* >= v* >= o* equal m* <= y* <= c* %sector L-C of Y-C, C>=Y: i*p=5 {/n*n 1 lk* sub def /w*w ok* def /m*w vk* def /tdel 1 def /isec 2 def } if % l* >= v* >= o* %achromatic %W: ok*, lk*, vk* = 1.00 1.0 ok* sub abs 0.001 le 1.0 lk* sub abs 0.001 le and 1.0 vk* sub abs 0.001 le and %W special case {/n*n 0 def /w*w 1 def /m*w 1 def %W /isec 6 def } if %N: ok*, lk*, vk* <= 0.001 ok* abs 0.001 le lk* abs 0.001 le and vk* abs 0.001 le and %N special case {/n*n 1 def /w*w 0 def /m*w 0 def %N /isec 6 def } if %Achromatic ok* lk* sub abs 0.001 le lk* vk* sub abs 0.001 le and %Achromatic special case {/n*n 1 ok* sub def /w*w ok* def /m*w ok* def %grey /isec 6 def } if /lab*wFa w*w def /lab*nFa n*n def /lab*cFa 1 n*n sub w*w sub def /argb 1 lab*nFa sub def /brgb m*w def /crgb lab*wFa def /c* lab*cFa def /lab*tFa 1 lab*nFa sub lab*cFa 0.5 mul sub def isec 6 eq {%BEG isec=6 achromatic /o*1 1 def /l*1 1 def /v*1 1 def }%END isec=6 achromatic {%BEG isec#6 chromatic /o*1 ok* argb 0.000001 add div def /l*1 lk* argb 0.000001 add div def /v*1 vk* argb 0.000001 add div def } ifelse %END isec#6 /c3*Fa 1 o*1 sub def /m3*Fa 1 l*1 sub def /y3*Fa 1 v*1 sub def /c41*Fa c3*Fa def %at least one of cmy will be cero /m41*Fa m3*Fa def /y41*Fa y3*Fa def /n4*Fa lab*nFa def %change by deepness difference delta d* = c*S1 - c*S2 %use lab*cFa, lab*tFa for correction %equations of three lines %t* = 1 - 0.5 c* %t* = [t* / c*] c* %t* = [(t* + 0,18) / c*] c* - 0,18 %cut point S1 for nt=0,18: %c*s1 = 1 /[ t*F / c*F + 0,5 ] %cut point S2 for n=0,18: %c*s1 = (1 + nt) / [ (t*F + nt) / c*F + 0,5 ] %special case lab*cFa=0 and n=0,18 /nt 0.18 def lab*cFa 0 eq { %lab*cFa=0,#0 /c*S1 0 def /c*S2 0 def } %lab*cFa=0 { %lab*cFa#0 /c*S1 1 lab*tFa lab*cFa div 0.5 add div def /c*S2 1 nt add lab*tFa nt add lab*cFa div 0.5 add div def } ifelse %lab*cFa=0,#0 /c4*Fa c41*Fa c41*Fa c*S1 c*S2 sub mul sub def /m4*Fa m41*Fa m41*Fa c*S1 c*S2 sub mul sub def /y4*Fa y41*Fa y41*Fa c*S1 c*S2 sub mul sub 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 trans_rgb3*_cmyn6*ioG 'zm60'CMYN559LT.PS %********************************************************************* %BEG 'zm60'COLM57_590415LT.PS 20080601 ColSpx 0 eq {%ColSpx=0 xcharti 1 ge {%xcharti>=1 'zm60'COLM57LT.PS cmy0* 20080601 colorm 0 eq {%BEG colorm=0 /setrgbcolor {/v* exch def /l* exch def /o* exch def %standard cmy0* for input /c4*Fa 1 o* sub def /m4*Fa 1 l* sub def /y4*Fa 1 v* sub def /n4*Fa 0 def c4*Fa m4*Fa y4*Fa n4*Fa setcmyknew } def /setgray {dup dup /v* exch def /l* exch def /o* exch def %standard cmy0* for input /c4*Fa 1 o* sub def /m4*Fa 1 l* sub def /y4*Fa 1 v* sub def /n4*Fa 0 def c4*Fa m4*Fa y4*Fa n4*Fa setcmyknew } def /setcmykcolor {/n*n exch def /y*n exch def /m*n exch def /c*n exch def %standard cmy0* for input n*n 0 eq {/o* 1 c*n sub def /l* 1 m*n sub def /v* 1 y*n sub def /i* 0 def } {/o* 1 n*n sub def /l* 1 n*n sub def /v* 1 n*n sub def /i* 0 def } ifelse /c4*Fa 1 o* sub def /m4*Fa 1 l* sub def /y4*Fa 1 v* sub def /n4*Fa 0 def c4*Fa m4*Fa y4*Fa n4*Fa setcmyknew } def }%END colorm=0 {%BEG colorm=1 /setrgbcolor {/b exch def /g exch def /r exch def /IMODE 0 def r g b rgb_LAB_Interp_olv*ioG /c4*Fa 1 o* sub def /m4*Fa 1 l* sub def /y4*Fa 1 v* sub def /n4*Fa 0 def c4*Fa m4*Fa y4*Fa n4*Fa setcmyknew } def /setgray {/w*w exch def /r w*w def /g w*w def /b w*w def /IMODE 0 def r g b rgb_LAB_Interp_olv*ioG /c4*Fa 1 o* sub def /m4*Fa 1 l* sub def /y4*Fa 1 v* sub def /n4*Fa 0 def c4*Fa m4*Fa y4*Fa n4*Fa setcmyknew } def /setcmykcolor {/n*n exch def /y*n exch def /m*n exch def /c*n exch def %standard cmy0* or 000n* for input n*n 0 eq {/r 1 c*n sub def /g 1 m*n sub def /b 1 y*n sub def} {/r 1 n*n sub def /g 1 n*n sub def /b 1 n*n sub def} ifelse /IMODE 0 def r g b rgb_LAB_Interp_olv*ioG /c4*Fa 1 o* sub def /m4*Fa 1 l* sub def /y4*Fa 1 v* sub def /n4*Fa 0 def c4*Fa m4*Fa y4*Fa n4*Fa setcmyknew } def } ifelse %END colorm=1 }%END %xcharti>=1 {%BEG %xcharti=0 /setrgbcolor {/v* exch def /l* exch def /o* exch def /c4*Fa 1 o* sub def /m4*Fa 1 l* sub def /y4*Fa 1 v* sub def /n4*Fa 0 def o* l* v* sgrgbcolor } def /setgray {dup dup /v* exch def /l* exch def /o* exch def /c4*Fa 1 o* sub def /m4*Fa 1 l* sub def /y4*Fa 1 v* sub def /n4*Fa 0 def o* sggray } def /setcmykcolor {/n*n exch def /y*n exch def /m*n exch def /c*n exch def n*n 0 eq {/o* 1 c*n sub def /l* 1 m*n sub def /v* 1 y*n sub def /n4*Fa 0 def} {/o* 1 def /l* 1 def /v* 1 def /n4*Fa n*n def} ifelse /c4*Fa 1 o* sub def /m4*Fa 1 l* sub def /y4*Fa 1 v* sub def c4*Fa m4*Fa y4*Fa n4*Fa sgcmykcolor } def } ifelse %END %xcharti=0 'zm60'COLM57LT.PS cmy0* 20080601 } if %ColSpx=0 %********************************************************************* ColSpx 1 eq {%ColSpx=1 xcharti 1 ge {%xcharti>=1 'zm60'COLM559LT.PS cmyn6* 20080201 colorm 0 eq {%BEG colorm=0 /olvtrans 1 def %changes olv* to olvk* /setrgbcolor {/v* exch def /l* exch def /o* exch def %needs olv* for input trans_rgb3*_cmyn6*ioG %produces cmyn6*ioG as output c4*Fa m4*Fa y4*Fa n4*Fa setcmyknew } def /setgray {/w*w exch def /v* w*w def /l* w*w def /o* w*w def %needs olv* for input trans_rgb3*_cmyn6*ioG %produces cmyn6*ioG as output c4*Fa m4*Fa y4*Fa n4*Fa setcmyknew } def /setcmykcolor {/n*n exch def /y*n exch def /m*n exch def /c*n exch def %standard cmy0* or 000n* for input n*n 0 eq {/o* 1 c*n sub def /l* 1 m*n sub def /v* 1 y*n sub def} {/o* 1 n*n sub def /l* 1 n*n sub def /v* 1 n*n sub def} ifelse %needs olv* for input trans_rgb3*_cmyn6*ioG %produces cmyn6*ioG as output c4*Fa m4*Fa y4*Fa n4*Fa setcmyknew } def }%END colorm=0 {%BEG colorm=1 /olvtrans 0 def %no change of olv* /setrgbcolor {/b exch def /g exch def /r exch def /IMODE 0 def r g b rgb_LAB_Interp_olv*ioG %needs olv* for input trans_rgb3*_cmyn6*ioG %produces cmyn6*ioG as output c4*Fa m4*Fa y4*Fa n4*Fa setcmyknew } def /setgray {/w*w exch def /r w*w def /g w*w def /b w*w def /IMODE 0 def r g b rgb_LAB_Interp_olv*ioG %needs olv* for input trans_rgb3*_cmyn6*ioG %produces cmyn6*ioG as output c4*Fa m4*Fa y4*Fa n4*Fa setcmyknew } def /setcmykcolor {/n*n exch def /y*n exch def /m*n exch def /c*n exch def %standard cmy0* or 000n* for input n*n 0 eq {/r 1 c*n sub def /g 1 m*n sub def /b 1 y*n sub def} {/r 1 n*n sub def /g 1 n*n sub def /b 1 n*n sub def} ifelse /IMODE 0 def r g b rgb_LAB_Interp_olv*ioG %needs olv* for input trans_rgb3*_cmyn6*ioG %produces cmyn6*ioG as output c4*Fa m4*Fa y4*Fa n4*Fa setcmyknew } def } ifelse %END colorm=1 }%END %xcharti>=0 {%BEG %xcharti=0 /setrgbcolor {/v* exch def /l* exch def /o* exch def /c4*Fa 1 o* sub def /m4*Fa 1 l* sub def /y4*Fa 1 v* sub def /n4*Fa 0 def o* l* v* sgrgbcolor } def /setgray {dup dup /v* exch def /l* exch def /o* exch def /c4*Fa 1 o* sub def /m4*Fa 1 l* sub def /y4*Fa 1 v* sub def /n4*Fa 0 def o* sggray } def /setcmykcolor {/n*n exch def /y*n exch def /m*n exch def /c*n exch def n*n 0 eq {/o* 1 c*n sub def /l* 1 m*n sub def /v* 1 y*n sub def /n4*Fa 0 def} {/o* 1 def /l* 1 def /v* 1 def /n4*Fa n*n def} ifelse /c4*Fa 1 o* sub def /m4*Fa 1 l* sub def /y4*Fa 1 v* sub def c4*Fa m4*Fa y4*Fa n4*Fa sgcmykcolor } def } ifelse %END %xcharti=0 'zm60'COLM559LT.PS cmyn6* 20080201 } if %ColSpx=1 %*************************************************************** ColSpx 2 eq {%ColSpx=2 xcharti 1 ge {%xcharti>=1 'zm60'COLM58LT.PS cmyn4* 20080601 colorm 0 eq {%BEG colorm=0 /setrgbcolor {/v* exch def /l* exch def /o* exch def %needs olv* for input trans_rgb3*_cmyn4*ioG %produces cmyn4*ioG as output c4*Fa m4*Fa y4*Fa n4*Fa setcmyknew } def /setgray {/w*w exch def /v* w*w def /l* w*w def /o* w*w def %needs olv* for input trans_rgb3*_cmyn4*ioG %produces cmyn4*ioG as output c4*Fa m4*Fa y4*Fa n4*Fa setcmyknew } def /setcmykcolor {/n*n exch def /y*n exch def /m*n exch def /c*n exch def %standard cmy0* or 000n* for input n*n 0 eq {/o* 1 c*n sub def /l* 1 m*n sub def /v* 1 y*n sub def} {/o* 1 n*n sub def /l* 1 n*n sub def /v* 1 n*n sub def} ifelse %needs olv* for input trans_rgb3*_cmyn4*ioG %produces cmyn4*ioG as output c4*Fa m4*Fa y4*Fa n4*Fa setcmyknew } def }%END colorm=0 {%BEG colorm=1 /setrgbcolor {/b exch def /g exch def /r exch def /IMODE 0 def r g b rgb_LAB_Interp_olv*ioG %needs olv* for input trans_rgb3*_cmyn4*ioG %produces cmyn4*ioG as output c4*Fa m4*Fa y4*Fa n4*Fa setcmyknew } def /setgray {/w*w exch def /r w*w def /g w*w def /b w*w def /IMODE 0 def r g b rgb_LAB_Interp_olv*ioG %needs olv* for input trans_rgb3*_cmyn4*ioG %produces cmyn4*ioG as output c4*Fa m4*Fa y4*Fa n4*Fa setcmyknew } def /setcmykcolor {/n*n exch def /y*n exch def /m*n exch def /c*n exch def %standard cmy0* or 000n* for input n*n 0 eq {/r 1 c*n sub def /g 1 m*n sub def /b 1 y*n sub def} {/r 1 n*n sub def /g 1 n*n sub def /b 1 n*n sub def} ifelse /IMODE 0 def r g b rgb_LAB_Interp_olv*ioG %needs olv* for input trans_rgb3*_cmyn4*ioG %produces cmyn4*ioG as output c4*Fa m4*Fa y4*Fa n4*Fa setcmyknew } def } ifelse %END colorm=1 }%END %xcharti>=0 {%BEG %xcharti=0 /setrgbcolor {/v* exch def /l* exch def /o* exch def /c4*Fa 1 o* sub def /m4*Fa 1 l* sub def /y4*Fa 1 v* sub def /n4*Fa 0 def o* l* v* sgrgbcolor } def /setgray {dup dup /v* exch def /l* exch def /o* exch def /c4*Fa 1 o* sub def /m4*Fa 1 l* sub def /y4*Fa 1 v* sub def /n4*Fa 0 def o* sggray } def /setcmykcolor {/n*n exch def /y*n exch def /m*n exch def /c*n exch def n*n 0 eq {/o* 1 c*n sub def /l* 1 m*n sub def /v* 1 y*n sub def /n4*Fa 0 def} {/o* 1 def /l* 1 def /v* 1 def /n4*Fa n*n def} ifelse /c4*Fa 1 o* sub def /m4*Fa 1 l* sub def /y4*Fa 1 v* sub def c4*Fa m4*Fa y4*Fa n4*Fa sgcmykcolor } def } ifelse %END %xcharti=0 'zm60'COLM58LT.PS cmyn4* 20080601 } if %ColSpx=2 %************************************************************* ColSpx 3 eq {%ColSpx=3 xcharti 1 ge {%xcharti>=1 'zm60'COLM559LT.PS cmyn5* 20080601 colorm 0 eq {%BEG colorm=0 /setrgbcolor {/v* exch def /l* exch def /o* exch def %needs olv* for input trans_rgb3*_cmyn5*ioG %produces cmyn5*ioG as output c4*Fa m4*Fa y4*Fa n4*Fa setcmyknew } def /setgray {/w*w exch def /v* w*w def /l* w*w def /o* w*w def %needs olv* for input trans_rgb3*_cmyn5*ioG %produces cmyn5*ioG as output c4*Fa m4*Fa y4*Fa n4*Fa setcmyknew } def /setcmykcolor {/n*n exch def /y*n exch def /m*n exch def /c*n exch def %standard cmy0* or 000n* for input n*n 0 eq {/o* 1 c*n sub def /l* 1 m*n sub def /v* 1 y*n sub def} {/o* 1 n*n sub def /l* 1 n*n sub def /v* 1 n*n sub def} ifelse %needs olv* for input trans_rgb3*_cmyn5*ioG %produces cmyn5*ioG as output c4*Fa m4*Fa y4*Fa n4*Fa setcmyknew } def }%END colorm=0 {%BEG colorm=1 /olvtrans 0 def %no change of olv* /setrgbcolor {/b exch def /g exch def /r exch def /IMODE 0 def r g b rgb_LAB_Interp_olv*ioG %needs olv* for input trans_rgb3*_cmyn5*ioG %produces cmyn5*ioG as output c4*Fa m4*Fa y4*Fa n4*Fa setcmyknew } def /setgray {/w*w exch def /r w*w def /g w*w def /b w*w def /IMODE 0 def r g b rgb_LAB_Interp_olv*ioG %needs olv* for input trans_rgb3*_cmyn5*ioG %produces cmyn5*ioG as output c4*Fa m4*Fa y4*Fa n4*Fa setcmyknew } def /setcmykcolor {/n*n exch def /y*n exch def /m*n exch def /c*n exch def %standard cmy0* or 000n* for input n*n 0 eq {/r 1 c*n sub def /g 1 m*n sub def /b 1 y*n sub def} {/r 1 n*n sub def /g 1 n*n sub def /b 1 n*n sub def} ifelse /IMODE 0 def r g b rgb_LAB_Interp_olv*ioG %needs olv* for input trans_rgb3*_cmyn5*ioG %produces cmyn5*ioG as output c4*Fa m4*Fa y4*Fa n4*Fa setcmyknew } def } ifelse %END colorm=1 }%END %xcharti>=0 {%BEG %xcharti=0 /setrgbcolor {/v* exch def /l* exch def /o* exch def /c4*Fa 1 o* sub def /m4*Fa 1 l* sub def /y4*Fa 1 v* sub def /n4*Fa 0 def o* l* v* sgrgbcolor } def /setgray {dup dup /v* exch def /l* exch def /o* exch def /c4*Fa 1 o* sub def /m4*Fa 1 l* sub def /y4*Fa 1 v* sub def /n4*Fa 0 def o* sggray } def /setcmykcolor {/n*n exch def /y*n exch def /m*n exch def /c*n exch def n*n 0 eq {/o* 1 c*n sub def /l* 1 m*n sub def /v* 1 y*n sub def /n4*Fa 0 def} {/o* 1 def /l* 1 def /v* 1 def /n4*Fa n*n def} ifelse /c4*Fa 1 o* sub def /m4*Fa 1 l* sub def /y4*Fa 1 v* sub def c4*Fa m4*Fa y4*Fa n4*Fa sgcmykcolor } def } ifelse %END %xcharti=0 'zm60'COLM559LT.PS cmyn5* 20080601 } if %ColSpx=3 } bind def %BEG Procedure ColSep*ioG ColourSeparation for NP-file 20080601 %************************************************************* /lab*hFa_to_lab*eFa_lab*uFa*ioG { %BEG Procedure lab*hFa_to_lab*eFa_lab*uFa*ioG %transfer from lab*hFa to lab*eFa to lab*uFa %360 steps used in both cases for the range 0 <= lab*(hM/eM) <= 1 %main equations %col_ange = i*pae 90 mul + alphae 90 mul %alphae = [col_angh - LAB*Hx(n)]/[LAB*Hx(n+1) - LAB*Hx(n)] %col_angh = alphae [LAB*Hx(n+1) - LAB*Hx(n)] + LAB*Hx(n /col_angh lab*hFa 360 mul def /IEND 0 def col_angh 0 ge col_angh LAB*Hx 8 get lt and {/col_angh col_angh 360 add def} if 0 1 3 {/je exch def /je8 je 8 add def %je=0,3 col_angh LAB*Hx je8 get ge col_angh LAB*Hx je8 1 add get lt and IEND 0 eq and {/alphae col_angh LAB*Hx je8 get sub LAB*Hx je8 1 add get LAB*Hx je8 get sub div def je 0 eq {/col_ange 0.00 alphae add 90 mul def /u*1 (r) def /u*2 (j) def} if je 1 eq {/col_ange 1.00 alphae add 90 mul def /u*1 (j) def /u*2 (g) def} if je 2 eq {/col_ange 2.00 alphae add 90 mul def /u*1 (g) def /u*2 (b) def} if je 3 eq {/col_ange 3.00 alphae add 90 mul def /u*1 (b) def /u*2 (r) def} if /u*zi alphae 99 mul cvi def /IEND 1 def exit } if } for %je=0,3 IEND 0 eq {TBG 500 1000 moveto (IEND=0 Failure lab*hM_to_lab*eM) show} if /lab*eFa col_ange 360 div def } bind def %END Procedure lab*hFa_to_lab*eFa_lab*uFa*ioG %***************************************************************************** %END /Eg93/10L/OUTLIN1X.PS, identical for NP-(*ioG), FP-files (*ioG) 20080701 %***************************************************************************** /CFilenameS1g %START output of step S1g (www.ps.bam.de/Eg93/10L/L93g00N) def %Link file name for data /CDateS1g (2006-01-01, Name) def %Date of calculation, Tester /CDeviceS1g (unknown ) def %Device name /CMeasS1g (Eg93/10L/L93g00N) def %File name measured in step S1g %change scount2g from 2 to 10 for 10 series %change pcount2g from 8 to 240 for 240 pages of each series /scount1g 1 def /scount2g 1 def /scountg 1 def /pcount1g 1 def /pcount2g 1 def /pcountg 1 def %start=1, one more 9+1! /xchart1g 0 def /xchart2g 9 def /xchartg 0 def /BeginEPSF { % def % Prepare for EPS file /b4_Inc_state save def % Save state for cleanup /dict_count countdictstack def /op_count count 1 sub def % Count objects on op stack userdict begin % Make userdict current dict /showpage {} def 0 setgray 0 setlinecap 1 setlinewidth 0 setlinejoin 10 setmiterlimit [] 0 setdash newpath /languagelevel where % If level not equal to 1 then {pop languagelevel where % If level not equal to 1 then 1 ne {false setstrokeadjust false setoverprint } if } if } bind def /EndEPSF { % def count op_count sub {pop} repeat countdictstack dict_count sub {end} repeat % Clean up dict stack b4_Inc_state restore } bind def /FS {findfont exch scalefont setfont} bind def /MM {72 25.4 div mul} def /str {8 string } bind def /languagelevel where {pop languagelevel} {1} ifelse /PSL12 exch def /dictende {counttomark 2 idiv dup dict begin {def} repeat pop currentdict end} bind def % !AUSTAUSCH Times-Roman -> Times-Roman-ISOLatin1=Times-I /Times-Roman findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /Times-ISOL1 exch definefont pop /Times-Italic findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /TimesI-ISOL1 exch definefont pop /Times-Bold findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /TimesB-ISOL1 exch definefont pop /Times-BoldItalic findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /TimesBI-ISOL1 exch definefont pop /TK {250 /Times-ISOL1 FS} bind def /TM {300 /Times-ISOL1 FS} bind def /TG {350 /Times-ISOL1 FS} bind def /TIK {250 /TimesI-ISOL1 FS} bind def /TIM {300 /TimesI-ISOL1 FS} bind def /TIG {350 /TimesI-ISOL1 FS} bind def /TBK {250 /TimesB-ISOL1 FS} bind def /TBM {300 /TimesB-ISOL1 FS} bind def /TBG {350 /TimesB-ISOL1 FS} bind def /TBIK {250 /TimesBI-ISOL1 FS} bind def /TBIM {300 /TimesBI-ISOL1 FS} bind def /TBIG {350 /TimesBI-ISOL1 FS} bind def %ANFA CMYKDEF %CMYKDEA0 (A0=Standard-Drucker-CMYKDEF) 15.3.97 /tzac [1.000 0.933 0.867 0.800 0.733 0.667 0.600 0.533 0.467 0.400 0.333 0.267 0.200 0.132 0.067 0.000 1.000 0.750 0.500 0.250 0.000] def /tzam [1.000 0.933 0.867 0.800 0.733 0.667 0.600 0.533 0.467 0.400 0.333 0.267 0.200 0.132 0.067 0.000 1.000 0.750 0.500 0.250 0.000] def /tzay [1.000 0.933 0.867 0.800 0.733 0.667 0.600 0.533 0.467 0.400 0.333 0.267 0.200 0.132 0.067 0.000 1.000 0.750 0.500 0.250 0.000] def /tzan [1.000 0.933 0.867 0.800 0.733 0.667 0.600 0.533 0.467 0.400 0.333 0.267 0.200 0.132 0.067 0.000 1.000 0.750 0.500 0.250 0.000] def /tza0 [0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000] def /tza1 [1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000] def %ENDE CMYKD /rec %x, y width heigth {/heigth exch def /width exch def moveto width 0 rlineto 0 heigth rlineto width neg 0 rlineto closepath } bind def /colrecfiLAB* %x y width heigth LAB* { setcolor rec fill} bind def /colrecstLAB* %x y width heigth LAB* { setcolor rec stroke} bind def /colrecficmyn* %x y width heigth cmy0* or 000n* { setcmykcolor rec fill} bind def /colrecstcmyn* %x y width heigth cmy0* or 000n* { setcmykcolor rec stroke} bind def /colrecfiw* %x y width heigth w* { setgray rec fill} bind def /colrecstw* %x y width heigth w* { setgray rec stroke} bind def /colrecfiolv* %x y width heigth olv* { setrgbcolor rec fill} bind def /colrecstolv* %x y width heigth olv* { setrgbcolor rec stroke} bind def /tzocmy0* {0.0 1.0 1.0 0.0} bind def %Reproduction colours /tzlcmy0* {1.0 0.0 1.0 0.0} bind def %cmyn* setcmykcolor /tzvcmy0* {1.0 1.0 0.0 0.0} bind def /tzccmy0* {1.0 0.0 0.0 0.0} bind def /tzmcmy0* {0.0 1.0 0.0 0.0} bind def /tzycmy0* {0.0 0.0 1.0 0.0} bind def /tzoolv* {1.0 0.0 0.0} bind def %Reproduction colours /tzlolv* {0.0 1.0 0.0} bind def %olv* setrgbcolor /tzvolv* {0.0 0.0 1.0} bind def /tzcolv* {0.0 1.0 1.0} bind def /tzmolv* {1.0 0.0 1.0} bind def /tzyolv* {1.0 1.0 0.0} bind def /tzoLAB* [53.34 72.46 50.66] def %Reproduction colours /tzlLAB* [84.93 -79.83 74.80] def %LAB* setcolor /tzvLAB* [32.20 24.88 -37.89] def /tzcLAB* [88.10 -44.88 -13.36] def /tzmLAB* [59.66 90.32 -19.65] def /tzyLAB* [93.76 -20.24 85.93] def /tzncmy0* {1.00 1.00 1.00 0.00} bind def %grey series /tzdcmy0* {0.75 0.75 0.75 0.00} bind def %cmy0* setcmykcolor /tzzcmy0* {0.50 0.50 0.50 0.00} bind def /tzhcmy0* {0.25 0.25 0.25 0.00} bind def /tzwcmy0* {0.00 0.00 0.00 0.00} bind def /tzn000n* {0.00 0.00 0.00 1.00} bind def %grey series 000n* /tzd000n* {0.00 0.00 0.00 0.75} bind def %000n* setcmykcolor /tzz000n* {0.00 0.00 0.00 0.50} bind def /tzh000n* {0.00 0.00 0.00 0.25} bind def /tzw000n* {0.00 0.00 0.00 0.00} bind def /tznw* {0.00} bind def %grey series /tzdw* {0.25} bind def %w* setgray /tzzw* {0.50} bind def /tzhw* {0.75} bind def /tzww* {1.00} bind def /tznolv* {0.00 0.00 0.00} bind def %grey series /tzdolv* {0.25 0.25 0.25} bind def %olv* setrgbcolor /tzzolv* {0.50 0.50 0.50} bind def /tzholv* {0.75 0.75 0.75} bind def /tzwolv* {1.00 1.00 1.00} bind def /tznLAB* [18.01 0.00 0.00] def %grey series /tzdLAB* [37.36 0.00 0.00] def %LAB* setcolor /tzzLAB* [56.71 0.00 0.00] def /tzhLAB* [76.06 0.00 0.00] def /tzwLAB* [95.41 0.00 0.00] def /tfn {0 setgray} bind def /tfw {1 setgray} bind def /A4quer {598 0 translate 90 rotate} def %0 %1 /cvishow {cvi 6 string cvs show} def /cvsshow1 {10 mul cvi 0.1 mul 7 string cvs show} def /cvsshow2 {100 mul cvi 0.01 mul 7 string cvs show} def /cvsshow3 {1000 mul cvi 0.001 mul 7 string cvs show} def /tzank [1.000 0.933 0.867 0.800 0.733 0.667 0.600 0.533 0.467 0.400 0.333 0.267 0.200 0.132 0.067 0.000 1.000 0.750 0.500 0.250 0.000] def %BEG 61 lines comment or new PS operators possible %01 %END 38 lines comment or new PS operators possible %%EndProlog %%BeginPageSetup /#copies 1 def %A4quer 0.5 0.5 scale /pgsave save def %%EndPageSetup 0.0 MM 0.0 MM translate %Verschiebung nach oben und links fuer Belichter gsave /SS$ [(G) (E) (S) (F) (I) (J) (M)] def /SC$ [(N) (F) (S) (D) (T) (E) (C)] def /SX$ [(0) (1) (2) (3) (4) (5) (6) (7) (8) (9) (A) (B) (C) (D) (E) (F)] def /SY$ [(0) (1) (2) (3) (4) (5) (6) (7) (8) (9) (A) (B) (C) (D) (E) (F)] def % 0 1 2 3 4 5 % 6 7 8 /EX$ [(1.PS/ .TXT) (B.PS/ .BMP) (G.PS/ .GIF) (H.PS/ .HTM) (I.PS/ .HTM) (J.PS/ .JPE) (P.PS/ .PDF) (T.PS/ .TIF)] def /EY$ [(1.DAT) (B.DAT) (G.DAT) (H.DAT) (I.DAT) (J.DAT) (P.DAT) (T.DAT)] def /lanindg1 0 def /lanindg2 0 def /colormg1 0 def /colormg2 0 def /xcolorg1 0 def /xcolorg2 0 def /xchartg1 0 def /xchartg2 0 def /lanindg lanindg1 def %no loops /colormg colormg1 def /xcolorg xcolorg1 def /xchartg xchartg1 def /pcount2x pcount2g xchart2g sub 2 add def %scount1g 1 scount2g {/scountg exch def %s=serie, e. g. 1,1,10 %1 1 1 {/pcountg exch def %p=page, e. g. 1,1,250 /xchart10 0 def /xchart20 09 def %18x10=180 original, transfer, 8 data tables %pcountg pcount1g eq {/xchart10 0 def /xchart20 0 def} % {/xchart10 1 def /xchart20 1 def} ifelse %%pcountg pcount2x eq {/xchart10 2 def /xchart20 9 def} if xchart10 1 xchart20 {/xchartg exch def /xcharti xchartg 18 idiv def xcharti 0 eq {/ausz 8 def /xchartt (A) def} if xcharti 1 eq {/ausz 8 def /xchartt (F) def} if xcharti 2 eq {/ausz 8 def /xchartt (F) def} if xcharti 3 eq {/ausz 8 def /xchartt (F) def} if xcharti 4 eq {/ausz 8 def /xchartt (F) def} if xcharti 5 eq {/ausz 8 def /xchartt (F) def} if xcharti 6 eq {/ausz 8 def /xchartt (F) def} if xcharti 7 eq {/ausz 8 def /xchartt (F) def} if xcharti 8 eq {/ausz 8 def /xchartt (F) def} if xcharti 9 eq {/ausz 8 def /xchartt (F) def} if /xchartg0 0 def /colorm colormg def /xchart xcharti xchartg0 sub def %LAB*ioL, ColSep*ioL, and procedures (*ioL) are only in L10-7N.EPS %LAB*ioG, ColSep*ioG, and procedures (*ioG) are only in L93g00NA.PS6.PS and OUTLIN1X %for colorm=0, default rgb/cmyk-values are used for Frame %for colorm=1, rgb/cmyk-values of LAB*ioG, ColSep*ioG are used for Frame %for colorm=0, rgb/cmyk-values of LAB*ioL, ColSep*ioL are used in L10-7N %for colorm=1, rgb/cmyk-values of LAB*ioG, ColSep*ioG are used in L10-7N %for consistancy use same procedures in L10-7N and L93g00NA.PS6.PS colorm 1 eq {LAB*ioG ColSep*ioG} if %LAB*ioL, ColSep*ioL only in L10-7! %2 MM /Times-Roman FS %274 MM 82 MM moveto -90 rotate (/Eg93/ ) show (Form: ) show %xchartg 1 add cvi 6 string cvs show (/) show %xchart2g 1 add cvi 6 string cvs show (,) show 90 rotate %274 MM 65 MM moveto -90 rotate (Serie: ) show %scountg cvi 6 string cvs show (/) show %scount2g cvi 6 string cvs show (,) show 90 rotate %274 MM 55 MM moveto -90 rotate %lanindg 0 eq {(Seite: )}{(Page: )} ifelse show %pcountg xchartg xchart10 sub add cvi 6 string cvs show 90 rotate %274 MM 45 MM moveto %-90 rotate %lanindg 0 eq {(Seitenz\344hlung )}{(Page: count: )} ifelse show %scountg 1 sub pcount2g mul pcountg add %pcountg pcount2x eq {xchartg add pcount1g pcount2x ne {2 sub } if} if %cvi 6 string cvs show %90 rotate /GSS$ SS$ lanindg get def /GSC$ SC$ colormg get def /GSX$ SX$ xcolorg get def /GSY$ SY$ 0 get def /GEX$ EX$ 0 get def /GEY$ EY$ 0 get def %gsave BeginEPSF 28 MM 197 MM translate 10 /Times-ISOL1 FS 53 MM 1 MM moveto 1 1 scale -77 -91 translate %%BeginDocument: Bild 10 %line 329 %%EndDocument EndEPSF grestore gsave BeginEPSF 28 MM 152 MM translate 10 /Times-ISOL1 FS 53 MM 1 MM moveto 1 1 scale -77 -91 translate %%BeginDocument: Bild 11 %line 339 %!PS-Adobe-3.0 EPSF-3.0 Eg930-1, %%BoundingBox: 70 90 226 206 /FS {findfont exch scalefont setfont} bind def /MM {72 25.4 div mul} def %%EndProlog gsave 8 /Times-Roman FS 72 83 moveto %!2 (Eg930-1,) show 72 90 translate %! 0.01 MM 0.01 MM scale %! 15 setlinewidth %! 0 0 moveto 5400 0 rlineto 0 4000 rlineto -5400 0 rlineto %! closepath stroke grestore showpage %%Trailer %%EndDocument EndEPSF grestore gsave BeginEPSF 86 MM 152 MM translate 10 /Times-ISOL1 FS 53 MM 1 MM moveto ( ) show 1 1 scale -77 -91 translate %%BeginDocument: Bild 12 %line 349 %%EndDocument EndEPSF grestore gsave BeginEPSF 28 MM 108 MM translate 10 /Times-ISOL1 FS 53 MM 1 MM moveto ( ) show 1 1 scale -77 -91 translate %%BeginDocument: Bild 13 %line 359 %!PS-Adobe-3.0 EPSF-3.0 Eg930-3 %%BoundingBox: 70 90 226 206 /FS {findfont exch scalefont setfont} bind def /MM {72 25.4 div mul} def %%EndProlog gsave 8 /Times-Roman FS 72 83 moveto %!2 (Eg930-3,) show 72 90 translate %! 0.01 MM 0.01 MM scale %! 15 setlinewidth %! 0 0 moveto 5400 0 rlineto 0 4000 rlineto -5400 0 rlineto %! closepath stroke grestore showpage %%Trailer %%EndDocument EndEPSF grestore gsave BeginEPSF 86 MM 108 MM translate 10 /Times-ISOL1 FS 53 MM 1 MM moveto ( ) show 1 1 scale -77 -91 translate %%BeginDocument: Bild 14 %line 369 %%EndDocument EndEPSF grestore gsave BeginEPSF 28 MM 064 MM translate 10 /Times-ISOL1 FS 53 MM 1 MM moveto ( ) show 1 1 scale -77 -91 translate %%BeginDocument: Bild 15 %line 379 %!PS-Adobe-3.0 EPSF-3.0 Eg930-5, %%BoundingBox: 70 90 226 206 /FS {findfont exch scalefont setfont} bind def /MM {72 25.4 div mul} def %%EndProlog gsave 8 /Times-Roman FS 72 83 moveto %!2 (Eg930-5,) show 72 90 translate %! 0.01 MM 0.01 MM scale %! 15 setlinewidth %! 0 0 moveto 5400 0 rlineto 0 4000 rlineto -5400 0 rlineto %! closepath stroke grestore showpage %%Trailer %%EndDocument EndEPSF grestore gsave BeginEPSF 86 MM 064 MM translate 10 /Times-ISOL1 FS 53 MM 1 MM moveto ( ) show 1 1 scale -77 -91 translate %%BeginDocument: Bild 16 %line 389 %%EndDocument EndEPSF grestore gsave BeginEPSF %28 MM -1 MM add 20 MM translate 28 MM 0.0 MM add 20 MM 13.5 MM add translate 10 /Times-ISOL1 FS 53 MM 1 MM moveto ( ) show 1 1 scale -77 -91 translate %%BeginDocument: Bild 17 %line 399 %!PS-Adobe-3.0 EPSF-3.0 Eg930-7N.EPS %%BoundingBox: 14 08 820 575 %START PDFDE011.EPS /pdfmark07 where {pop} {userdict /pdfmark07 /cleartomark load put} ifelse /languagelevel where {pop languagelevel} {1} ifelse 2 lt { userdict (<<) cvn ([) cvn load put userdict (>>) cvn (]) cvn load put} if [ /Title (PostScript pictures: Image Technology) /Author (compare K. Richter "Computergrafik ...": ISBN 3-8007-1775-1) /Subject (goto: http://o2.ps.bam.de or http://www.ps.bam.de) /Keywords (image reproduction, colour devices) /Creator (klaus.richter@bam.de) /CreationDate (D:2008070112000) /ModDate (D:2008070112000) /DOCINFO pdfmark07 [ /View [ /FitB ] /DOCVIEW pdfmark07 %END PDFDE011 /ColSpxL 0 def %Early binding /sggray where {pop /slgray {sggray} bind def} {/slgray {setgray} bind def} ifelse /sgcmykcolor where {pop /slcmykcolor {sgcmykcolor} bind def} {/slcmykcolor {setcmykcolor} bind def} ifelse /sgrgbcolor where {pop /slrgbcolor {sgrgbcolor} bind def} {/slrgbcolor {setrgbcolor} bind def} ifelse /ColSpxG where {pop /ColSpx {ColSpxG} bind def} {/ColSpx {ColSpxL} bind def} ifelse /FS {findfont exch scalefont setfont} bind def /MM {72 25.4 div mul} def /str {8 string } bind def /languagelevel where {pop languagelevel} {1} ifelse /PSL12 exch def /dictende {counttomark 2 idiv dup dict begin {def} repeat pop currentdict end} bind def /Times-Roman findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse } forall /Encoding ISOLatin1Encoding def currentdict end /Times-ISOL1 exch definefont pop /Times-Italic findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse } forall /Encoding ISOLatin1Encoding def currentdict end /TimesI-ISOL1 exch definefont pop /Times-Bold findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse } forall /Encoding ISOLatin1Encoding def currentdict end /TimesB-ISOL1 exch definefont pop /Times-BoldItalic findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse } forall /Encoding ISOLatin1Encoding def currentdict end /TimesBI-ISOL1 exch definefont pop /Courier findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /Courier-ISOL1 exch definefont pop /Courier-Bold findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /CourierB-ISOL1 exch definefont pop /TK {250 /Times-ISOL1 FS} bind def /TM {300 /Times-ISOL1 FS} bind def /TG {350 /Times-ISOL1 FS} bind def /TIK {250 /TimesI-ISOL1 FS} bind def /TIM {300 /TimesI-ISOL1 FS} bind def /TIG {350 /TimesI-ISOL1 FS} bind def /TBK {250 /TimesB-ISOL1 FS} bind def /TBM {300 /TimesB-ISOL1 FS} bind def /TBG {350 /TimesB-ISOL1 FS} bind def /TBIK {250 /TimesBI-ISOL1 FS} bind def /TBIM {300 /TimesBI-ISOL1 FS} bind def /TBIG {350 /TimesBI-ISOL1 FS} bind def /CKK {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 /CBKK {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 %***************************************************************************** %BEG /Eg93/10L/L10-7N.EPS, identical for NP-(*ioL), FP-files (*ioG) 20080701 %***************************************************************************** %Data (FRS09_92aM) def /LAB*ioL {%BEG Procedure LAB*ioL %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* 84 array def %12x3=36 including N,W + 16x3=48 elementary system /LAB*a 84 array def /LAB*Hx 13 array def %0_to_6 8_to_12 for device and elemetary colours /LAB*00 24 array def /LAB*01 24 array def /LAB*02 24 array def /LAB*03 24 array def /LAB*04 24 array def /LAB*05 24 array def /LAB*06 24 array def /LAB*07 24 array def /LAB*TE %not used [(ORS18) (TLS00) (FRS06) (TSL18) (NLS00) (NLS18) (SRS18) (TLS70) (TLS00) (TLS06) (TLS11) (TLS18) (TLS27) (TLS38) (TLS52) (TLS70) (OLS00) (OLS06) (OLS11) (OLS18) (OLS27) (OLS38) (OLS52) (OLS70)] def %FRS09_92M.DAT, Model data are not adapted here, 55 lines, 141:195 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 %From LUT_De740-7N_3_4_FRS09_92.DAT 20080625 %Data output of De74/10L/De740-7N.EPS -> De740_3_4_Model.log %LAB*a %#1000 x (r g b c m y 0) %nr. pos (FRS09_92aM) %035.06 059.98 043.99 %#1000 0000 0000 0000 1000 1000 0000 %1074 l26 $O %083.76 -05.16 109.29 %#1000 1000 0000 0000 0000 1000 0000 %1076 m26 $Y %044.13 -62.65 048.23 %#0000 1000 0000 1000 0000 1000 0000 %1078 n26 $L %052.65 -29.13 -31.98 %#0000 1000 1000 1000 0000 0000 0000 %1075 l27 $C %014.15 050.29 -59.02 %#0000 0000 1000 1000 1000 0000 0000 %1077 m27 $V %037.37 078.62 -33.49 %#1000 0000 1000 0000 1000 0000 0000 %1079 n27 $M %008.59 000.00 000.00 %#0000 0000 0000 1000 1000 1000 0000 %1072 k26 $N %092.01 000.00 000.00 %#1000 1000 1000 0000 0000 0000 0000 %1073 k27 $W %$ %LAB*a %#1000 x (r g b c m y 0) %nr. pos (FRS09_92aM) %035.06 059.98 043.99 %#1000 0000 0000 0000 1000 1000 0000 %1074 l26 $O %083.76 -05.16 109.29 %#1000 1000 0000 0000 0000 1000 0000 %1076 m26 $Y %044.13 -62.65 048.23 %#0000 1000 0000 1000 0000 1000 0000 %1078 n26 $L %052.65 -29.13 -31.98 %#0000 1000 1000 1000 0000 0000 0000 %1075 l27 $C %014.15 050.29 -59.02 %#0000 0000 1000 1000 1000 0000 0000 %1077 m27 $V %037.37 078.62 -33.49 %#1000 0000 1000 0000 1000 0000 0000 %1079 n27 $M %008.59 000.00 000.00 %#0000 0000 0000 1000 1000 1000 0000 %1072 k26 $N %092.01 000.00 000.00 %#1000 1000 1000 0000 0000 0000 0000 %1073 k27 $W %LAB* %#1000 x (r g b c m y 0) %nr. pos $ (FRS09_92M) 0035.06 0060.53 0039.66 %#1000 0000 0000 0000 1000 1000 0000 %0648 S19 %O1 0 $ 0083.77 -004.50 0103.15 %#1000 1000 0000 0000 0000 1000 0000 %0720 a19 %Y1 1 $ 0044.13 -062.11 0043.56 %#0000 1000 0000 1000 0000 1000 0000 %0072 I01 %L1 2 $ 0052.66 -028.56 -036.99 %#0000 1000 1000 1000 0000 0000 0000 %0080 I09 %C1 3 $ 0014.15 0050.78 -062.60 %#0000 0000 1000 1000 1000 0000 0000 %0008 A09 %V1 4 $ 0037.37 0079.18 -037.93 %#1000 0000 1000 0000 1000 0000 0000 %0656 S27 %M1 5 $ 0008.58 0000.46 -003.35 %#0000 0000 0000 1000 1000 1000 0000 %0000 A01 %N1 6 $ 0092.02 0000.69 -006.48 %#1000 1000 1000 0000 0000 0000 0000 %0728 a27 %W1 7 $ %$ %LAB* %#1000 x (r g b c m y 0) %nr. pos $ (FRS09_92M) %0035.06 0060.53 0039.66 %#1000 0000 0000 0000 1000 1000 0000 %0648 S19 %O1 0 $ %0083.77 -004.50 0103.15 %#1000 1000 0000 0000 0000 1000 0000 %0720 a19 %Y1 1 $ %0044.13 -062.11 0043.56 %#0000 1000 0000 1000 0000 1000 0000 %0072 I01 %L1 2 $ %0052.66 -028.56 -036.99 %#0000 1000 1000 1000 0000 0000 0000 %0080 I09 %C1 3 $ %0014.15 0050.78 -062.60 %#0000 0000 1000 1000 1000 0000 0000 %0008 A09 %V1 4 $ %0037.37 0079.18 -037.93 %#1000 0000 1000 0000 1000 0000 0000 %0656 S27 %M1 5 $ %0008.58 0000.46 -003.35 %#0000 0000 0000 1000 1000 1000 0000 %0000 A01 %N1 6 $ %0092.02 0000.69 -006.48 %#1000 1000 1000 0000 0000 0000 0000 %0728 a27 %W1 7 $ ] 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 %sISO=0,11 /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 %Definition 8 to 11 (24 to 35=33+2) /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 LAB*a i30 LAB* i30 get put LAB*a i31 LAB* i31 get put LAB*a i32 LAB* i32 get put } ifelse } for %sISO=0,11 % possible change of LAB*a according to reduced gamut %LAB* = 20 for Black N %LAB* = 95 for White W %cfakt = (95 - 20)/(95.41 - 18.01) = 0.969 %LAB*L*Nn = 20 for Black N instead of LAB*L*N = 18,01 %LAB*L*Wn = 95 for White W instead of LAB*L*W = 95,41 %LAB*L*Zn = 20+(95-20)/2=57,5 for Grey Z instead of %LAB*L*Z = 18,01+(95,41-18,01)/2=56,71 %L*neu = L*alt + (1 - cfakt %For achromatic %deltaLmean = 57,5 (1-c*neu); 56,71 (1-c*alt) %deltaLmimu = 20,0 (1-c*neu); 18,01 (1-c*alt) %deltaLplus = 95,0 (1-c*neu); 95,41 (1-c*alt) %For chromatic M %deltaLmean = L*Ma,neu; L*Ma,alt = known %C*Ma,alt known, C*Ma,neu known /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 /L*Wioref 90.0 def /L*Nioref 15.0 def %/cfakt 1 def /cfakt L*Wioref L*Nioref sub L*Wio L*Nio sub div def cfakt 1 ne {%cfakt#1 %change of lightness for Maximum colour /l*CIEN L*Nioref L*Nio sub L*Wio L*Nio sub div def /l*CIEW L*Wioref L*Nio sub L*Wio L*Nio sub div def LAB* 18 L*Nioref put %defined change of lightness and chroma a*,b* for N LAB* 19 A*Nio A*Wio A*Nio sub l*CIEN mul add put LAB* 20 B*Nio B*Wio B*Nio sub l*CIEN mul add put LAB* 21 L*Wioref put %defined change of lightness and chroma a*,b* for W LAB* 22 A*Nio A*Wio A*Nio sub l*CIEW mul add put LAB* 23 B*Nio B*Wio B*Nio sub l*CIEW mul add put %change of chroma by factor cfakt 0 1 07 {/iISO exch def /i30 iISO 3 mul def /i31 i30 1 add def /i32 i30 2 add def LAB* i30 LAB* i30 get put LAB* i31 LAB* i31 get cfakt mul put LAB* i32 LAB* i32 get cfakt mul put } for } if %cfakt#1 /L*Nior LAB* 18 get def %r=reference for reverse transform /A*Nior LAB* 19 get def /B*Nior LAB* 20 get def /L*Wior LAB* 21 get def /A*Wior LAB* 22 get def /B*Wior LAB* 23 get def 0 1 7 {/iISO exch def %iISO=0,7 /i30 iISO 3 mul def /i31 i30 1 add def /i32 i30 2 add def /l*CIE LAB* i30 get L*Nior sub L*Wior L*Nior sub div def /a*sr A*Wior A*Nior sub l*CIE mul def /b*sr B*Wior B*Nior sub l*CIE mul def LAB*a i30 LAB* i30 get put LAB*a i31 LAB* i31 get A*Nior sub a*sr sub put LAB*a i32 LAB* i32 get B*Nior sub b*sr sub put } for /L*Nio LAB*a 18 get def %=18.01 /A*Nio LAB*a 19 get def %=0 /B*Nio LAB*a 20 get def %=0 /L*Wio LAB*a 21 get def %=95.41 /A*Wio LAB*a 22 get def %=0 /B*Wio LAB*a 23 get def %=0 /A*Dio A*Wio A*Nio sub def %=0 /B*Dio B*Wio B*Nio sub def %=0 /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 %Definition 12 to 24 (36=12*3 to 75=24*3+3) by equal angle difference %between R and J, J and G, G and B, and B and R 0 1 03 {/ik exch def %ik=0,3 /H*1 RJGBLAB* ik 3 mul 2 add get RJGBLAB* ik 3 mul 1 add get 0.00001 add atan def ik 2 le {/ik2b ik 3 mul 5 add def} {/ik2b 2 def} ifelse /ik2a ik2b 1 sub def /H*2 RJGBLAB* ik2b get RJGBLAB* ik2a get 0.00001 add atan def ik 3 eq {/H*2 H*2 360 add def} if 0 1 03 {/ij exch def %ij=1,3 ij 0 eq {/a0 1.00 def /b0 0.00 def} if ij 1 eq {/a0 0.75 def /b0 0.25 def} if ij 2 eq {/a0 0.50 def /b0 0.50 def} if ij 3 eq {/a0 0.25 def /b0 0.75 def} if /H*M a0 H*1 mul b0 H*2 mul add def H*M 360 ge {/H*M H*M 360 sub def} if /L*Fa 50 def /A*Fa 75 H*M cos mul def /B*Fa 75 H*M sin mul def proc_LAB*Fa_LAB*MaNTABl_olvi3*cmyn3*Ma*ioL %calculates LAB*Ma /i30 36 ik 12 mul add ij 3 mul add def /i31 i30 1 add def /i32 i30 2 add def LAB*a i30 L*Ma put LAB*a i31 A*Ma put LAB*a i32 B*Ma put } for %ik=0,3 } for %ij=0,3 %6+1 hue angles for 6 device colour (index 0 to 06) %4+1 hue angles for 4 elementary colours (index 8 to 12) %no. 6 and 7 originaly achromatic 0 1 11 {/iHx exch def /i1x iHx 3 mul 1 add def /i2x i1x 1 add def LAB*Hx iHx LAB*a i2x get LAB*a i1x get 0.000001 add atan put } for LAB*Hx 06 LAB*Hx 00 get 360 add put LAB*Hx 12 LAB*Hx 08 get 360 add put } bind def %END Procedure LAB*ioL %*********************************************************** /detprocL*ioL { %BEG procedure detprocL*ioL % The detprocL*ioL below finds the determinant of the Matrix: % | A1 B1 C1 D1 | % | A2 B2 C2 D2 | % | A3 B3 C3 D3 | % | A4 B4 C4 D4 | % /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*ioL %*********************************************************** /CoeffprocL*ioL { %BEG procedure CoeffprocL*ioL % The CoeffprocL*ioL proced. 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| |xD| % | A2 B2 C2 D2 | |BlackCoeff| = |yD| % | A3 B3 C3 D3 | |Col1Coeff | |zD| % | A4 B4 C4 D4 | |Col2Coeff | |tD| % A B = C % /tD exch def /zD exch def /yD exch def /xD 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*ioL /den det def % determine white coefficient /temp1 A1 def /temp2 A2 def /temp3 A3 def /temp4 A4 def /A1 xD def /A2 yD def /A3 zD def /A4 tD def detprocL*ioL /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 xD def /B2 yD def /B3 zD def /B4 tD def detprocL*ioL /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 xD def /C2 yD def /C3 zD def /C4 tD def detprocL*ioL /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 xD def /D2 yD def /D3 zD def /D4 tD def detprocL*ioL /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*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 %*************************************************************** /LAB*io_to_cmyolv*ioL {%BEG Procedure LAB*io_to_cmyolv*ioL /B*F exch def /A*F exch def /L*F exch def /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*ioL /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*ioL /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*ioL /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*ioL /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*ioL /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*ioL /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 %*************************************************************** /ouTab*ioL {%BEG Procedure ouTab*ioL /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 /v* exch def /l* exch def /o* exch 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 procedure 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 Black 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 procedure proc_LAB*Fa_LAB*MaNTABl_olvi3*cmyn3*Ma*ioL %******************************************************************* from De990-7N04.PS /ColSep*ioL {%BEG Procedure ColSep*ioL ColourSeparation for NP-file 20080601 /setgc {pop pop pop 1 exch sub slgray} bind def /setgm {pop pop 1 exch sub slgray pop} bind def /setgy {pop 1 exch sub slgray pop pop} bind def /setgn {1 exch sub slgray pop pop pop} bind def /setgf {/ncolor exch def /ycolor exch def /mcolor exch def /ccolor exch def 0 ccolor eq 0 mcolor eq and 0 ycolor eq and {1 ncolor sub slgray} {1 ccolor sub 0.71 mul 1 mcolor sub 0.22 mul add 1 ycolor sub 0.07 mul add slgray} ifelse } bind def /setcmykcolorf { slcmykcolor} bind def %fuer PSL1/2-Farbgeraet /setcmyknew { %Ersatz setcolornew durch setcmykcolor1 ausz 1 eq {setgc} if %C ausz 2 eq {setgm} if %M ausz 3 eq {setgy} if %Y ausz 4 eq {pop pop pop /ccolor exch def ccolor 0 0 0 /setcmykcolor where %Abfrage Farb-/SW-Geraet {pop setcmykcolorf} %PSL1/2-Farb-Geraet {setgc} %PSL1-SW-Geraet ifelse } if %Cbunt ausz 5 eq {pop pop /mcolor exch def pop 0 mcolor 0 0 /setcmykcolor where %Abfrage Farb-/SW-Geraet {pop setcmykcolorf} %PSL1/2-Farb-Geraet {setgm} %PSL1-SW-Geraet ifelse } if %Mbunt ausz 6 eq {pop /ycolor exch def pop pop 0 0 ycolor 0 /setcmykcolor where %Abfrage Farb-/SW-Geraet {pop setcmykcolorf} %PSL1/2-Farb-Geraet {setgy} %PSL1-SW-Geraet ifelse } if %Ybunt ausz 7 eq {setgn} if %N ausz 8 ge { /setcmykcolor where %Abfrage Farb-/SW-Geraet {pop setcmykcolorf} %PSL1/2-Farb-Geraet {setgf} %PSL1-SW-Geraet ifelse } if %bei ausz=8: Farb- oder SW-Ausdruck je nach Drucker } bind def %********************************************************************* /rgb_LAB_Interp_olv*ioL {%BEG Procedure rgb_LAB_Interp_olv*ioL zm60'LABINPLT.PS %assumes input of rgb, LAB_Interpolation and calculation of olv* %split in chromatic and achromatic colours %two special cases black N and white W /b exch def /g exch def /r exch def r g sub abs 0.001 le r b sub abs 0.001 le and {%achromatic case /Case 0 def r abs 0.001 le g abs 0.001 le and b abs 0.001 le and {%N special case /Case 1 def } if %N special case 1 r sub abs 0.001 le 1 g sub abs 0.001 le and 1 b sub abs 0.001 le and {%W special case /Case 2 def } if }%achromatic {%chromatic /Case 3 def } ifelse %chromatic Case 1 eq {%Black N /o* 0 def /l* 0 def /v* 0 def } if %N special case Case 2 eq {%White W /o* 1 def /l* 1 def /v* 1 def } if %W special case Case 0 eq Case 3 eq or {%chromatic or gray r g b ouCal*ioL L*F A*F B*F Lab2RGBinterpolation /v* exch def /l* exch def /o* exch def } if %chromatic or gray } bind def %END Procedure rgb_LAB_Interp_olv*ioL 'zm60'LABINPLT.PS %********************************************************************* /trans_rgb3*_cmyn4*ioL {%BEG Procedure trans_rgb3*_cmyn4*ioL %assumes input of olv* o* 0 le {/o* 0.0000 def} if l* 0 le {/l* 0.0000 def} if v* 0 le {/v* 0.0000 def} if o* 1 ge {/o* 1.0000 def} if l* 1 ge {/l* 1.0000 def} if v* 1 ge {/v* 1.0000 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 {/n*n 1 v* sub def /w*w o* 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 {/n*n 1 v* sub def /w*w l* 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 {/n*n 1 o* sub def /w*w l* 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 {/n*n 1 o* sub def /w*w v* 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 {/n*n 1 l* sub def /w*w v* 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 {/n*n 1 l* sub def /w*w o* 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 {/n*n 0 def /w*w 1 def %W } 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 {/n*n 1 def /w*w 0 def %N } if %Achromatic o* l* sub abs 0.001 le l* v* sub abs 0.001 le and %Achromatic special case {/n*n 1 o* sub def /w*w o* def %grey } if /lab*wFa w*w def /lab*nFa n*n def /c3*Fa 1 o* sub def /m3*Fa 1 l* sub def /y3*Fa 1 v* sub def /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 trans_rgb3*_cmyn4*ioL %******************************************************************* /trans_rgb3*_cmyn5*ioL {%BEG Procedure trans_rgb3*_cmyn5*ioL %assumes input of olv*, 'zm60'CMYN559LT.PS o* 0 le {/o* 0.0000 def} if l* 0 le {/l* 0.0000 def} if v* 0 le {/v* 0.0000 def} if o* 1 ge {/o* 1.0000 def} if l* 1 ge {/l* 1.0000 def} if v* 1 ge {/v* 1.0000 def} if /ok* o* def /lk* l* def /vk* v* def /tdel 0 def vk* lk* ge lk* ok* ge and tdel 0 eq and % v* >= l* >= o* equal y* <= m* <= c* %sector C-V of C-M, C>=M: i*p=0 {/n*n 1 vk* sub def /w*w ok* def /m*w lk* def /tdel 1 def /isec 3 def } if % v* >= l* >= o* vk* ok* ge ok* lk* ge and tdel 0 eq and % v* >= o* >= l* equal y* <= c* <= m* %sector V-M of C-M, M>=C: i*p=1 {/n*n 1 vk* sub def /w*w lk* def /m*w ok* def /tdel 1 def /isec 4 def } if % v* >= o* >= l* ok* vk* ge vk* lk* ge and tdel 0 eq and % o* >= v* >= l* equal c* <= y* <= m* %sector M-O of M-Y, M>=Y: i*p=2 {/n*n 1 ok* sub def /w*w lk* def /m*w vk* def /tdel 1 def /isec 5 def } if % o* >= v* >= l* ok* lk* ge lk* vk* ge and tdel 0 eq and % o* >= l* >= v* equal c* <= m* <= y* %sector O-Y of M-Y, Y>=M: i*p=3 {/n*n 1 ok* sub def /w*w vk* def /m*w lk* def /tdel 1 def /isec 0 def } if % o* >= l* >= v* lk* ok* ge ok* vk* ge and tdel 0 eq and % l* >= o* >= v* equal m* <= c* <= y* %sector Y-L of Y-C, Y>=C: i*p=4 {/n*n 1 lk* sub def /w*w vk* def /m*w ok* def /tdel 1 def /isec 1 def } if % l* >= o* >= v* lk* vk* ge vk* ok* ge and tdel 0 eq and % l* >= v* >= o* equal m* <= y* <= c* %sector L-C of Y-C, C>=Y: i*p=5 {/n*n 1 lk* sub def /w*w ok* def /m*w vk* def /tdel 1 def /isec 2 def } if % l* >= v* >= o* %achromatic %W: ok*, lk*, vk* = 1.00 1.0 ok* sub abs 0.001 le 1.0 lk* sub abs 0.001 le and 1.0 vk* sub abs 0.001 le and %W special case {/n*n 0 def /w*w 1 def /m*w 1 def %W /isec 6 def } if %N: ok*, lk*, vk* <= 0.001 ok* abs 0.001 le lk* abs 0.001 le and vk* abs 0.001 le and %N special case {/n*n 1 def /w*w 0 def /m*w 0 def %N /isec 6 def } if %Achromatic ok* lk* sub abs 0.001 le lk* vk* sub abs 0.001 le and %Achromatic special case {/n*n 1 ok* sub def /w*w ok* def /m*w ok* def %grey /isec 6 def } if /lab*wFa w*w def /lab*nFa n*n def /lab*cFa 1 n*n sub w*w sub def /argb 1 lab*nFa sub def /brgb m*w def /crgb lab*wFa def /c* lab*cFa def /lab*tFa 1 lab*nFa sub lab*cFa 0.5 mul sub def isec 6 eq {%BEG isec=6 achromatic /o*1 1 def /l*1 1 def /v*1 1 def }%END isec=6 achromatic {%BEG isec#6 chromatic /o*1 ok* argb 0.000001 add div def /l*1 lk* argb 0.000001 add div def /v*1 vk* argb 0.000001 add div def } ifelse %END isec#6 /c3*Fa 1 o*1 sub def /m3*Fa 1 l*1 sub def /y3*Fa 1 v*1 sub def /c4*Fa c3*Fa def %at least one of cmy will be cero /m4*Fa m3*Fa def /y4*Fa y3*Fa 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 trans_rgb3*_cmyn5*ioL 'zm60'CMYN559LT.PS %********************************************************************* /trans_rgb3*_cmyn6*ioL {%BEG Procedure trans_rgb3*_cmyn6*ioL %assumes input of olv*, 'zm60'CMYN559LT.PS o* 0 le {/o* 0.0000 def} if l* 0 le {/l* 0.0000 def} if v* 0 le {/v* 0.0000 def} if o* 1 ge {/o* 1.0000 def} if l* 1 ge {/l* 1.0000 def} if v* 1 ge {/v* 1.0000 def} if /ok* o* def /lk* l* def /vk* v* def /tdel 0 def vk* lk* ge lk* ok* ge and tdel 0 eq and % v* >= l* >= o* equal y* <= m* <= c* %sector C-V of C-M, C>=M: i*p=0 {/n*n 1 vk* sub def /w*w ok* def /m*w lk* def /tdel 1 def /isec 3 def } if % v* >= l* >= o* vk* ok* ge ok* lk* ge and tdel 0 eq and % v* >= o* >= l* equal y* <= c* <= m* %sector V-M of C-M, M>=C: i*p=1 {/n*n 1 vk* sub def /w*w lk* def /m*w ok* def /tdel 1 def /isec 4 def } if % v* >= o* >= l* ok* vk* ge vk* lk* ge and tdel 0 eq and % o* >= v* >= l* equal c* <= y* <= m* %sector M-O of M-Y, M>=Y: i*p=2 {/n*n 1 ok* sub def /w*w lk* def /m*w vk* def /tdel 1 def /isec 5 def } if % o* >= v* >= l* ok* lk* ge lk* vk* ge and tdel 0 eq and % o* >= l* >= v* equal c* <= m* <= y* %sector O-Y of M-Y, Y>=M: i*p=3 {/n*n 1 ok* sub def /w*w vk* def /m*w lk* def /tdel 1 def /isec 0 def } if % o* >= l* >= v* lk* ok* ge ok* vk* ge and tdel 0 eq and % l* >= o* >= v* equal m* <= c* <= y* %sector Y-L of Y-C, Y>=C: i*p=4 {/n*n 1 lk* sub def /w*w vk* def /m*w ok* def /tdel 1 def /isec 1 def } if % l* >= o* >= v* lk* vk* ge vk* ok* ge and tdel 0 eq and % l* >= v* >= o* equal m* <= y* <= c* %sector L-C of Y-C, C>=Y: i*p=5 {/n*n 1 lk* sub def /w*w ok* def /m*w vk* def /tdel 1 def /isec 2 def } if % l* >= v* >= o* %achromatic %W: ok*, lk*, vk* = 1.00 1.0 ok* sub abs 0.001 le 1.0 lk* sub abs 0.001 le and 1.0 vk* sub abs 0.001 le and %W special case {/n*n 0 def /w*w 1 def /m*w 1 def %W /isec 6 def } if %N: ok*, lk*, vk* <= 0.001 ok* abs 0.001 le lk* abs 0.001 le and vk* abs 0.001 le and %N special case {/n*n 1 def /w*w 0 def /m*w 0 def %N /isec 6 def } if %Achromatic ok* lk* sub abs 0.001 le lk* vk* sub abs 0.001 le and %Achromatic special case {/n*n 1 ok* sub def /w*w ok* def /m*w ok* def %grey /isec 6 def } if /lab*wFa w*w def /lab*nFa n*n def /lab*cFa 1 n*n sub w*w sub def /argb 1 lab*nFa sub def /brgb m*w def /crgb lab*wFa def /c* lab*cFa def /lab*tFa 1 lab*nFa sub lab*cFa 0.5 mul sub def isec 6 eq {%BEG isec=6 achromatic /o*1 1 def /l*1 1 def /v*1 1 def }%END isec=6 achromatic {%BEG isec#6 chromatic /o*1 ok* argb 0.000001 add div def /l*1 lk* argb 0.000001 add div def /v*1 vk* argb 0.000001 add div def } ifelse %END isec#6 /c3*Fa 1 o*1 sub def /m3*Fa 1 l*1 sub def /y3*Fa 1 v*1 sub def /c41*Fa c3*Fa def %at least one of cmy will be cero /m41*Fa m3*Fa def /y41*Fa y3*Fa def /n4*Fa lab*nFa def %change by deepness difference delta d* = c*S1 - c*S2 %use lab*cFa, lab*tFa for correction %equations of three lines %t* = 1 - 0.5 c* %t* = [t* / c*] c* %t* = [(t* + 0,18) / c*] c* - 0,18 %cut point S1 for nt=0,18: %c*s1 = 1 /[ t*F / c*F + 0,5 ] %cut point S2 for n=0,18: %c*s1 = (1 + nt) / [ (t*F + nt) / c*F + 0,5 ] %special case lab*cFa=0 and n=0,18 /nt 0.18 def lab*cFa 0 eq { %lab*cFa=0,#0 /c*S1 0 def /c*S2 0 def } %lab*cFa=0 { %lab*cFa#0 /c*S1 1 lab*tFa lab*cFa div 0.5 add div def /c*S2 1 nt add lab*tFa nt add lab*cFa div 0.5 add div def } ifelse %lab*cFa=0,#0 /c4*Fa c41*Fa c41*Fa c*S1 c*S2 sub mul sub def /m4*Fa m41*Fa m41*Fa c*S1 c*S2 sub mul sub def /y4*Fa y41*Fa y41*Fa c*S1 c*S2 sub mul sub 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 trans_rgb3*_cmyn6*ioL 'zm60'CMYN559LT.PS %********************************************************************* %BEG 'zm60'COLM57_590415LT.PS 20080601 ColSpx 0 eq {%ColSpx=0 xcharti 1 ge {%xcharti>=1 'zm60'COLM57LT.PS cmy0* 20080601 colorm 0 eq {%BEG colorm=0 /setrgbcolor {/v* exch def /l* exch def /o* exch def %standard cmy0* for input /c4*Fa 1 o* sub def /m4*Fa 1 l* sub def /y4*Fa 1 v* sub def /n4*Fa 0 def c4*Fa m4*Fa y4*Fa n4*Fa setcmyknew } def /setgray {dup dup /v* exch def /l* exch def /o* exch def %standard cmy0* for input /c4*Fa 1 o* sub def /m4*Fa 1 l* sub def /y4*Fa 1 v* sub def /n4*Fa 0 def c4*Fa m4*Fa y4*Fa n4*Fa setcmyknew } def /setcmykcolor {/n*n exch def /y*n exch def /m*n exch def /c*n exch def %standard cmy0* for input n*n 0 eq {/o* 1 c*n sub def /l* 1 m*n sub def /v* 1 y*n sub def /i* 0 def } {/o* 1 n*n sub def /l* 1 n*n sub def /v* 1 n*n sub def /i* 0 def } ifelse /c4*Fa 1 o* sub def /m4*Fa 1 l* sub def /y4*Fa 1 v* sub def /n4*Fa 0 def c4*Fa m4*Fa y4*Fa n4*Fa setcmyknew } def }%END colorm=0 {%BEG colorm=1 /setrgbcolor {/b exch def /g exch def /r exch def /IMODE 0 def r g b rgb_LAB_Interp_olv*ioL /c4*Fa 1 o* sub def /m4*Fa 1 l* sub def /y4*Fa 1 v* sub def /n4*Fa 0 def c4*Fa m4*Fa y4*Fa n4*Fa setcmyknew } def /setgray {/w*w exch def /r w*w def /g w*w def /b w*w def /IMODE 0 def r g b rgb_LAB_Interp_olv*ioL /c4*Fa 1 o* sub def /m4*Fa 1 l* sub def /y4*Fa 1 v* sub def /n4*Fa 0 def c4*Fa m4*Fa y4*Fa n4*Fa setcmyknew } def /setcmykcolor {/n*n exch def /y*n exch def /m*n exch def /c*n exch def %standard cmy0* or 000n* for input n*n 0 eq {/r 1 c*n sub def /g 1 m*n sub def /b 1 y*n sub def} {/r 1 n*n sub def /g 1 n*n sub def /b 1 n*n sub def} ifelse /IMODE 0 def r g b rgb_LAB_Interp_olv*ioL /c4*Fa 1 o* sub def /m4*Fa 1 l* sub def /y4*Fa 1 v* sub def /n4*Fa 0 def c4*Fa m4*Fa y4*Fa n4*Fa setcmyknew } def } ifelse %END colorm=1 }%END %xcharti>=1 {%BEG %xcharti=0 /setrgbcolor {/v* exch def /l* exch def /o* exch def /c4*Fa 1 o* sub def /m4*Fa 1 l* sub def /y4*Fa 1 v* sub def /n4*Fa 0 def o* l* v* slrgbcolor } def /setgray {dup dup /v* exch def /l* exch def /o* exch def /c4*Fa 1 o* sub def /m4*Fa 1 l* sub def /y4*Fa 1 v* sub def /n4*Fa 0 def o* slgray } def /setcmykcolor {/n*n exch def /y*n exch def /m*n exch def /c*n exch def n*n 0 eq {/o* 1 c*n sub def /l* 1 m*n sub def /v* 1 y*n sub def /n4*Fa 0 def} {/o* 1 def /l* 1 def /v* 1 def /n4*Fa n*n def} ifelse /c4*Fa 1 o* sub def /m4*Fa 1 l* sub def /y4*Fa 1 v* sub def c4*Fa m4*Fa y4*Fa n4*Fa slcmykcolor } def } ifelse %END %xcharti=0 'zm60'COLM57LT.PS cmy0* 20080601 } if %ColSpx=0 %********************************************************************* ColSpx 1 eq {%ColSpx=1 xcharti 1 ge {%xcharti>=1 'zm60'COLM559LT.PS cmyn6* 20080201 colorm 0 eq {%BEG colorm=0 /olvtrans 1 def %changes olv* to olvk* /setrgbcolor {/v* exch def /l* exch def /o* exch def %needs olv* for input trans_rgb3*_cmyn6*ioL %produces cmyn6*ioL as output c4*Fa m4*Fa y4*Fa n4*Fa setcmyknew } def /setgray {/w*w exch def /v* w*w def /l* w*w def /o* w*w def %needs olv* for input trans_rgb3*_cmyn6*ioL %produces cmyn6*ioL as output c4*Fa m4*Fa y4*Fa n4*Fa setcmyknew } def /setcmykcolor {/n*n exch def /y*n exch def /m*n exch def /c*n exch def %standard cmy0* or 000n* for input n*n 0 eq {/o* 1 c*n sub def /l* 1 m*n sub def /v* 1 y*n sub def} {/o* 1 n*n sub def /l* 1 n*n sub def /v* 1 n*n sub def} ifelse %needs olv* for input trans_rgb3*_cmyn6*ioL %produces cmyn6*ioL as output c4*Fa m4*Fa y4*Fa n4*Fa setcmyknew } def }%END colorm=0 {%BEG colorm=1 /olvtrans 0 def %no change of olv* /setrgbcolor {/b exch def /g exch def /r exch def /IMODE 0 def r g b rgb_LAB_Interp_olv*ioL %needs olv* for input trans_rgb3*_cmyn6*ioL %produces cmyn6*ioL as output c4*Fa m4*Fa y4*Fa n4*Fa setcmyknew } def /setgray {/w*w exch def /r w*w def /g w*w def /b w*w def /IMODE 0 def r g b rgb_LAB_Interp_olv*ioL %needs olv* for input trans_rgb3*_cmyn6*ioL %produces cmyn6*ioL as output c4*Fa m4*Fa y4*Fa n4*Fa setcmyknew } def /setcmykcolor {/n*n exch def /y*n exch def /m*n exch def /c*n exch def %standard cmy0* or 000n* for input n*n 0 eq {/r 1 c*n sub def /g 1 m*n sub def /b 1 y*n sub def} {/r 1 n*n sub def /g 1 n*n sub def /b 1 n*n sub def} ifelse /IMODE 0 def r g b rgb_LAB_Interp_olv*ioL %needs olv* for input trans_rgb3*_cmyn6*ioL %produces cmyn6*ioL as output c4*Fa m4*Fa y4*Fa n4*Fa setcmyknew } def } ifelse %END colorm=1 }%END %xcharti>=0 {%BEG %xcharti=0 /setrgbcolor {/v* exch def /l* exch def /o* exch def /c4*Fa 1 o* sub def /m4*Fa 1 l* sub def /y4*Fa 1 v* sub def /n4*Fa 0 def o* l* v* slrgbcolor } def /setgray {dup dup /v* exch def /l* exch def /o* exch def /c4*Fa 1 o* sub def /m4*Fa 1 l* sub def /y4*Fa 1 v* sub def /n4*Fa 0 def o* slgray } def /setcmykcolor {/n*n exch def /y*n exch def /m*n exch def /c*n exch def n*n 0 eq {/o* 1 c*n sub def /l* 1 m*n sub def /v* 1 y*n sub def /n4*Fa 0 def} {/o* 1 def /l* 1 def /v* 1 def /n4*Fa n*n def} ifelse /c4*Fa 1 o* sub def /m4*Fa 1 l* sub def /y4*Fa 1 v* sub def c4*Fa m4*Fa y4*Fa n4*Fa slcmykcolor } def } ifelse %END %xcharti=0 'zm60'COLM559LT.PS cmyn6* 20080201 } if %ColSpx=1 %*************************************************************** ColSpx 2 eq {%ColSpx=2 xcharti 1 ge {%xcharti>=1 'zm60'COLM58LT.PS cmyn4* 20080601 colorm 0 eq {%BEG colorm=0 /setrgbcolor {/v* exch def /l* exch def /o* exch def %needs olv* for input trans_rgb3*_cmyn4*ioL %produces cmyn4*ioL as output c4*Fa m4*Fa y4*Fa n4*Fa setcmyknew } def /setgray {/w*w exch def /v* w*w def /l* w*w def /o* w*w def %needs olv* for input trans_rgb3*_cmyn4*ioL %produces cmyn4*ioL as output c4*Fa m4*Fa y4*Fa n4*Fa setcmyknew } def /setcmykcolor {/n*n exch def /y*n exch def /m*n exch def /c*n exch def %standard cmy0* or 000n* for input n*n 0 eq {/o* 1 c*n sub def /l* 1 m*n sub def /v* 1 y*n sub def} {/o* 1 n*n sub def /l* 1 n*n sub def /v* 1 n*n sub def} ifelse %needs olv* for input trans_rgb3*_cmyn4*ioL %produces cmyn4*ioL as output c4*Fa m4*Fa y4*Fa n4*Fa setcmyknew } def }%END colorm=0 {%BEG colorm=1 /setrgbcolor {/b exch def /g exch def /r exch def /IMODE 0 def r g b rgb_LAB_Interp_olv*ioL %needs olv* for input trans_rgb3*_cmyn4*ioL %produces cmyn4*ioL as output c4*Fa m4*Fa y4*Fa n4*Fa setcmyknew } def /setgray {/w*w exch def /r w*w def /g w*w def /b w*w def /IMODE 0 def r g b rgb_LAB_Interp_olv*ioL %needs olv* for input trans_rgb3*_cmyn4*ioL %produces cmyn4*ioL as output c4*Fa m4*Fa y4*Fa n4*Fa setcmyknew } def /setcmykcolor {/n*n exch def /y*n exch def /m*n exch def /c*n exch def %standard cmy0* or 000n* for input n*n 0 eq {/r 1 c*n sub def /g 1 m*n sub def /b 1 y*n sub def} {/r 1 n*n sub def /g 1 n*n sub def /b 1 n*n sub def} ifelse /IMODE 0 def r g b rgb_LAB_Interp_olv*ioL %needs olv* for input trans_rgb3*_cmyn4*ioL %produces cmyn4*ioL as output c4*Fa m4*Fa y4*Fa n4*Fa setcmyknew } def } ifelse %END colorm=1 }%END %xcharti>=0 {%BEG %xcharti=0 /setrgbcolor {/v* exch def /l* exch def /o* exch def /c4*Fa 1 o* sub def /m4*Fa 1 l* sub def /y4*Fa 1 v* sub def /n4*Fa 0 def o* l* v* slrgbcolor } def /setgray {dup dup /v* exch def /l* exch def /o* exch def /c4*Fa 1 o* sub def /m4*Fa 1 l* sub def /y4*Fa 1 v* sub def /n4*Fa 0 def o* slgray } def /setcmykcolor {/n*n exch def /y*n exch def /m*n exch def /c*n exch def n*n 0 eq {/o* 1 c*n sub def /l* 1 m*n sub def /v* 1 y*n sub def /n4*Fa 0 def} {/o* 1 def /l* 1 def /v* 1 def /n4*Fa n*n def} ifelse /c4*Fa 1 o* sub def /m4*Fa 1 l* sub def /y4*Fa 1 v* sub def c4*Fa m4*Fa y4*Fa n4*Fa slcmykcolor } def } ifelse %END %xcharti=0 'zm60'COLM58LT.PS cmyn4* 20080601 } if %ColSpx=2 %************************************************************* ColSpx 3 eq {%ColSpx=3 xcharti 1 ge {%xcharti>=1 'zm60'COLM559LT.PS cmyn5* 20080601 colorm 0 eq {%BEG colorm=0 /setrgbcolor {/v* exch def /l* exch def /o* exch def %needs olv* for input trans_rgb3*_cmyn5*ioL %produces cmyn5*ioL as output c4*Fa m4*Fa y4*Fa n4*Fa setcmyknew } def /setgray {/w*w exch def /v* w*w def /l* w*w def /o* w*w def %needs olv* for input trans_rgb3*_cmyn5*ioL %produces cmyn5*ioL as output c4*Fa m4*Fa y4*Fa n4*Fa setcmyknew } def /setcmykcolor {/n*n exch def /y*n exch def /m*n exch def /c*n exch def %standard cmy0* or 000n* for input n*n 0 eq {/o* 1 c*n sub def /l* 1 m*n sub def /v* 1 y*n sub def} {/o* 1 n*n sub def /l* 1 n*n sub def /v* 1 n*n sub def} ifelse %needs olv* for input trans_rgb3*_cmyn5*ioL %produces cmyn5*ioL as output c4*Fa m4*Fa y4*Fa n4*Fa setcmyknew } def }%END colorm=0 {%BEG colorm=1 /olvtrans 0 def %no change of olv* /setrgbcolor {/b exch def /g exch def /r exch def /IMODE 0 def r g b rgb_LAB_Interp_olv*ioL %needs olv* for input trans_rgb3*_cmyn5*ioL %produces cmyn5*ioL as output c4*Fa m4*Fa y4*Fa n4*Fa setcmyknew } def /setgray {/w*w exch def /r w*w def /g w*w def /b w*w def /IMODE 0 def r g b rgb_LAB_Interp_olv*ioL %needs olv* for input trans_rgb3*_cmyn5*ioL %produces cmyn5*ioL as output c4*Fa m4*Fa y4*Fa n4*Fa setcmyknew } def /setcmykcolor {/n*n exch def /y*n exch def /m*n exch def /c*n exch def %standard cmy0* or 000n* for input n*n 0 eq {/r 1 c*n sub def /g 1 m*n sub def /b 1 y*n sub def} {/r 1 n*n sub def /g 1 n*n sub def /b 1 n*n sub def} ifelse /IMODE 0 def r g b rgb_LAB_Interp_olv*ioL %needs olv* for input trans_rgb3*_cmyn5*ioL %produces cmyn5*ioL as output c4*Fa m4*Fa y4*Fa n4*Fa setcmyknew } def } ifelse %END colorm=1 }%END %xcharti>=0 {%BEG %xcharti=0 /setrgbcolor {/v* exch def /l* exch def /o* exch def /c4*Fa 1 o* sub def /m4*Fa 1 l* sub def /y4*Fa 1 v* sub def /n4*Fa 0 def o* l* v* slrgbcolor } def /setgray {dup dup /v* exch def /l* exch def /o* exch def /c4*Fa 1 o* sub def /m4*Fa 1 l* sub def /y4*Fa 1 v* sub def /n4*Fa 0 def o* slgray } def /setcmykcolor {/n*n exch def /y*n exch def /m*n exch def /c*n exch def n*n 0 eq {/o* 1 c*n sub def /l* 1 m*n sub def /v* 1 y*n sub def /n4*Fa 0 def} {/o* 1 def /l* 1 def /v* 1 def /n4*Fa n*n def} ifelse /c4*Fa 1 o* sub def /m4*Fa 1 l* sub def /y4*Fa 1 v* sub def c4*Fa m4*Fa y4*Fa n4*Fa slcmykcolor } def } ifelse %END %xcharti=0 'zm60'COLM559LT.PS cmyn5* 20080601 } if %ColSpx=3 } bind def %BEG Procedure ColSep*ioL ColourSeparation for NP-file 20080601 %************************************************************* /lab*hFa_to_lab*eFa_lab*uFa*ioL { %BEG Procedure lab*hFa_to_lab*eFa_lab*uFa*ioL %transfer from lab*hFa to lab*eFa to lab*uFa %360 steps used in both cases for the range 0 <= lab*(hM/eM) <= 1 %main equations %col_ange = i*pae 90 mul + alphae 90 mul %alphae = [col_angh - LAB*Hx(n)]/[LAB*Hx(n+1) - LAB*Hx(n)] %col_angh = alphae [LAB*Hx(n+1) - LAB*Hx(n)] + LAB*Hx(n /col_angh lab*hFa 360 mul def /IEND 0 def col_angh 0 ge col_angh LAB*Hx 8 get lt and {/col_angh col_angh 360 add def} if 0 1 3 {/je exch def /je8 je 8 add def %je=0,3 col_angh LAB*Hx je8 get ge col_angh LAB*Hx je8 1 add get lt and IEND 0 eq and {/alphae col_angh LAB*Hx je8 get sub LAB*Hx je8 1 add get LAB*Hx je8 get sub div def je 0 eq {/col_ange 0.00 alphae add 90 mul def /u*1 (r) def /u*2 (j) def} if je 1 eq {/col_ange 1.00 alphae add 90 mul def /u*1 (j) def /u*2 (g) def} if je 2 eq {/col_ange 2.00 alphae add 90 mul def /u*1 (g) def /u*2 (b) def} if je 3 eq {/col_ange 3.00 alphae add 90 mul def /u*1 (b) def /u*2 (r) def} if /u*zi alphae 99 mul cvi def /IEND 1 def exit } if } for %je=0,3 IEND 0 eq {TBG 500 1000 moveto (IEND=0 Failure lab*hM_to_lab*eM) show} if /lab*eFa col_ange 360 div def } bind def %END Procedure lab*hFa_to_lab*eFa_lab*uFa*ioL %***************************************************************************** %END /Eg93/10L/L10-7N.EPS, identical for NP-(*ioL), FP-files (*ioG) 20080701 %***************************************************************************** /rec %x, y width heigth {/heigth exch def /width exch def moveto width 0 rlineto 0 heigth rlineto width neg 0 rlineto closepath } bind def /rem %x0, y0 width heigth {/heigth exch def /width exch def /y0 exch def /x0 exch def x0 width 0.5 mul add y0 heigth 0.5 mul add moveto width 0 rlineto 0 heigth rlineto width neg 0 rlineto closepath } bind def /A4quer {598 0 tl 90 rotate} def %%ENDProlog gsave /lanind 0 def /lantex [(G) (E) (S) (N) (I) (J) (M)] def /showde {0 lanind eq {show} {pop} ifelse} bind def /showen {1 lanind eq {show} {pop} ifelse} bind def /showes {2 lanind eq {show} {pop} ifelse} bind def /showfr {3 lanind eq {show} {pop} ifelse} bind def /showit {4 lanind eq {show} {pop} ifelse} bind def /showjp {5 lanind eq {show} {pop} ifelse} bind def /showm {6 lanind eq {show} {pop} ifelse} bind def /lanindg where {pop /lanind1 lanindg def /lanind2 lanindg def} {/lanind1 0 def /lanind2 0 def} ifelse /colormg where {pop /colorm1 colormg def /colorm2 colormg def} {/colorm1 0 def /colorm2 0 def} ifelse /xcolorg where {pop /xcolor1 xcolorg def /xcolor2 xcolorg def} {/xcolor1 0 def /xcolor2 0 def} ifelse /xchartg where {pop /xchart1 xchartg def /xchart2 xchartg def} {/xchart1 0 def /xchart2 0 def} ifelse /lanind lanind1 def %lanind1 1 lanind2 {/lanind exch def %output showpage /colorm colorm1 def %colorm1 1 colorm2 {/colorm exch def %output showpage /xcolor xcolor1 def %xcolor1 1 xcolor2 {/xcolor exch def %output showpage /xchart xchart1 def %xchart1 1 xchart2 {/xchart exch def %output showpage /GSS$ where {pop /LSS$ GSS$ def} {/LSS$ (1) def} ifelse /GSC$ where {pop /LSC$ GSC$ def} {/LSC$ (N) def} ifelse /GSX$ where {pop /LSX$ GSX$ def} {/LSX$ (0) def} ifelse /GSY$ where {pop /LSY$ GSY$ def} {/LSY$ (0) def} ifelse /GEX$ where {pop /LEX$ GEX$ def} {/LEX$ (P.PS./PDF) def} ifelse /GEY$ where {pop /LEY$ GEY$ def} {/LEY$ (P.DAT) def} ifelse /IMES where {pop %/IMES IMES def } {/IMES 0 def} ifelse /xchartg where {pop /xchartx xchartg def} {/xchartx 0 def} ifelse /colormg where {pop /colorm colormg def} {/colorm 0 def} ifelse /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.15 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 /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 /ColNames 30 array def /ColNames [(O) (Y) (L) (C) (V) (M) (N) (W) (R) (J) (G) (B) (r00j) (r25j) (r50j) (r75j) (j00g) (j25g) (j50g) (j75g) (g00b) (g25b) (g50b) (g75b) (b00r) (b25r) (b50r) (b75r) (R = r00j) (r25j) ] def /AngrgbTabt 68 array def /AngrgbTabt [%31 angles = 360/22,5 + 1 = 16 + 1 000.0 1.00 0.00 0.00 %r00j 022.5 1.00 0.25 0.00 045.0 1.00 0.50 0.00 %r50j 067.5 1.00 0.75 0.00 090.0 1.00 1.00 0.00 %j00g 112.5 0.75 1.00 0.00 135.0 0.50 1.00 0.00 %j50g 157.5 0.25 1.00 0.00 180.0 0.00 1.00 0.00 %g00b 202.5 0.00 1.00 0.50 225.0 0.00 1.00 1.00 %g50b 247.5 0.00 0.50 1.00 270.0 0.00 0.00 1.00 %b00r 292.5 0.50 0.00 1.00 315.0 1.00 0.00 1.00 %b50r 337.5 1.00 0.00 0.50 360.0 1.00 0.00 0.00 %r00j ] 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 0 def} ifelse /ISOU*ioG where {pop /ISOU*ioL ISOU*ioG def} {/ISOU*ioL 0 def} ifelse /ISRL*ioL 0 def /ISIO*ioL ISIN*ioL def /ISIO*ioG where {pop /ISIO*ioG ISIO*ioL def} if /ISRL*ioG where {pop /ISRL*ioG ISRL*ioL def} if /xcharti xchartx 18 idiv def %needed for steering output in ColSep*io /xcharta xchartx xcharti 18 mul sub def /xcharts0 09 def /xcharts xcharta xcharts0 add def %00 1 09 {/xcharti exch def %BEG xcharti=00,09 0 setgray %09 1 26 {/xcharts exch def %BEG xcharts=09,26 /xchartp xcharti 18 mul xcharts xcharts0 sub add def gsave 16 16 translate 0.01 MM 1.15 mul dup scale colorm 1 eq {LAB*ioG ColSep*ioG} {LAB*ioL ColSep*ioL} ifelse TK 0 setgray %200 -300 moveto (Eg930-7) show colorm 0 eq {(A, ) show} {(F, ) show} ifelse %(Page ) showen (Seite ) showde xchartp 1 add cvishow (/180) show xcharti 0 eq {/ausz 8 def /xchartt (A) def} if xcharti 1 eq {/ausz 8 def /xchartt (F) def} if xcharti 2 eq {/ausz 8 def /xchartt (F) def} if xcharti 3 eq {/ausz 8 def /xchartt (F) def} if xcharti 4 eq {/ausz 8 def /xchartt (F) def} if xcharti 5 eq {/ausz 8 def /xchartt (F) def} if xcharti 6 eq {/ausz 8 def /xchartt (F) def} if xcharti 7 eq {/ausz 8 def /xchartt (F) def} if xcharti 8 eq {/ausz 8 def /xchartt (F) def} if xcharti 9 eq {/ausz 8 def /xchartt (F) def} if /faktsc 1.0 def %/faktsc 3.0 def 0.5 setgray 0 0 moveto 24500 faktsc mul 0 rlineto 0 17000 faktsc mul rlineto 24500 faktsc mul neg 0 rlineto closepath fill /xchart xcharts xcharts0 sub def xcharts 25 le {%xcharts<=25 0 1 1 {/ibild exch def %ibild=0,1 0.0 setgray xcharts 9 eq {%xcharts=9 ibild 0 eq { 1900 1700 translate} if ibild 1 eq {13800 1700 translate} if 1 setgray TBG /xtext0 -1700 def /xtext1 -1200 def ibild 0 eq { %ibild=0 xtext0 14900 moveto (Input and output:) showen (Ein und Ausgabe:) showde ISRL*ioL 0 eq {%ISRL*ioL=0 xtext0 14500 moveto ISIO*ioL 0 eq {/TSYSIOa (FRS15_90aM) def /TSYSIO (FRS15_90M) def (Colorimetric Printer Reflective System ) showen (Farbmetrisches Drucker\255Reflektiv\255System ) showde} if } if %ISRL*ioL=0 TSYSIOa show TBG xtext0 14100 moveto (data for any colour:) showen (Daten f\374r jede Farbe:) showde xtext1 13700 moveto TBIG (lab*tch*) show TBG ( and ) showen ( und ) showde TBIG (lab*icu*) show xtext0 13300 moveto TBG (elementary hue text: ) showen (Elementar\255Bunttontext: ) showde xtext1 12900 moveto TBIG (u*) show TBG ( = ) show xchart 0 eq {%xchart0,#0 (16 hues) showen (16 Buntt\366ne) showde TBIG ( r00j, r25j, ..., b75r) show } {xcharts 5 le {/i xcharts def}{/i xcharts 2 add def} ifelse TBIG ColNames i get show } ifelse %xchart0,#0 xtext0 12500 moveto TBG (contrast reduction factor: ) showen (Kontrastreduzierungsfaktor: ) showde xtext1 12100 moveto xtext1 12100 moveto TBIG (c) show TBM 0 -130 rmoveto (R) show 0 130 rmoveto TBG ( = ) show cfakt cvsshow2 } if %ibild=0 %BEG CIELAB-Hue Circle -1200 -1500 translate /xym 4 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 -650 xym mul 0 moveto 650 xym mul 0 lineto stroke 0 -750 xym mul moveto 0 750 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 /xs3 1400 def /xd3 xs3 2 div def CBKK 0 1 15 {/j exch def %j=0,15 /i j 12 add def /L*Fa LAB*a i 3 mul get def %LAB*-Data of Elemenatry colors! /A*Fa LAB*a i 3 mul 1 add get def /B*Fa LAB*a i 3 mul 2 add get def proc_LAB*Fa_LAB*MaNTABl_olvi3*cmyn3*Ma*ioL %calculates olv3*Ma used in later loop /o*e o3*Ma def %olv*e device data for elementary colours /l*e l3*Ma def /v*e v3*Ma def /r*e AngrgbTabt j 4 mul 1 add get def %rgb*e data of elementary colours /g*e AngrgbTabt j 4 mul 2 add get def /b*e AngrgbTabt j 4 mul 3 add get def r*e g*e b*e setrgbcolor %use elementary colour data for calculations /o*Fa0 o* def /l*Fa0 l* def /v*Fa0 v* def /c4*Fa0 c4*Fa def /m4*Fa0 m4*Fa def /y4*Fa0 y4*Fa def /n4*Fa0 n4*Fa def /r*x o*e def /g*x l*e def /b*x v*e def r*x g*x b*x setrgbcolor %use olv*e device data for elementary output /xpos rx AngrgbTabt j 4 mul get cos mul def /ypos rx AngrgbTabt j 4 mul get sin mul def /xa xpos xd3 sub def /ya ypos xd3 sub def xa ya xs3 xs3 rec fill xcharti 1 le {1 r*x sub 1 g*x sub 1 b*x sub 0 setcmykcolor xa ya xs3 0.5 mul dup rem fill} if xcharti 2 ge {1 1 1 setrgbcolor xa ya xs3 0.5 mul dup rem fill} if xcharti 0 eq {%xcharti=0 [100 300] 0 setdash r*x 0 eq g*x 0 eq and b*x 0 eq and {1 setgray} {0 setgray} ifelse xa ya xs3 0.5 mul dup rem stroke [ ] 0 setdash } if %xcharti=0 xcharti 2 ge {%xcharti>=2 0 0 0 setrgbcolor /xan xa xs3 0.30 mul add def /yan ya xs3 0.12 mul add def xan yan 740 add moveto ibild 0 eq %ibild=0 xcharti 9 ne and {ColNames j 12 add get show } if %ibild=0 ibild 1 eq {j 9 le {(0) show j cvishow} {j cvishow} ifelse } if } if %xcharti>=2 ibild 0 eq {%ibild=0 xcharti 2 eq {xan yan 560 add moveto r*x cvsshow2 xan yan 380 add moveto g*x cvsshow2 xan yan 200 add moveto b*x cvsshow2 } if xcharti 3 eq {/o* r*x def /l* g*x def /v* b*x def /cmyolv*io_to_LAB*ioG where {pop cmyolv*io_to_LAB*ioG} {cmyolv*io_to_LAB*ioL} ifelse xan yan 560 add moveto LAB*LFa cvsshow1 xan yan 380 add moveto LAB*AFa cvsshow1 xan yan 200 add moveto LAB*BFa cvsshow1 } if xcharti 4 eq {/o* r*x def /l* g*x def /v* b*x def /cmyolv*io_to_LAB*ioG where {pop cmyolv*io_to_LAB*ioG} {cmyolv*io_to_LAB*ioL} ifelse xan yan 560 add moveto LAB*LFa cvsshow1 xan yan 380 add moveto LAB*CFa cvsshow1 xan yan 200 add moveto LAB*HFa cvishow } if xcharti 5 eq {/o* r*x def /l* g*x def /v* b*x def /cmyolv*io_to_LAB*ioG where {pop cmyolv*io_to_LAB*ioG} {cmyolv*io_to_LAB*ioL} ifelse xan yan 560 add moveto lab*tFa cvsshow2 xan yan 380 add moveto lab*cFa cvsshow2 xan yan 200 add moveto lab*hFa cvsshow2 } if xcharti 6 eq {/o* r*x def /l* g*x def /v* b*x def /cmyolv*io_to_LAB*ioG where {pop cmyolv*io_to_LAB*ioG} {cmyolv*io_to_LAB*ioL} ifelse xan yan 560 add moveto 1 lab*nFa sub cvsshow2 xan yan 380 add moveto lab*cFa cvsshow2 xan yan 200 add moveto ColNames j 12 add get show } if xcharti 7 eq { /o* r*x def /l* g*x def /v* b*x def /cmyolv*io_to_LAB*ioG where {pop cmyolv*io_to_LAB*ioG} {cmyolv*io_to_LAB*ioL} ifelse /l*CIEr LAB*LFa L*Nior sub L*Wior L*Nior sub div def /a*sr A*Wior A*Nior sub l*CIEr mul def /b*sr B*Wior B*Nior sub l*CIEr mul def /LAB*LFx LAB*LFa def /LAB*AFx LAB*AFa A*Nior add a*sr add def /LAB*BFx LAB*BFa B*Nior add b*sr add def xan yan 560 add moveto LAB*LFx cvsshow1 xan yan 380 add moveto LAB*AFx cvsshow1 xan yan 200 add moveto LAB*BFx cvsshow1 } if xcharti 8 eq {xan yan 560 add moveto o*Fa0 cvsshow2 xan yan 380 add moveto l*Fa0 cvsshow2 xan yan 200 add moveto v*Fa0 cvsshow2 } if xcharti 9 eq {xan yan 740 add moveto c4*Fa0 cvsshow2 xan yan 560 add moveto m4*Fa0 cvsshow2 xan yan 380 add moveto y4*Fa0 cvsshow2 xan yan 200 add moveto n4*Fa0 cvsshow2 } if } if %ibild=0 ibild 1 eq xcharti 2 ge and {%ibild=1, %xcharti>=2 0 0 0 setrgbcolor /o* r*x def /l* g*x def /v* b*x def /cmyolv*io_to_LAB*ioG where {pop cmyolv*io_to_LAB*ioG} {cmyolv*io_to_LAB*ioL} ifelse /xan xa xs3 0.30 mul add def /yan ya xs3 0.12 mul add def xan yan 560 add moveto LAB*LFa cvsshow1 xan yan 380 add moveto LAB*CFa cvsshow1 xan yan 200 add moveto LAB*HFa cvishow } if %ibild=1 %xcharti>=2 } for %j=0,15 TBG 1 1 1 setrgbcolor 2300 1000 moveto (yellowish) showen ( gelblich) showde -3600 800 moveto (yellowish) showen ( gelblich) showde 2600 -1150 moveto ( bluish) showen (bl\344ulich) showde -3800 -1150 moveto ( bluish) showen (bl\344ulich) showde -1600 3300 moveto (greenish) showen (gr\374nlich) showde -1600 -3500 moveto (greenish) showen (gr\374nlich) showde 700 3300 moveto ( redish) showen (r\366tlich) showde 700 -3500 moveto ( redish) showen (r\366tlich) showde -4000 -100 moveto (Green G) showen (Gr\374n G) showde 3000 -100 moveto (Red R) showen (Rot R) showde -400 3700 moveto (Yellow J) showen (Gelb J) showde -400 -3900 moveto (Blue B) showen (Blau B) showde -1400 xym mul -1400 xym mul translate 1200 1500 translate %END CIELAB-Hue Circle %CIELAB-Table /xDev 11000 def /xEle -09400 def /xtop 800 def ibild 0 eq {5600 xDev add }{5200 xEle add} ifelse 9600 xtop add translate /yhoe 6300 def ibild 0 eq {/ymi0 -50 def} {/ymi0 -1400 def} ifelse 15 setlinewidth 1.0 setgray 0 ymi0 moveto 5300 0 rlineto 0 4800 ymi0 sub rlineto -5300 0 rlineto closepath fill 0.0 setgray 0 ymi0 moveto 5300 0 rlineto 0 4800 ymi0 sub rlineto -5300 0 rlineto closepath stroke /nshow {300 /Times-ISOL1 FS show} bind def /kshow {300 /TimesI-ISOL1 FS show} bind def /bshow {300 /TimesB-ISOL1 FS show} bind def /jshow {300 /TimesBI-ISOL1 FS show} bind def /sshow {300 /Symbol FS show} bind def /ishow {220 /Times-ISOL1 FS -00 -50 rmoveto show 00 50 rmoveto} bind def /eshow {220 /Times-ISOL1 FS 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 5200 0 rlineto stroke %Titeltext S1 4550 moveto ibild 0 eq {xcharti 7 eq {TSYSIO} {TSYSIOa} ifelse bshow} {TSYSIOa bshow} ifelse lanind 1 eq {(;) bshow xcharti 7 lt ibild 0 ne or {( adapted (a)) bshow} if ( CIELAB data) bshow} if lanind 0 eq {(;) bshow xcharti 7 lt ibild 0 ne or {( adaptierte) bshow} if ( CIELAB\255Daten) bshow} if S2 000 add 4250 moveto (L*=L*) kshow xcharti 7 lt ibild 0 ne or {(a) ishow} if S3 100 add 4250 moveto (a*) kshow xcharti 7 lt ibild 0 ne or {(a) ishow} if S4 000 add 4250 moveto (b*) kshow xcharti 7 lt ibild 0 ne or {(a) ishow} if S5 100 sub 4250 moveto (C*) kshow (ab) ishow xcharti 7 lt ibild 0 ne or {(,a) ishow} if S6 200 sub 4250 moveto (h*) kshow (ab) ishow xcharti 7 lt ibild 0 ne or {(,a) ishow} if ibild 0 eq {%BEG ibild=0 0 1 11 {/ic exch def %ic=0,11 S1 20 add yu2 yd ic mul sub moveto ColNames ic get nshow ic 8 ge {(CIE) ishow}{(M) ishow xcharti 7 lt {(a) ishow} if} ifelse ( ) nshow } for %ic=0,11 0 1 11 {/i exch def %i=0,11 /ya yu2 yd i mul sub def xcharti 7 lt { %xcharti=7,#7 /L*Fa LAB*a i 3 mul get def /A*Fa LAB*a i 3 mul 1 add get def /B*Fa LAB*a i 3 mul 2 add get def /C*Fa A*Fa dup mul B*Fa dup mul add sqrt def /H*Fa B*Fa A*Fa 0.0001 add atan def S2 350 add ya moveto L*Fa cvsshow2 S3 100 add ya moveto A*Fa cvsshow2 S4 100 add ya moveto B*Fa cvsshow2 S5 ya moveto C*Fa cvsshow2 S6 ya moveto H*Fa cvishow } %xcharti=7 { %xcharti#7 /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=7,#7 } for %i=0,11 }%END ibild=0 {%BEG ibild=1 12 1 27 {/ic exch def %ic=12,27 S1 20 add yu2 yd ic 12 sub mul sub moveto ColNames ic get nshow } for %ic=12,27 12 1 27 {/i exch def %i=12,21 /ya yu2 yd i 12 sub mul sub def /L*Fa LAB*a i 3 mul get def /A*Fa LAB*a i 3 mul 1 add get def /B*Fa LAB*a i 3 mul 2 add get def proc_LAB*Fa_LAB*MaNTABl_olvi3*cmyn3*Ma*ioL %calculates LAB*Ma /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 350 add ya moveto L*Ma cvsshow2 S3 100 add ya moveto A*Ma cvsshow2 S4 100 add ya moveto B*Ma cvsshow2 S5 ya moveto C*Ma cvsshow2 S6 ya moveto H*Ma cvishow } for %i=8,21 } ifelse %END ibild=1 ibild 0 eq {-5600 xDev sub}{-5200 xEle sub} ifelse -9600 xtop sub translate %CIELAB-Diagram ibild 0 eq { %ibild=0 2700 xDev add 11600 xtop add translate 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 %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 %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 0 1 15 {/jhue exch def %jhue /i 12 jhue add def /L*Fa LAB*a i 3 mul get def /A*Fa LAB*a i 3 mul 1 add get def /B*Fa LAB*a i 3 mul 2 add get def proc_LAB*Fa_LAB*MaNTABl_olvi3*cmyn3*Ma*ioL %calulates LAB*Ma /A*Ma0 A*Ma def /B*Ma0 B*Ma def /o3*Ma0 o3*Ma def /l3*Ma0 l3*Ma def /v3*Ma0 v3*Ma def /r*x o3*Ma0 def /g*x l3*Ma0 def /b*x v3*Ma0 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 %jhue=0,15 } if %xcharts>=6 -1200 -1300 translate -2700 xDev sub -11600 xtop sub translate } if %ibild=0 /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 ibild 1 eq { %ibild=1 /xmtext 2500 def /xms 0 def xmtext 11800 moveto TBG (%Gamut) showen (%Umfang) showde xmtext 11400 moveto TBG (u*) show (rel) ishow TBG ( = ) 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 11000 moveto TBG (%Regularity) showen (%Regularit\344t) showde xmtext 10600 moveto TBG (g*) show (H,rel) ishow TBG ( = ) 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 10200 moveto TBG (g*) show (C,rel) ishow TBG ( = ) show g*Cr cvishow 0 0 0 setrgbcolor TBIG 7700 9200 moveto xcharti 2 ge {(no. ) showen (Nr. ) showde 7700 8800 moveto (LAB*LCH*) show -20 -50 rmoveto TBM (a) show 0 50 rmoveto TBIG } if 0 0 0 setrgbcolor TBIG -12800 9200 moveto xcharti 2 ge xcharti 8 le and {(u*) show} if -12800 8800 moveto xcharti 2 eq {(lab*rgb*) show} if xcharti 3 eq {(LAB*LAB*) show -20 -50 rmoveto TBM (a) show 0 50 rmoveto TBIG} if xcharti 4 eq {(LAB*LCH*) show -20 -50 rmoveto TBM (a) show 0 50 rmoveto TBIG} if xcharti 5 eq {(lab*tch*) show} if xcharti 6 eq {(lab*icu*) show} if xcharti 7 eq {(LAB*LAB*) show} if xcharti 8 eq {(lab*rgb'*) show} if xcharti 9 eq {(LAB*cmyn'*) show} if } if %ibild=1 ibild 1 eq {-13800 -1700 translate} if ibild 0 eq { -1900 -1700 translate} if } if %xcharts=9 xcharts 10 ge {%xcharts>=0 ibild 0 eq { 1900 1700 translate} if ibild 1 eq {13800 1700 translate} if 1.0 setgray 25 setlinewidth -200 000 moveto 10500 0 rlineto stroke 000 -200 moveto 0 11800 rlineto stroke ibild 0 eq {2500 -200 moveto 0 400 rlineto stroke 5000 -200 moveto 0 400 rlineto stroke 7500 -200 moveto 0 400 rlineto stroke} {2000 -200 moveto 0 400 rlineto stroke 4000 -200 moveto 0 400 rlineto stroke 6000 -200 moveto 0 400 rlineto stroke 8000 -200 moveto 0 400 rlineto stroke }ifelse 10000 -200 moveto 0 400 rlineto stroke -200 5000 moveto 400 0 rlineto stroke -200 10000 moveto 400 0 rlineto stroke 000 000 moveto 10000 5000 rlineto -10000 5000 rlineto stroke 09700 -450 sub 000 150 add moveto 450 -150 rlineto -450 -150 rlineto closepath fill 000 150 sub 11000 -450 sub moveto 150 450 rlineto 150 -450 rlineto closepath fill TM %c*, C* ibild 0 eq { %ibild=0 /iy0 -600 def 0 200 sub iy0 moveto (0,00) show 2500 200 sub iy0 moveto (0,25) show 5000 200 sub iy0 moveto (0,50) show 7500 200 sub iy0 moveto (0,75) show 10000 200 sub iy0 moveto (1,00) show } { /iy0 -600 def 0 200 sub iy0 moveto (0,00) show 2000 200 sub iy0 moveto (0,20) show 4000 200 sub iy0 moveto (0,40) show 6000 200 sub iy0 moveto (0,60) show 8000 200 sub iy0 moveto (0,80) show 10000 200 sub iy0 moveto (1,00) show } ifelse %ibild=1 TM %t*, L* ibild 0 eq { %ibild=0,1 /ix0 -1850 def /iy0 200 def ix0 0 iy0 sub moveto (0,00) show ix0 2500 iy0 sub moveto (0,25) show ix0 5000 iy0 sub moveto (0,50) show ix0 7500 iy0 sub moveto (0,75) show ix0 10000 iy0 sub moveto (1,00) show } { /ix0 -1000 def /iy0 200 def ix0 0 iy0 sub moveto (0,00) show ix0 2500 iy0 sub moveto (0,25) show % ix0 5000 iy0 sub moveto (0,50) show ix0 7500 iy0 sub moveto (0,75) show ix0 10000 iy0 sub moveto (1,00) show } ifelse %ibild=0,1 TM i%* ibild 0 eq { %ibild=0,1 /iy0 1550 def 10000 400 sub 5000 iy0 sub moveto TIM (i*) show TM ( = 1,00) show 7500 400 sub 3750 iy0 sub moveto TIM (i*) show TM ( = 0,75) show 5000 400 sub 2500 iy0 sub moveto TIM (i*) show TM ( = 0,50) show 2500 400 sub 1250 iy0 sub moveto TIM (i*) show TM ( = 0,25) show 000 400 sub 00 iy0 sub moveto TIM (i*) show TM ( = 0,00) show } { /iy0 700 def 10000 500 sub 4700 iy0 sub moveto TIM (i*) show TM (=1,00) show 8000 200 sub 4000 iy0 sub moveto TIM (i*) show TM (=0,80) show 6000 200 sub 3000 iy0 sub moveto TIM (i*) show TM (=0,60) show 4000 200 sub 2000 iy0 sub moveto TIM (i*) show TM (=0,40) show 2000 200 sub 1000 iy0 sub moveto TIM (i*) show TM (=0,20) show 000 200 sub -300 iy0 sub moveto TIM (i*) show TM (=0,00) show } ifelse %ibild=0,1 ibild 0 eq {/iy0 2400 def} {/iy0 1400 def} ifelse 10000 0500 sub 4800 iy0 sub moveto -1000 -500 rlineto stroke 10000 2000 sub 3800 iy0 sub moveto TBG (brilliantness) showen (Brillantheit) showde TBIG ( i*) show 10000 0500 sub 4800 iy0 sub moveto -450 -75 rlineto 150 -300 rlineto closepath fill 7200 -1100 moveto TBG (relative chroma) showen (relative Buntheit) showde TBIG ( c*) show TBG /xtext0 -1700 def /xtext1 -1200 def ibild 0 eq { %ibild=0 xtext0 15000 100 sub moveto (Input and output: Colorimetric ) showen (Ein und Ausgabe: Farbmetrisches ) showde ISRL*ioL 0 eq {%ISRL*ioL=0 ISIO*ioL 0 eq {/TSYSIOa (FRS15_90aM) def /TSYSIO (FRS15_90M) def (Printer Reflective System ) showen (Drucker\255Reflektiv\255System ) showde} if ISIO*ioL 1 eq {/TSYSIOa (TLS00a) def (Television Luminous System ) showen (Fernseh\255Licht\255System ) showde} if ISIO*ioL 2 eq {/TSYSIOa (FRS06a) def (Printer Reflective System ) showen (Drucker\255Reflektiv\255System ) showde} if ISIO*ioL 3 eq {/TSYSIOa (TLS18a) def (Television Luminous System ) showen (Fernseh\255Licht\255System ) showde} if ISIO*ioL 4 eq {/TSYSIOa (NLS00a) def (Natural Luminous System ) showen (Nat\374rliches\255Licht\255System ) showde} if ISIO*ioL 5 eq {/TSYSIOa (NRS18a) def (Natural Reflective System ) showen (Nat\374rliches\255Reflektiv\255System ) showde} if ISIO*ioL 6 eq {/TSYSIOa (SRS18a) def (Standard Reflective System ) showen (Standard\255Reflektiv\255System ) showde} if ISIO*ioL 7 eq {/TSYSIOa (TLS70a) def (Television Luminous System ) showen (Fernseh\255Licht\255System ) showde} if } if %ISRL*ioL=0 ISRL*ioL 1 eq {%ISRL*ioL=1 ISIO*ioL 0 eq {/TSYSIOa (TLS00a) def} if ISIO*ioL 1 eq {/TSYSIOa (TLS06a) def} if ISIO*ioL 2 eq {/TSYSIOa (TLS11a) def} if ISIO*ioL 3 eq {/TSYSIOa (TLS18a) def} if ISIO*ioL 4 eq {/TSYSIOa (TLS27a) def} if ISIO*ioL 5 eq {/TSYSIOa (TLS38a) def} if ISIO*ioL 6 eq {/TSYSIOa (TLS52a) def} if ISIO*ioL 7 eq {/TSYSIOa (TLS70a) def} if (Television Luminous System ) showen (Fernseh\255Licht\255System ) showde } if %ISRL*ioL=1 ISRL*ioL 2 eq {%ISRL*ioL=2 ISIO*ioL 0 eq {/TSYSIOa (OLS00a) def} if ISIO*ioL 1 eq {/TSYSIOa (OLS06a) def} if ISIO*ioL 2 eq {/TSYSIOa (OLS11a) def} if ISIO*ioL 3 eq {/TSYSIOa (OLS18a) def} if ISIO*ioL 4 eq {/TSYSIOa (OLS27a) def} if ISIO*ioL 5 eq {/TSYSIOa (OLS38a) def} if ISIO*ioL 6 eq {/TSYSIOa (OLS52a) def} if ISIO*ioL 7 eq {/TSYSIOa (OLS70a) def} if (Offset Luminous System ) showen (Offset\255Licht\255System ) showde } if %ISRL*ioL=2 TSYSIOa show TBG ( for relative CIELAB hue) showen ( f\374r relativen CIELAB\255Buntton) showde TBIG ( h* = lab*h*) show TBG ( = ) show TBIG ( h) show TBM -20 -50 rmoveto (ab) show 0 50 rmoveto TBG (/360 = ) show xcharts 5 le {/x31 xcharts 3 mul 1 add def} {/x31 xcharts 2 add 3 mul 1 add def} ifelse /x32 x31 1 add def LAB*a x32 get LAB*a x31 get 0.0001 add atan cvishow (/360 = ) show LAB*a x32 get LAB*a x31 get 0.0001 add atan 360 div cvsshow3 TBG xtext0 14500 moveto (data for any colour:) showen (Daten f\374r jede Farbe:) showde xtext1 14100 moveto TBIG (lab*tch*) show TBG ( and ) showen ( und ) showde TBIG (lab*icu*) show xtext0 13700 moveto TBG (elementary hue text: ) showen (Elementar\255Bunttontext: ) showde xtext1 13300 moveto TBIG (u*) show TBG ( = ) show xcharts 5 le {/i xcharts def}{/i xcharts 2 add def} ifelse TBIG ColNames i get show xtext0 12900 moveto TBG (contrast reduction factor: ) showen (Kontrastreduzierungsfaktor: ) showde xtext1 12500 moveto xtext1 12500 moveto TBIG (c) show TBM 0 -130 rmoveto (R) show 0 130 rmoveto TBG ( = ) show cfakt cvsshow2 xtext1 12000 moveto TBG (triangle lightness) showen (Dreiecks\255Helligkeit) showde TBIG ( t*) show /L*Fa LAB*a i 3 mul get def /A*Fa LAB*a i 3 mul 1 add get def /B*Fa LAB*a i 3 mul 2 add get def /C*Fa A*Fa dup mul B*Fa dup mul add sqrt def /H*Fa B*Fa A*Fa 0.0001 add atan def proc_LAB*Fa_LAB*MaNTABl_olvi3*cmyn3*Ma*ioL } if %ibild=0 ibild 0 eq {%ibild=0 /ixt 12500 def /iyt 000 def TBG -1200 ixt add 12000 iyt add moveto TBG (triangle lightness) showen (Dreiecks\255Helligkeit) showde TBIG ( t*) show TBG -1200 ixt add 14500 iyt add moveto (Data for maximum colour (Ma):) showen (Daten f\374r Maximalfarbe (Ma):) showde TBIG -1200 ixt add 14000 iyt add moveto (LAB*LAB*) show TBM -20 -50 rmoveto (Ma) show 0 50 rmoveto TBG (: ) show L*Ma cvishow ( ) show C*Ma H*Ma cos mul cvishow ( ) show %A*Ma not available C*Ma H*Ma sin mul cvishow TBIG -1200 ixt add 13500 iyt add moveto (LAB*LCH*) show TBM -20 -50 rmoveto (Ma) show 0 50 rmoveto TBG (: ) show L*Ma cvishow ( ) show C*Ma cvishow ( ) show H*Ma cvishow TBIG -1200 ixt add 13000 iyt add moveto (lab*rgb*) show TBM -20 -50 rmoveto (Ma) show 0 50 rmoveto TBG (: ) show /i xcharts 10 sub 4 mul def AngrgbTabt i 1 add get cvsshow2 ( ) show AngrgbTabt i 2 add get cvsshow2 ( ) show AngrgbTabt i 3 add get cvsshow2 ( ) show TBIG -1200 ixt add 12500 iyt add moveto (lab*olv*) show TBM -20 -50 rmoveto (Ma) show 0 50 rmoveto TBG (: ) show o3*Ma cvsshow2 ( ) show l3*Ma cvsshow2 ( ) show v3*Ma cvsshow2 } if %ibild=1 0.0 setgray CBK ibild 0 eq { %ibild=0 /Tabfakt 0.82 def /anz 5 def /xs 10000 anz 3 add div def /ys xs def /x9 xs 1.8 mul def /xd xs 2 mul def /yd xs def 1 1 1 setrgbcolor %n* 1 1 3 {/j exch def /x1 xmin def /y1 ymax yd j 2 mul mul sub def /x2 xmin xd 4 j sub mul add def /y2 ymin yd 4 j sub mul add def x1 y1 moveto x2 y2 lineto stroke } for %c* 1 1 3 {/j exch def /x1 xmin xd j mul add def /y1 ymax yd j mul sub def /x2 xmin xd j mul add def /y2 ymin yd j mul add def x1 y1 moveto x2 y2 lineto stroke } for xcharts 6 ge {/i xcharts 2 add def %RJGB /L*Fa LAB*a i 3 mul get def /A*Fa LAB*a i 3 mul 1 add get def /B*Fa LAB*a i 3 mul 2 add get def proc_LAB*Fa_LAB*MaNTABl_olvi3*cmyn3*Ma*ioL %calculates olv3*Ma used in later loop /o3*Ma0 o3*Ma def /l3*Ma0 l3*Ma def /v3*Ma0 v3*Ma def } if /id 1 4 div def 0 1 04 {/j exch def %j=0,4 /im 4 j sub def 0 1 im {/i exch def %i=0,4 im 0 eq %im=0 {/r*x 0 def /g*x 0 def /b*x 0 def} {/ia 1 id j mul sub def /argb ia def /brgb ia i id mul sub def xcharts 0 eq {/r*x argb def /g*x brgb def /b*x brgb def} if xcharts 1 eq {/r*x argb def /g*x argb def /b*x brgb def} if xcharts 2 eq {/r*x brgb def /g*x argb def /b*x brgb def} if xcharts 3 eq {/r*x brgb def /g*x argb def /b*x argb def} if xcharts 4 eq {/r*x brgb def /g*x brgb def /b*x argb def} if xcharts 5 eq {/r*x argb def /g*x brgb def /b*x argb def} if xcharts 6 ge {%xcharts>=6 /ib 1 im div def %im#0 /ic 1 ib i mul sub def /ie 1 ic sub def /r*x 1 ia mul ic mul o3*Ma0 ia mul ie mul add def /g*x 1 ia mul ic mul l3*Ma0 ia mul ie mul add def /b*x 1 ia mul ic mul v3*Ma0 ia mul ie mul add def } if %xcharts>=6 } ifelse %im=0 /xa xmin xd i mul add 0.5 xd mul sub def /iad j 2 mul def /ya ymax yd i iad add mul sub 1.0 yd mul sub def r*x g*x b*x setrgbcolor /o*Fa0 o* def /l*Fa0 l* def /v*Fa0 v* def /c4*Fa0 c4*Fa def /m4*Fa0 m4*Fa def /y4*Fa0 y4*Fa def /n4*Fa0 n4*Fa def xa ya xd xd rec fill xcharti 1 le {1 r*x sub 1 g*x sub 1 b*x sub 0 setcmykcolor xa ya xd 0.5 mul dup rem fill} if xcharti 2 ge {1 1 1 setrgbcolor xa ya xd 0.5 mul dup rem fill} if xcharti 0 eq {%xcharti=0 [100 300] 0 setdash r*x 0 eq g*x 0 eq and b*x 0 eq and {1 setgray} {0 setgray} ifelse xa ya xd 0.5 mul dup rem stroke [ ] 0 setdash } if %xcharti=0 xcharti 2 eq {0 0 0 setrgbcolor /xan xa xd 0.30 mul add def /yan ya xd 0.25 mul add def xan yan 800 add moveto r*x cvsshow2 xan yan 500 add moveto g*x cvsshow2 xan yan 200 add moveto b*x cvsshow2 } if xcharti 3 eq {0 0 0 setrgbcolor /o* r*x def /l* g*x def /v* b*x def /cmyolv*io_to_LAB*ioG where {pop cmyolv*io_to_LAB*ioG} {cmyolv*io_to_LAB*ioL} ifelse /xan xa xd 0.30 mul add def /yan ya xd 0.25 mul add def xan yan 800 add moveto LAB*LFa cvsshow1 xan yan 500 add moveto LAB*AFa cvsshow1 xan yan 200 add moveto LAB*BFa cvsshow1 } if xcharti 4 eq {0 0 0 setrgbcolor /o* r*x def /l* g*x def /v* b*x def /cmyolv*io_to_LAB*ioG where {pop cmyolv*io_to_LAB*ioG} {cmyolv*io_to_LAB*ioL} ifelse /xan xa xd 0.30 mul add def /yan ya xd 0.25 mul add def xan yan 800 add moveto LAB*LFa cvsshow1 xan yan 500 add moveto LAB*CFa cvsshow1 xan yan 200 add moveto LAB*HFa cvishow } if xcharti 5 eq {0 0 0 setrgbcolor /o* r*x def /l* g*x def /v* b*x def /cmyolv*io_to_LAB*ioG where {pop cmyolv*io_to_LAB*ioG} {cmyolv*io_to_LAB*ioL} ifelse /xan xa xd 0.30 mul add def /yan ya xd 0.25 mul add def xan yan 800 add moveto lab*tFa cvsshow2 xan yan 500 add moveto lab*cFa cvsshow2 xan yan 200 add moveto lab*hFa cvsshow2 } if xcharti 6 eq {0 0 0 setrgbcolor /o* r*x def /l* g*x def /v* b*x def /cmyolv*io_to_LAB*ioG where {pop cmyolv*io_to_LAB*ioG} {cmyolv*io_to_LAB*ioL} ifelse /xan xa xd 0.30 mul add def /yan ya xd 0.25 mul add def xan yan 800 add moveto 1 lab*nFa sub cvsshow2 xan yan 500 add moveto lab*cFa cvsshow2 xan yan 200 add moveto ColNames xcharts 2 add get show } if xcharti 7 eq {0 0 0 setrgbcolor /o* r*x def /l* g*x def /v* b*x def /cmyolv*io_to_LAB*ioG where {pop cmyolv*io_to_LAB*ioG} {cmyolv*io_to_LAB*ioL} ifelse /xan xa xd 0.30 mul add def /yan ya xd 0.25 mul add def /l*CIEr LAB*LFa L*Nior sub L*Wior L*Nior sub div def /a*sr A*Wior A*Nior sub l*CIEr mul def /b*sr B*Wior B*Nior sub l*CIEr mul def /LAB*LFx LAB*LFa def /LAB*AFx LAB*AFa A*Nior add a*sr add def /LAB*BFx LAB*BFa B*Nior add b*sr add def xan yan 600 add moveto LAB*LFx cvsshow1 xan yan 400 add moveto LAB*AFx cvsshow1 xan yan 200 add moveto LAB*BFx cvsshow1 } if xcharti 8 eq {0 0 0 setrgbcolor /xan xa xd 0.30 mul add def /yan ya xd 0.25 mul add def xan yan 800 add moveto o*Fa0 cvsshow2 xan yan 500 add moveto l*Fa0 cvsshow2 xan yan 200 add moveto v*Fa0 cvsshow2 } if xcharti 9 eq {0 0 0 setrgbcolor /xan xa xd 0.30 mul add def /yan ya xd 0.25 mul add def xan yan 850 add moveto c4*Fa0 cvsshow2 xan yan 600 add moveto m4*Fa0 cvsshow2 xan yan 350 add moveto y4*Fa0 cvsshow2 xan yan 100 add moveto n4*Fa0 cvsshow2 } if } for %i=0,4 } for %j=0,4 /i 2 def %mean grey stroke of 5 steps /xa xmin 0.5 xd mul sub def /ya ymax yd i mul 2 mul sub 1.0 yd mul sub def 1 1 1 setrgbcolor xa ya xd xd rec stroke } if %ibild=0 ibild 1 eq { %ibild=1 /Tabfakt 1 def /anz 16 def /xs 10000 anz 14 add div def /ys xs def /x9 xs 1.8 mul def /xd xs 2 mul def /yd xs def 1 1 1 setrgbcolor %n* 1 1 14 {/j exch def %j=1,14 /x1 xmin def /y1 ymax yd j 2 mul mul sub def /x2 xmin xd 15 j sub mul add def /y2 ymin yd 15 j sub mul add def x1 y1 moveto x2 y2 lineto stroke } for %j=1,14 %c* 1 1 14 {/j exch def %j=1,14 /x1 xmin xd j mul add def /y1 ymax yd j mul sub def /x2 xmin xd j mul add def /y2 ymin yd j mul add def x1 y1 moveto x2 y2 lineto stroke } for %j=1,14 xcharts 6 ge {/i xcharts 2 add def %RJGB /L*Fa LAB*a i 3 mul get def /A*Fa LAB*a i 3 mul 1 add get def /B*Fa LAB*a i 3 mul 2 add get def proc_LAB*Fa_LAB*MaNTABl_olvi3*cmyn3*Ma*ioL %calculates olv3*Ma used in later loop /o3*Ma0 o3*Ma def /l3*Ma0 l3*Ma def /v3*Ma0 v3*Ma def } if /id 1 15 div def 0 1 15 {/j exch def %j=0,14 /im 15 j sub def 0 1 im {/i exch def %i=0,15 im 0 eq %im=0 {/r*x 0 def /g*x 0 def /b*x 0 def} {/ia 1 id j mul sub def /argb ia def /brgb ia i id mul sub def xcharts 0 eq {/r*x argb def /g*x brgb def /b*x brgb def} if xcharts 1 eq {/r*x argb def /g*x argb def /b*x brgb def} if xcharts 2 eq {/r*x brgb def /g*x argb def /b*x brgb def} if xcharts 3 eq {/r*x brgb def /g*x argb def /b*x argb def} if xcharts 4 eq {/r*x brgb def /g*x brgb def /b*x argb def} if xcharts 5 eq {/r*x argb def /g*x brgb def /b*x argb def} if xcharts 6 ge {%xcharts>=6 /ib 1 im div def %im#0 /ic 1 ib i mul sub def /ie 1 ic sub def /r*x 1 ia mul ic mul o3*Ma0 ia mul ie mul add def /g*x 1 ia mul ic mul l3*Ma0 ia mul ie mul add def /b*x 1 ia mul ic mul v3*Ma0 ia mul ie mul add def } if %xcharts>=6 } ifelse %im=0 /xa xmin xd i mul add xd 0.5 mul sub def /iad j 2 mul def /ya ymax yd i iad add mul sub xd 0.5 mul sub def xcharti 1 le {r*x g*x b*x setrgbcolor xa ya xd dup rec fill 1 r*x sub 1 g*x sub 1 b*x sub 0 setcmykcolor xa ya xd 0.5 mul dup rem fill} if xcharti 2 ge {1 1 1 setrgbcolor xa ya xd xd rec fill 0 0 0 setrgbcolor xa ya xd xd rec stroke} if xcharti 0 eq {%xcharti=0 [100 300] 0 setdash r*x 0 eq g*x 0 eq and b*x 0 eq and {1 setgray} {0 setgray} ifelse xa ya xd 0.5 mul dup rem stroke [ ] 0 setdash } if %xcharti=0 xcharti 2 eq {0 0 0 setrgbcolor /xan xa xd 0.00 mul sub def /yan ya xd 0.25 mul sub def xan yan 600 add moveto r*x cvsshow2 xan yan 400 add moveto g*x cvsshow2 xan yan 200 add moveto b*x cvsshow2 } if xcharti 3 eq {0 0 0 setrgbcolor /o* r*x def /l* g*x def /v* b*x def /cmyolv*io_to_LAB*ioG where {pop cmyolv*io_to_LAB*ioG} {cmyolv*io_to_LAB*ioL} ifelse /xan xa xd 0.00 mul sub def /yan ya xd 0.25 mul sub def xan yan 600 add moveto LAB*LFa cvsshow1 xan yan 400 add moveto LAB*AFa cvsshow1 xan yan 200 add moveto LAB*BFa cvsshow1 } if xcharti 4 eq {0 0 0 setrgbcolor /o* r*x def /l* g*x def /v* b*x def /cmyolv*io_to_LAB*ioG where {pop cmyolv*io_to_LAB*ioG} {cmyolv*io_to_LAB*ioL} ifelse /xan xa xd 0.00 mul sub def /yan ya xd 0.25 mul sub def xan yan 600 add moveto LAB*LFa cvsshow1 xan yan 400 add moveto LAB*CFa cvsshow1 xan yan 200 add moveto LAB*HFa cvishow } if xcharti 5 eq {0 0 0 setrgbcolor /o* r*x def /l* g*x def /v* b*x def /cmyolv*io_to_LAB*ioG where {pop cmyolv*io_to_LAB*ioG} {cmyolv*io_to_LAB*ioL} ifelse /xan xa xd 0.00 mul sub def /yan ya xd 0.25 mul sub def xan yan 600 add moveto lab*tFa cvsshow2 xan yan 400 add moveto lab*cFa cvsshow2 xan yan 200 add moveto lab*hFa cvsshow2 } if xcharti 6 eq {0 0 0 setrgbcolor /o* r*x def /l* g*x def /v* b*x def /cmyolv*io_to_LAB*ioG where {pop cmyolv*io_to_LAB*ioG} {cmyolv*io_to_LAB*ioL} ifelse /xan xa xd 0.02 mul add def /yan ya xd 0.22 mul sub def xan yan 600 add moveto 1 lab*nFa sub cvsshow2 xan yan 400 add moveto lab*cFa cvsshow2 xan yan 200 add moveto ColNames xcharts 2 add get show } if xcharti 7 eq {0 0 0 setrgbcolor /o* r*x def /l* g*x def /v* b*x def /cmyolv*io_to_LAB*ioG where {pop cmyolv*io_to_LAB*ioG} {cmyolv*io_to_LAB*ioL} ifelse /xan xa xd 0.00 mul sub def /yan ya xd 0.25 mul sub def /l*CIEr LAB*LFa L*Nior sub L*Wior L*Nior sub div def /a*sr A*Wior A*Nior sub l*CIEr mul def /b*sr B*Wior B*Nior sub l*CIEr mul def /LAB*LFx LAB*LFa def /LAB*AFx LAB*AFa A*Nior add a*sr add def /LAB*BFx LAB*BFa B*Nior add b*sr add def xan yan 600 add moveto LAB*LFx cvsshow1 xan yan 400 add moveto LAB*AFx cvsshow1 xan yan 200 add moveto LAB*BFx cvsshow1 } if xcharti 8 eq {r*x g*x b*x setrgbcolor /o*Fa0 o* def /l*Fa0 l* def /v*Fa0 v* def 0 0 0 setrgbcolor /xan xa xd 0.00 mul sub def /yan ya xd 0.25 mul sub def xan yan 600 add moveto o*Fa0 cvsshow2 xan yan 400 add moveto l*Fa0 cvsshow2 xan yan 200 add moveto v*Fa0 cvsshow2 } if xcharti 9 eq {r*x g*x b*x setrgbcolor /c4*Fa0 c4*Fa def /m4*Fa0 m4*Fa def /y4*Fa0 y4*Fa def /n4*Fa0 n4*Fa def 0 0 0 setrgbcolor /xan xa xd 0.00 mul sub def /yan ya xd 0.25 mul sub def CBKK xan yan 695 add moveto c4*Fa0 cvsshow2 xan yan 530 add moveto m4*Fa0 cvsshow2 xan yan 365 add moveto y4*Fa0 cvsshow2 xan yan 200 add moveto n4*Fa0 cvsshow2 CBK } if } for %i=0,15 } for %j=0,15 xcharti 1 le {%xchart=0,1 %mean grey stroke of steps 7 and 8 7 1 8 {/i exch def %i=7,8 /xa xmin xd 0.5 mul sub def /ya ymax yd i mul 2 mul sub xd 0.5 mul sub def 1 1 1 setrgbcolor xa ya xd xd rec stroke } for %i=7,8 } if %xchart=0,1 %Data text for xcharti=2 to 6 0 0 0 setrgbcolor TBIG 8600 14900 moveto (u* = ) show ColNames xcharts 2 add get show 8600 14500 moveto xcharti 2 eq {(lab*rgb*) show} if xcharti 3 eq {(LAB*LAB*) show -20 -50 rmoveto TBM (a) show 0 50 rmoveto TBIG} if xcharti 4 eq {(LAB*LCH*) show -20 -50 rmoveto TBM (a) show 0 50 rmoveto TBIG} if xcharti 5 eq {(lab*tch*) show} if xcharti 6 eq {(lab*icu*) show} if xcharti 7 eq {(LAB*LAB*) show} if xcharti 8 eq {(lab*rgb'*) show} if xcharti 9 eq {(LAB*cmyn'*) show} if 8600 06500 moveto xcharti 2 eq {(lab*rgb*) show} if xcharti 3 eq {(LAB*LAB*) show -20 -50 rmoveto TBM (a) show 0 50 rmoveto TBIG} if xcharti 4 eq {(LAB*LCH*) show -20 -50 rmoveto TBM (a) show 0 50 rmoveto TBIG} if xcharti 5 eq {(lab*tch*) show} if xcharti 6 eq {(lab*icu*) show} if xcharti 7 eq {(LAB*LAB*) show} if xcharti 8 eq {(lab*rgb'*) show} if xcharti 9 eq {(LAB*cmyn'*) show} if } if %ibild=1 %CIELAB-Table ibild 0 eq {5600}{5200} ifelse 9600 translate /yhoe 6300 def ibild 0 eq {/ymi0 -50 def} {/ymi0 -1400 def} ifelse 15 setlinewidth 1.0 setgray 0 ymi0 moveto 5300 0 rlineto 0 4800 ymi0 sub rlineto -5300 0 rlineto closepath fill 0.0 setgray 0 ymi0 moveto 5300 0 rlineto 0 4800 ymi0 sub rlineto -5300 0 rlineto closepath stroke /nshow {300 /Times-ISOL1 FS show} bind def /kshow {300 /TimesI-ISOL1 FS show} bind def /bshow {300 /TimesB-ISOL1 FS show} bind def /jshow {300 /TimesBI-ISOL1 FS show} bind def /sshow {300 /Symbol FS show} bind def /ishow {220 /Times-ISOL1 FS -00 -50 rmoveto show 00 50 rmoveto} bind def /eshow {220 /Times-ISOL1 FS 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 5200 0 rlineto stroke %Titeltext S1 4550 moveto ibild 0 eq {xcharti 7 eq {TSYSIO} {TSYSIOa} ifelse bshow} {TSYSIOa bshow} ifelse lanind 1 eq {(;) bshow xcharti 7 lt ibild 0 ne or {( adapted (a)) bshow} if ( CIELAB data) bshow} if lanind 0 eq {(;) bshow xcharti 7 lt ibild 0 ne or {( adaptierte) bshow} if ( CIELAB\255Daten) bshow} if S2 000 add 4250 moveto (L*=L*) kshow xcharti 7 lt ibild 0 ne or {(a) ishow} if S3 100 add 4250 moveto (a*) kshow xcharti 7 lt ibild 0 ne or {(a) ishow} if S4 000 add 4250 moveto (b*) kshow xcharti 7 lt ibild 0 ne or {(a) ishow} if S5 100 sub 4250 moveto (C*) kshow (ab) ishow xcharti 7 lt ibild 0 ne or {(,a) ishow} if S6 200 sub 4250 moveto (h*) kshow (ab) ishow xcharti 7 lt ibild 0 ne or {(,a) ishow} if ibild 0 eq {%BEG ibild=0 0 1 11 {/ic exch def %ic=0,11 S1 20 add yu2 yd ic mul sub moveto ColNames ic get nshow ic 8 ge {(CIE) ishow}{(M) ishow xcharti 7 lt {(a) ishow} if} ifelse ( ) nshow } for %ic=0,11 0 1 11 {/i exch def %i=0,11 /ya yu2 yd i mul sub def xcharti 7 lt { %xcharti=7,#7 /L*Fa LAB*a i 3 mul get def /A*Fa LAB*a i 3 mul 1 add get def /B*Fa LAB*a i 3 mul 2 add get def /C*Fa A*Fa dup mul B*Fa dup mul add sqrt def /H*Fa B*Fa A*Fa 0.0001 add atan def S2 350 add ya moveto L*Fa cvsshow2 S3 100 add ya moveto A*Fa cvsshow2 S4 100 add ya moveto B*Fa cvsshow2 S5 ya moveto C*Fa cvsshow2 S6 ya moveto H*Fa cvishow } %xcharti=7 { %xcharti#7 /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=7,#7 } for %i=0,11 }%END ibild=0 {%BEG ibild=1 12 1 27 {/ic exch def %ic=12,27 S1 20 add yu2 yd ic 12 sub mul sub moveto ColNames ic get nshow } for %ic=12,27 12 1 27 {/i exch def %i=12,21 /ya yu2 yd i 12 sub mul sub def /L*Fa LAB*a i 3 mul get def /A*Fa LAB*a i 3 mul 1 add get def /B*Fa LAB*a i 3 mul 2 add get def proc_LAB*Fa_LAB*MaNTABl_olvi3*cmyn3*Ma*ioL %calculates LAB*Ma /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 350 add ya moveto L*Ma cvsshow2 S3 100 add ya moveto A*Ma cvsshow2 S4 100 add ya moveto B*Ma cvsshow2 S5 ya moveto C*Ma cvsshow2 S6 ya moveto H*Ma cvishow } for %i=8,21 } ifelse %END ibild=1 ibild 0 eq {-5600}{-5200} ifelse -9600 translate %CIELAB-Diagram ibild 0 eq { %ibild=0 2700 11600 translate 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 %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 %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 /i xcharts 2 add def /L*Fa LAB*a i 3 mul get def /A*Fa LAB*a i 3 mul 1 add get def /B*Fa LAB*a i 3 mul 2 add get def proc_LAB*Fa_LAB*MaNTABl_olvi3*cmyn3*Ma*ioL %calulates LAB*Ma /A*Ma0 A*Ma def /B*Ma0 B*Ma def /r*x o3*Ma0 def /g*x l3*Ma0 def /b*x v3*Ma0 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 } if %xcharts>=6 -1200 -1300 translate -2700 -11600 translate } if %ibild=0 /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 ibild 1 eq { %ibild=1 /xmtext 3100 def /xms 0 def xmtext xms sub 11800 moveto TBG (%Gamut) showen (%Umfang) showde xmtext xms sub 11400 moveto TBG (u*) show (rel) ishow TBG ( = ) 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 11000 moveto TBG (%Regularity) showen (%Regularit\344t) showde xmtext 10600 moveto TBG (g*) show (H,rel) ishow TBG ( = ) 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 10200 moveto TBG (g*) show (C,rel) ishow TBG ( = ) show g*Cr cvishow } if %ibild=1 ibild 1 eq {-13800 -1700 translate} if ibild 0 eq { -1900 -1700 translate} if } if %xcharts>=10 } for %ibild=0,1 } if %xcharts<=25 xcharts 26 eq {%xcharts=26 /xss 900 3 div 2 mul def /yss xss def /xmins 650 3 div 2.2 mul def /ymaxs 15800 def /xds 900 3 div 2 mul def /xsd xss xds sub 0.5 mul def /ysd xss xds sub 0.5 mul def 0.5 0.5 0.5 setrgbcolor 0 0 moveto 24500 0 rlineto 0 17000 rlineto 24500 neg 0 rlineto closepath fill 20 setlinewidth 500 3 div 2 mul /Times-ISOL1 FS 0 0 0 setrgbcolor 1 1 27 {/i exch def %i=1,27 /x xss 0.15 mul def /y 27.6 yss mul yss i mul sub def x y moveto nr1 i 1 sub get show } for %i=1,27 1 1 37 {/i exch def %i=1,37 /x xss i mul 000 add def /y 27.5 yss mul def x y moveto tx1 i 1 sub get show } for %i=1,37 CBKK /IMODE 0 def %input rgb for output LAB* %row no.1 and 2: 9xrgb /imax 08 def /jmax 08 def /kmax 08 def 0 1 kmax {/k exch def %beg k=0,08 /k0 k 3 idiv def /k1 k k0 3 mul sub def /xadd k1 xss 9 mul mul def /yadd k0 xss 9 mul mul def 0 1 jmax {/j exch def %beg j=0,jmax 0 1 imax {/i exch def %beg i=0,imax /n i j 9 mul add k 81 mul add def /j1 j k1 9 mul add def /j1$ tx1 j1 get def /i1 i 1 add k0 9 mul add def /xa xmins j xss mul add xadd add xsd add def /ya ymaxs i yss mul sub yadd sub ysd add def /r*x k kmax div def /g*x j jmax div def /b*x i imax div def xcharti 1 le {r*x g*x b*x setrgbcolor xa ya xds dup rec fill 1 r*x sub 1 g*x sub 1 b*x sub 0 setcmykcolor xa ya xds 0.5 mul dup rem fill} if xcharti 2 ge {1 1 1 setrgbcolor xa ya xds xds rec fill 0 0 0 setrgbcolor xa ya xds xds rec stroke} if xcharti 0 eq {%xcharti=0 [100 300] 0 setdash r*x 0 eq g*x 0 eq and b*x 0 eq and {1 setgray} {0 setgray} ifelse xa ya xds 0.5 mul dup rem stroke [ ] 0 setdash } if %xcharti=0 xcharti 2 eq {0 0 0 setrgbcolor /xan xa xds 0.00 mul sub def /yan ya xds 0.25 mul sub def xan yan 600 add moveto r*x cvsshow2 xan yan 400 add moveto g*x cvsshow2 xan yan 200 add moveto b*x cvsshow2 } if xcharti 3 eq {0 0 0 setrgbcolor /o* r*x def /l* g*x def /v* b*x def /cmyolv*io_to_LAB*ioG where {pop cmyolv*io_to_LAB*ioG} {cmyolv*io_to_LAB*ioL} ifelse /xan xa xds 0.00 mul sub def /yan ya xds 0.25 mul sub def xan yan 600 add moveto LAB*LFa cvsshow1 xan yan 400 add moveto LAB*AFa cvsshow1 xan yan 200 add moveto LAB*BFa cvsshow1 } if xcharti 4 eq {0 0 0 setrgbcolor /o* r*x def /l* g*x def /v* b*x def /cmyolv*io_to_LAB*ioG where {pop cmyolv*io_to_LAB*ioG} {cmyolv*io_to_LAB*ioL} ifelse /xan xa xds 0.00 mul sub def /yan ya xds 0.25 mul sub def xan yan 600 add moveto LAB*LFa cvsshow1 xan yan 400 add moveto LAB*CFa cvsshow1 xan yan 200 add moveto LAB*HFa cvishow } if xcharti 5 eq {0 0 0 setrgbcolor /o* r*x def /l* g*x def /v* b*x def /cmyolv*io_to_LAB*ioG where {pop cmyolv*io_to_LAB*ioG} {cmyolv*io_to_LAB*ioL} ifelse /xan xa xds 0.00 mul sub def /yan ya xds 0.25 mul sub def xan yan 600 add moveto lab*tFa cvsshow2 xan yan 400 add moveto lab*cFa cvsshow2 xan yan 200 add moveto lab*hFa cvsshow2 } if xcharti 6 eq {0 0 0 setrgbcolor /o* r*x def /l* g*x def /v* b*x def /cmyolv*io_to_LAB*ioG where {pop cmyolv*io_to_LAB*ioG} {cmyolv*io_to_LAB*ioL} ifelse /xan xa xds 0.05 mul add def /yan ya xds 0.25 mul sub def xan yan 600 add moveto 1 lab*nFa sub cvsshow2 xan yan 400 add moveto lab*cFa cvsshow2 xan yan 200 add moveto /lab*hFa_to_lab*eFa_lab*uFa*ioG where {pop lab*hFa_to_lab*eFa_lab*uFa*ioG} {lab*hFa_to_lab*eFa_lab*uFa*ioL} ifelse u*1 show u*zi 9 le {(0) show} if u*zi cvishow u*2 show } if xcharti 7 eq {0 0 0 setrgbcolor /o* r*x def /l* g*x def /v* b*x def /cmyolv*io_to_LAB*ioG where {pop cmyolv*io_to_LAB*ioG} {cmyolv*io_to_LAB*ioL} ifelse /xan xa xds 0.00 mul sub def /yan ya xds 0.25 mul sub def /l*CIEr LAB*LFa L*Nior sub L*Wior L*Nior sub div def /a*sr A*Wior A*Nior sub l*CIEr mul def /b*sr B*Wior B*Nior sub l*CIEr mul def /LAB*LFx LAB*LFa def /LAB*AFx LAB*AFa A*Nior add a*sr add def /LAB*BFx LAB*BFa B*Nior add b*sr add def xan yan 600 add moveto LAB*LFx cvsshow1 xan yan 400 add moveto LAB*AFx cvsshow1 xan yan 200 add moveto LAB*BFx cvsshow1 } if xcharti 8 eq {r*x g*x b*x setrgbcolor /o*Fa0 o* def /l*Fa0 l* def /v*Fa0 v* def 0 0 0 setrgbcolor /xan xa xds 0.00 mul sub def /yan ya xds 0.25 mul sub def xan yan 600 add moveto o*Fa0 cvsshow2 xan yan 400 add moveto l*Fa0 cvsshow2 xan yan 200 add moveto v*Fa0 cvsshow2 } if xcharti 9 eq {r*x g*x b*x setrgbcolor /c4*Fa0 c4*Fa def /m4*Fa0 m4*Fa def /y4*Fa0 y4*Fa def /n4*Fa0 n4*Fa def 0 0 0 setrgbcolor /xan xa xds 0.00 mul sub def /yan ya xds 0.25 mul sub def CBKK xan yan 610 add moveto c4*Fa0 cvsshow2 xan yan 460 add moveto m4*Fa0 cvsshow2 xan yan 320 add moveto y4*Fa0 cvsshow2 xan yan 180 add moveto n4*Fa0 cvsshow2 CBK } if } for %end i=0,jmax } for %end j=0,jmax } for %end k=0,kmax %3x rgbcmy /id 1 8 div def /rijn 81 array def %for intermediate storage /gijn 81 array def /bijn 81 array def /lmax 2 def /n 728 def 0 1 lmax {/l exch def %beg k=0,kmax /xadd 3 xss 9 mul mul def /yadd l yss 9 mul mul def %for intermediate storage of l=0,lmax 0 1 01 {/jchart exch def %jchart=0,1 /xchartj l jchart 3 mul add def 0 1 08 {/j exch def %j=0,7 /im 8 j sub def jchart 1 im {/i exch def %i=0,8 /ia 1 id j mul sub def /argb ia def /brgb ia i id mul sub def xchartj 0 eq {/r argb def /g brgb def /b brgb def} if xchartj 1 eq {/r argb def /g argb def /b brgb def} if xchartj 2 eq {/r brgb def /g argb def /b brgb def} if xchartj 3 eq {/r brgb def /g argb def /b argb def} if xchartj 4 eq {/r brgb def /g brgb def /b argb def} if xchartj 5 eq {/r argb def /g brgb def /b argb def} if jchart 0 eq {/in i j add def /jn j def} {/in j def /jn i j add def} ifelse rijn in 9 mul jn add r put gijn in 9 mul jn add g put bijn in 9 mul jn add b put } for %i=0,7 } for %j=0,8 } for %jchart=0,1 %for output of l=0,lmax 0 1 08 {/j exch def %j=0,8 0 1 08 {/i exch def %i=0,8 /r*x rijn i j 9 mul add get def /g*x gijn i j 9 mul add get def /b*x bijn i j 9 mul add get def /xa xmins xss j mul add xadd add xsd add def /ya ymaxs xss i mul sub yadd sub ysd add def xcharti 1 le {r*x g*x b*x setrgbcolor xa ya xds dup rec fill 1 r*x sub 1 g*x sub 1 b*x sub 0 setcmykcolor xa ya xds 0.5 mul dup rem fill} if xcharti 2 ge {1 1 1 setrgbcolor xa ya xds xds rec fill 0 0 0 setrgbcolor xa ya xds xds rec stroke} if xcharti 0 eq {%xcharti=0 [100 300] 0 setdash r*x 0 eq g*x 0 eq and b*x 0 eq and {1 setgray} {0 setgray} ifelse xa ya xds 0.5 mul dup rem stroke [ ] 0 setdash } if %xcharti=0 xcharti 2 eq {0 0 0 setrgbcolor /xan xa xds 0.00 mul sub def /yan ya xds 0.25 mul sub def xan yan 600 add moveto r*x cvsshow2 xan yan 400 add moveto g*x cvsshow2 xan yan 200 add moveto b*x cvsshow2 } if xcharti 3 eq {0 0 0 setrgbcolor /o* r*x def /l* g*x def /v* b*x def /cmyolv*io_to_LAB*ioG where {pop cmyolv*io_to_LAB*ioG} {cmyolv*io_to_LAB*ioL} ifelse /xan xa xds 0.00 mul sub def /yan ya xds 0.25 mul sub def xan yan 600 add moveto LAB*LFa cvsshow1 xan yan 400 add moveto LAB*AFa cvsshow1 xan yan 200 add moveto LAB*BFa cvsshow1 } if xcharti 4 eq {0 0 0 setrgbcolor /o* r*x def /l* g*x def /v* b*x def /cmyolv*io_to_LAB*ioG where {pop cmyolv*io_to_LAB*ioG} {cmyolv*io_to_LAB*ioL} ifelse /xan xa xds 0.00 mul sub def /yan ya xds 0.25 mul sub def xan yan 600 add moveto LAB*LFa cvsshow1 xan yan 400 add moveto LAB*CFa cvsshow1 xan yan 200 add moveto LAB*HFa cvishow } if xcharti 5 eq {0 0 0 setrgbcolor /o* r*x def /l* g*x def /v* b*x def /cmyolv*io_to_LAB*ioG where {pop cmyolv*io_to_LAB*ioG} {cmyolv*io_to_LAB*ioL} ifelse /xan xa xds 0.00 mul sub def /yan ya xds 0.25 mul sub def xan yan 600 add moveto lab*tFa cvsshow2 xan yan 400 add moveto lab*cFa cvsshow2 xan yan 200 add moveto lab*hFa cvsshow2 } if xcharti 6 eq {0 0 0 setrgbcolor /o* r*x def /l* g*x def /v* b*x def /cmyolv*io_to_LAB*ioG where {pop cmyolv*io_to_LAB*ioG} {cmyolv*io_to_LAB*ioL} ifelse /xan xa xds 0.05 mul add def /yan ya xds 0.25 mul sub def xan yan 600 add moveto 1 lab*nFa sub cvsshow2 xan yan 400 add moveto lab*cFa cvsshow2 xan yan 200 add moveto /lab*hFa_to_lab*eFa_lab*uFa*ioG where {pop lab*hFa_to_lab*eFa_lab*uFa*ioG} {lab*hFa_to_lab*eFa_lab*uFa*ioL} ifelse u*1 show u*zi 9 le {(0) show} if u*zi cvishow u*2 show } if xcharti 7 eq {0 0 0 setrgbcolor /o* r*x def /l* g*x def /v* b*x def /cmyolv*io_to_LAB*ioG where {pop cmyolv*io_to_LAB*ioG} {cmyolv*io_to_LAB*ioL} ifelse /xan xa xds 0.00 mul sub def /yan ya xds 0.25 mul sub def /l*CIEr LAB*LFa L*Nior sub L*Wior L*Nior sub div def /a*sr A*Wior A*Nior sub l*CIEr mul def /b*sr B*Wior B*Nior sub l*CIEr mul def /LAB*LFx LAB*LFa def /LAB*AFx LAB*AFa A*Nior add a*sr add def /LAB*BFx LAB*BFa B*Nior add b*sr add def xan yan 600 add moveto LAB*LFx cvsshow1 xan yan 400 add moveto LAB*AFx cvsshow1 xan yan 200 add moveto LAB*BFx cvsshow1 } if xcharti 8 eq {r*x g*x b*x setrgbcolor /o*Fa0 o* def /l*Fa0 l* def /v*Fa0 v* def 0 0 0 setrgbcolor /xan xa xds 0.00 mul sub def /yan ya xds 0.25 mul sub def xan yan 600 add moveto o*Fa0 cvsshow2 xan yan 400 add moveto l*Fa0 cvsshow2 xan yan 200 add moveto v*Fa0 cvsshow2 } if xcharti 9 eq {r*x g*x b*x setrgbcolor /c4*Fa0 c4*Fa def /m4*Fa0 m4*Fa def /y4*Fa0 y4*Fa def /n4*Fa0 n4*Fa def 0 0 0 setrgbcolor /xan xa xds 0.00 mul sub def /yan ya xds 0.25 mul sub def CBKK xan yan 610 add moveto c4*Fa0 cvsshow2 xan yan 460 add moveto m4*Fa0 cvsshow2 xan yan 320 add moveto y4*Fa0 cvsshow2 xan yan 180 add moveto n4*Fa0 cvsshow2 CBK } if } for %i=0,7 } for %j=0,8 } for %end l=0,lmax %6wrgbcmy /n 971 /lmax 03 def %4 rows with geys /kmax 1 def %9 or 16 steps 0 1 kmax {/k exch def % k 0 eq {/jmax 08 def} {/jmax 15 def} ifelse 0 1 lmax {/l exch def %beg l=0,lmax /xadd 36 l add xss mul def /yadd k 9 xss mul mul def /j1 l 36 add def /j1$ tx1 j1 get def 0 1 jmax {/j exch def %j=0,08 /n n 1 add def /i1 j k 9 mul add 1 add def %9 steps, 16 steps /argb j jmax div def /xa xmins xadd add xsd add def /ya ymaxs xss j mul sub yadd sub ysd add def /r*x argb def /g*x argb def /b*x argb def xcharti 1 le { l 0 eq {0 0 0 1 argb sub setcmykcolor} if l 1 eq {argb setgray} if l 2 eq {1 argb sub dup dup 0 setcmykcolor} if l 3 eq {argb dup dup setrgbcolor} if xa ya xds dup rec fill 1 r*x sub 1 g*x sub 1 b*x sub 0 setcmykcolor xa ya xds 0.5 mul dup rem fill} if xcharti 2 ge {1 1 1 setrgbcolor xa ya xds xds rec fill 0 0 0 setrgbcolor xa ya xds xds rec stroke} if xcharti 0 eq {%xcharti=0 [100 300] 0 setdash r*x 0 eq g*x 0 eq and b*x 0 eq and {1 setgray} {0 setgray} ifelse xa ya xds 0.5 mul dup rem stroke [ ] 0 setdash } if %xcharti=0 xcharti 2 eq {0 0 0 setrgbcolor /xan xa xds 0.00 mul sub def /yan ya xds 0.25 mul sub def xan yan 600 add moveto r*x cvsshow2 xan yan 400 add moveto g*x cvsshow2 xan yan 200 add moveto b*x cvsshow2 } if xcharti 3 eq {0 0 0 setrgbcolor /o* r*x def /l* g*x def /v* b*x def /cmyolv*io_to_LAB*ioG where {pop cmyolv*io_to_LAB*ioG} {cmyolv*io_to_LAB*ioL} ifelse /xan xa xds 0.00 mul sub def /yan ya xds 0.25 mul sub def xan yan 600 add moveto LAB*LFa cvsshow1 xan yan 400 add moveto LAB*AFa cvsshow1 xan yan 200 add moveto LAB*BFa cvsshow1 } if xcharti 4 eq {0 0 0 setrgbcolor /o* r*x def /l* g*x def /v* b*x def /cmyolv*io_to_LAB*ioG where {pop cmyolv*io_to_LAB*ioG} {cmyolv*io_to_LAB*ioL} ifelse /xan xa xds 0.00 mul sub def /yan ya xds 0.25 mul sub def xan yan 600 add moveto LAB*LFa cvsshow1 xan yan 400 add moveto LAB*CFa cvsshow1 xan yan 200 add moveto LAB*HFa cvishow } if xcharti 5 eq {0 0 0 setrgbcolor /o* r*x def /l* g*x def /v* b*x def /cmyolv*io_to_LAB*ioG where {pop cmyolv*io_to_LAB*ioG} {cmyolv*io_to_LAB*ioL} ifelse /xan xa xds 0.00 mul sub def /yan ya xds 0.25 mul sub def xan yan 600 add moveto lab*tFa cvsshow2 xan yan 400 add moveto lab*cFa cvsshow2 xan yan 200 add moveto lab*hFa cvsshow2 } if xcharti 6 eq {0 0 0 setrgbcolor /o* r*x def /l* g*x def /v* b*x def /cmyolv*io_to_LAB*ioG where {pop cmyolv*io_to_LAB*ioG} {cmyolv*io_to_LAB*ioL} ifelse /xan xa xds 0.05 mul add def /yan ya xds 0.25 mul sub def xan yan 600 add moveto 1 lab*nFa sub cvsshow2 xan yan 400 add moveto lab*cFa cvsshow2 xan yan 200 add moveto /lab*hFa_to_lab*eFa_lab*uFa*ioG where {pop lab*hFa_to_lab*eFa_lab*uFa*ioG} {lab*hFa_to_lab*eFa_lab*uFa*ioL} ifelse u*1 show u*zi 9 le {(0) show} if u*zi cvishow u*2 show } if xcharti 7 eq {0 0 0 setrgbcolor /o* r*x def /l* g*x def /v* b*x def /cmyolv*io_to_LAB*ioG where {pop cmyolv*io_to_LAB*ioG} {cmyolv*io_to_LAB*ioL} ifelse /xan xa xds 0.00 mul sub def /yan ya xds 0.25 mul sub def /l*CIEr LAB*LFa L*Nior sub L*Wior L*Nior sub div def /a*sr A*Wior A*Nior sub l*CIEr mul def /b*sr B*Wior B*Nior sub l*CIEr mul def /LAB*LFx LAB*LFa def /LAB*AFx LAB*AFa A*Nior add a*sr add def /LAB*BFx LAB*BFa B*Nior add b*sr add def xan yan 600 add moveto LAB*LFx cvsshow1 xan yan 400 add moveto LAB*AFx cvsshow1 xan yan 200 add moveto LAB*BFx cvsshow1 } if xcharti 8 eq {r*x g*x b*x setrgbcolor /o*Fa0 o* def /l*Fa0 l* def /v*Fa0 v* def 0 0 0 setrgbcolor /xan xa xds 0.00 mul sub def /yan ya xds 0.25 mul sub def xan yan 600 add moveto o*Fa0 cvsshow2 xan yan 400 add moveto l*Fa0 cvsshow2 xan yan 200 add moveto v*Fa0 cvsshow2 } if xcharti 9 eq {r*x g*x b*x setrgbcolor /c4*Fa0 c4*Fa def /m4*Fa0 m4*Fa def /y4*Fa0 y4*Fa def /n4*Fa0 n4*Fa def 0 0 0 setrgbcolor /xan xa xds 0.00 mul sub def /yan ya xds 0.25 mul sub def CBKK xan yan 610 add moveto c4*Fa0 cvsshow2 xan yan 460 add moveto m4*Fa0 cvsshow2 xan yan 320 add moveto y4*Fa0 cvsshow2 xan yan 180 add moveto n4*Fa0 cvsshow2 CBK } if } for %j=0,jmax } for %l=0,lmax } for %k=0,kmax %basic colours 1072 - 1080 /basrgb 24 array def /basrgb [0 0 0 1 1 1 1 0 0 0 1 1 1 1 0 0 0 1 0 1 0 1 0 1 ] def /n 1071 def 0 1 7 {/i exch def %i=0,7 /n n 1 add def /i3 i 3 mul def /xadd 36 xss mul def /yadd 25 xss mul def i 0 eq {/l 0 def /j 0 def /j1$ (k) def /i1 26 def} if i 1 eq {/l 0 def /j 1 def /j1$ (k) def /i1 27 def} if i 2 eq {/l 1 def /j 0 def /j1$ (l) def /i1 26 def} if i 3 eq {/l 1 def /j 1 def /j1$ (l) def /i1 27 def} if i 4 eq {/l 2 def /j 0 def /j1$ (m) def /i1 26 def} if i 5 eq {/l 2 def /j 1 def /j1$ (m) def /i1 27 def} if i 6 eq {/l 3 def /j 0 def /j1$ (n) def /i1 26 def} if i 7 eq {/l 3 def /j 1 def /j1$ (n) def /i1 27 def} if /xa xmins xss l mul add xadd add xsd add def /ya ymaxs xss j mul sub yadd sub ysd add def /r*x basrgb i3 get def /g*x basrgb i3 1 add get def /b*x basrgb i3 2 add get def xcharti 1 le {r*x g*x b*x setrgbcolor xa ya xds dup rec fill 1 r*x sub 1 g*x sub 1 b*x sub 0 setcmykcolor xa ya xds 0.5 mul dup rem fill} if xcharti 2 ge {1 1 1 setrgbcolor xa ya xds xds rec fill 0 0 0 setrgbcolor xa ya xds xds rec stroke} if xcharti 0 eq {%xcharti=0 [100 300] 0 setdash r*x 0 eq g*x 0 eq and b*x 0 eq and {1 setgray} {0 setgray} ifelse xa ya xds 0.5 mul dup rem stroke [ ] 0 setdash } if %xcharti=0 xcharti 2 eq {0 0 0 setrgbcolor /xan xa xds 0.00 mul sub def /yan ya xds 0.25 mul sub def xan yan 600 add moveto r*x cvsshow2 xan yan 400 add moveto g*x cvsshow2 xan yan 200 add moveto b*x cvsshow2 } if xcharti 3 eq {0 0 0 setrgbcolor /o* r*x def /l* g*x def /v* b*x def /cmyolv*io_to_LAB*ioG where {pop cmyolv*io_to_LAB*ioG} {cmyolv*io_to_LAB*ioL} ifelse /xan xa xds 0.00 mul sub def /yan ya xds 0.25 mul sub def xan yan 600 add moveto LAB*LFa cvsshow1 xan yan 400 add moveto LAB*AFa cvsshow1 xan yan 200 add moveto LAB*BFa cvsshow1 } if xcharti 4 eq {0 0 0 setrgbcolor /o* r*x def /l* g*x def /v* b*x def /cmyolv*io_to_LAB*ioG where {pop cmyolv*io_to_LAB*ioG} {cmyolv*io_to_LAB*ioL} ifelse /xan xa xds 0.00 mul sub def /yan ya xds 0.25 mul sub def xan yan 600 add moveto LAB*LFa cvsshow1 xan yan 400 add moveto LAB*CFa cvsshow1 xan yan 200 add moveto LAB*HFa cvishow } if xcharti 5 eq {0 0 0 setrgbcolor /o* r*x def /l* g*x def /v* b*x def /cmyolv*io_to_LAB*ioG where {pop cmyolv*io_to_LAB*ioG} {cmyolv*io_to_LAB*ioL} ifelse /xan xa xds 0.00 mul sub def /yan ya xds 0.25 mul sub def xan yan 600 add moveto lab*tFa cvsshow2 xan yan 400 add moveto lab*cFa cvsshow2 xan yan 200 add moveto lab*hFa cvsshow2 } if xcharti 6 eq {0 0 0 setrgbcolor /o* r*x def /l* g*x def /v* b*x def /cmyolv*io_to_LAB*ioG where {pop cmyolv*io_to_LAB*ioG} {cmyolv*io_to_LAB*ioL} ifelse /xan xa xds 0.05 mul add def /yan ya xds 0.25 mul sub def xan yan 600 add moveto 1 lab*nFa sub cvsshow2 xan yan 400 add moveto lab*cFa cvsshow2 xan yan 200 add moveto /lab*hFa_to_lab*eFa_lab*uFa*ioG where {pop lab*hFa_to_lab*eFa_lab*uFa*ioG} {lab*hFa_to_lab*eFa_lab*uFa*ioL} ifelse u*1 show u*zi 9 le {(0) show} if u*zi cvishow u*2 show } if xcharti 7 eq {0 0 0 setrgbcolor /o* r*x def /l* g*x def /v* b*x def /cmyolv*io_to_LAB*ioG where {pop cmyolv*io_to_LAB*ioG} {cmyolv*io_to_LAB*ioL} ifelse /xan xa xds 0.00 mul sub def /yan ya xds 0.25 mul sub def /l*CIEr LAB*LFa L*Nior sub L*Wior L*Nior sub div def /a*sr A*Wior A*Nior sub l*CIEr mul def /b*sr B*Wior B*Nior sub l*CIEr mul def /LAB*LFx LAB*LFa def /LAB*AFx LAB*AFa A*Nior add a*sr add def /LAB*BFx LAB*BFa B*Nior add b*sr add def xan yan 600 add moveto LAB*LFx cvsshow1 xan yan 400 add moveto LAB*AFx cvsshow1 xan yan 200 add moveto LAB*BFx cvsshow1 } if xcharti 8 eq {r*x g*x b*x setrgbcolor /o*Fa0 o* def /l*Fa0 l* def /v*Fa0 v* def 0 0 0 setrgbcolor /xan xa xds 0.00 mul sub def /yan ya xds 0.25 mul sub def xan yan 600 add moveto o*Fa0 cvsshow2 xan yan 400 add moveto l*Fa0 cvsshow2 xan yan 200 add moveto v*Fa0 cvsshow2 } if xcharti 9 eq {r*x g*x b*x setrgbcolor /c4*Fa0 c4*Fa def /m4*Fa0 m4*Fa def /y4*Fa0 y4*Fa def /n4*Fa0 n4*Fa def 0 0 0 setrgbcolor /xan xa xds 0.00 mul sub def /yan ya xds 0.25 mul sub def CBKK xan yan 610 add moveto c4*Fa0 cvsshow2 xan yan 460 add moveto m4*Fa0 cvsshow2 xan yan 320 add moveto y4*Fa0 cvsshow2 xan yan 180 add moveto n4*Fa0 cvsshow2 CBK } if } for %i=0,7 40 3 div 2 mul setlinewidth /xtmin xmins def /ytmax ymaxs xss 01 mul add def /ytmin ytmax xss 27 mul sub def /xtmax xtmin xss 36 mul add def /ytmean1 ytmin ytmax ytmin sub 0.3333 mul add def /ytmean2 ytmin ytmax ytmin sub 0.6667 mul add def 1 0 0 setrgbcolor 1 1 4 {/k exch def /xta xtmin xss 9 mul k mul add def xta ytmin 100 sub moveto xta ytmax 100 add lineto stroke } for xtmin 100 sub ytmean1 moveto xtmax ytmean1 lineto stroke xtmin 100 sub ytmean2 moveto xtmax xss 4 mul add 100 add ytmean2 lineto stroke /ytmean3 ytmin 2 xss mul add def xtmax ytmean3 moveto xtmax xss 4 mul add 100 add ytmean3 lineto stroke 0 0 0 setrgbcolor TBIG 22600 16500 moveto xcharti 2 eq {(lab*rgb*) show} if xcharti 3 eq {(LAB*LAB*) show -20 -50 rmoveto TBM (a) show 0 50 rmoveto TBIG} if xcharti 4 eq {(LAB*LCH*) show -20 -50 rmoveto TBM (a) show 0 50 rmoveto TBIG} if xcharti 5 eq {(lab*tch*) show} if xcharti 6 eq {(lab*icu*) show} if xcharti 7 eq {(LAB*LAB*) show} if xcharti 8 eq {(lab*rgb'*) show} if xcharti 9 eq {(LAB*cmyn'*) show} if } if %xcharts=26 grestore showpage %} for %xcharts END xcharts=09,26 %} for %xcharti END xcharti=00,09 %%Trailer %%EndDocument EndEPSF grestore gsave BeginEPSF 86 MM 020 MM translate 12 /Times-ISOL1 FS -9 MM -7 MM moveto ( ) show 10 /Times-ISOL1 FS 53 MM 1 MM moveto ( ) show 1 1 scale -77 -91 translate %%BeginDocument: Bild 18 %line 409 %%EndDocument EndEPSF grestore gsave BeginEPSF 161 MM 197 MM translate 10 /Times-ISOL1 FS 1 1 scale -77 -91 translate %%BeginDocument: Bild 12 %line 419 %%EndDocument EndEPSF grestore gsave BeginEPSF 161 MM 152 MM translate 10 /Times-ISOL1 FS 53 MM 1 MM moveto ( ) show 1 1 scale -77 -91 translate %%BeginDocument: Bild 21 %line 429 %!PS-Adobe-3.0 EPSF-3.0 Eg931-1, %%BoundingBox: 70 90 226 206 /FS {findfont exch scalefont setfont} bind def /MM {72 25.4 div mul} def %%EndProlog gsave 8 /Times-Roman FS 72 83 moveto %!2 (Eg931-1,) show 72 90 translate %! 0.01 MM 0.01 MM scale %! 15 setlinewidth %! 0 0 moveto 5400 0 rlineto 0 4000 rlineto -5400 0 rlineto %! closepath stroke grestore showpage %%Trailer %%EndDocument EndEPSF grestore gsave BeginEPSF 219 MM 152 MM translate 10 /Times-ISOL1 FS 53 MM 1 MM moveto ( ) show 1 1 scale -77 -91 translate %%BeginDocument: Bild 22 %line 439 %%EndDocument EndEPSF grestore gsave BeginEPSF 161 MM 108 MM translate 10 /Times-ISOL1 FS 53 MM 1 MM moveto ( ) show 1 1 scale -77 -91 translate %%BeginDocument: Bild 23 %line 449 %!PS-Adobe-3.0 EPSF-3.0 Eg931-3, %%BoundingBox: 70 90 226 206 /FS {findfont exch scalefont setfont} bind def /MM {72 25.4 div mul} def %%EndProlog gsave 8 /Times-Roman FS 72 83 moveto %!2 (Eg931-3,) show 72 90 translate %! 0.01 MM 0.01 MM scale %! 15 setlinewidth %! 0 0 moveto 5400 0 rlineto 0 4000 rlineto -5400 0 rlineto %! closepath stroke grestore showpage %%Trailer %%EndDocument EndEPSF grestore gsave BeginEPSF 219 MM 108 MM translate 10 /Times-ISOL1 FS 53 MM 1 MM moveto ( ) show 1 1 scale -77 -91 translate %%BeginDocument: Bild 24 %line 459 %%EndDocument EndEPSF grestore gsave BeginEPSF 161 MM 064 MM translate 10 /Times-ISOL1 FS 53 MM 1 MM moveto ( ) show 1 1 scale -77 -91 translate %%BeginDocument: Bild 25 %line 469 %!PS-Adobe-3.0 EPSF-3.0 Eg931-5, %%BoundingBox: 70 90 226 206 /FS {findfont exch scalefont setfont} bind def /MM {72 25.4 div mul} def %%EndProlog gsave 8 /Times-Roman FS 72 83 moveto %!2 (Eg931-5,) show 72 90 translate %! 0.01 MM 0.01 MM scale %! 15 setlinewidth %! 0 0 moveto 5400 0 rlineto 0 4000 rlineto -5400 0 rlineto %! closepath stroke grestore showpage %%Trailer %%EndDocument EndEPSF grestore gsave BeginEPSF 219 MM 064 MM translate 10 /Times-ISOL1 FS 53 MM 1 MM moveto ( ) show 1 1 scale -77 -91 translate %%BeginDocument: Bild 26 %line 479 %%EndDocument EndEPSF grestore gsave BeginEPSF 251 MM 020 MM translate 10 /Times-ISOL1 FS 53 MM 1 MM moveto ( ) show 1 1 scale -77 -91 translate %%BeginDocument: Bild 27 %line 489 %!PS-Adobe-3.0 EPSF-3.0 Eg931-7, %%BoundingBox: 70 90 226 206 /FS {findfont exch scalefont setfont} bind def /MM {72 25.4 div mul} def %%EndProlog gsave 8 /Times-Roman FS 72 83 moveto %!2 (Eg931-7,) show 72 90 translate %! 0.01 MM 0.01 MM scale %! 15 setlinewidth %! 0 0 moveto 5400 0 rlineto 0 4000 rlineto -5400 0 rlineto %! closepath stroke grestore showpage %%Trailer %%EndDocument EndEPSF grestore gsave BeginEPSF 219 MM 020 MM translate 12 /Times-ISOL1 FS -9 MM -7 MM moveto ( ) show 10 /Times-ISOL1 FS 53 MM 1 MM moveto ( ) show 1 1 scale -77 -91 translate %%BeginDocument: Bild 28 %line 499 %%EndDocument EndEPSF grestore gsave BeginEPSF 219 MM 080 MM add 008 MM translate %80 MM Breite von TestStreifen 10 /Times-ISOL1 FS 53 MM 1 MM moveto () show 1 1 scale -77 21 MM sub -91 translate %%BeginDocument: Bild 29 Teststreifen Ueberlaenge %line 509 %%EndDocument EndEPSF grestore gsave BeginEPSF -0.0 MM -0.0 MM translate %xy-Verschiebung Rechteckrahmen nach innen% %%BeginDocument: Bild 30 %Rechteckrahmen %line 519 %!PS-Adobe-3.0 EPSF-3.0 Frame arround with Internet text DG02 20080701 %%BoundingBox: 0 0 598 845 %%EndProlog gsave /lanind 1 def /lantex [(G) (E) (S) (N) (I) (J) (M)] def /showde {0 lanind eq {show} {pop} ifelse} bind def /showen {1 lanind eq {show} {pop} ifelse} bind def /showes {2 lanind eq {show} {pop} ifelse} bind def /showfr {3 lanind eq {show} {pop} ifelse} bind def /showit {4 lanind eq {show} {pop} ifelse} bind def /showjp {5 lanind eq {show} {pop} ifelse} bind def /showm {6 lanind eq {show} {pop} ifelse} bind def /lanindg where {pop /lanind1 lanindg def /lanind2 lanindg def} {/lanind1 0 def /lanind2 0 def} ifelse /colormg where {pop /colorm1 colormg def /colorm2 colormg def} {/colorm1 0 def /colorm2 0 def} ifelse /xcolorg where {pop /xcolor1 xcolorg def /xcolor2 xcolorg def} {/xcolor1 0 def /xcolor2 0 def} ifelse /xchartg where {pop /xchart1 xchartg def /xchart2 xchartg def} {/xchart1 0 def /xchart2 0 def} ifelse /lanind lanind1 def %lanind1 1 lanind2 {/lanind exch def %output showpage /colorm colorm1 def %colorm1 1 colorm2 {/colorm exch def %output showpage /xcolor xcolor1 def %xcolor1 1 xcolor2 {/xcolor exch def %output showpage /xchart xchart1 def %xchart1 1 xchart2 {/xchart exch def %output showpage /GSS$ where {pop /LSS$ GSS$ def} {/LSS$ (1) def} ifelse /GSC$ where {pop /LSC$ GSC$ def} {/LSC$ (N) def} ifelse /GSX$ where {pop /LSX$ GSX$ def} {/LSX$ (0) def} ifelse /GSY$ where {pop /LSY$ GSY$ def} {/LSY$ (0) def} ifelse /GEX$ where {pop /LEX$ GEX$ def} {/LEX$ (P.PS./PDF) def} ifelse /GEY$ where {pop /LEY$ GEY$ def} {/LEY$ (P.DAT) def} ifelse /IMES where {pop %/IMES IMES def } {/IMES 0 def} ifelse /i*ptrsc where {pop %/i*ptrsc i*ptrsc def } {/i*ptrsc 0 def} ifelse gsave /xchartg where {pop /xchartx xchartg def} {/xchartx 0 def} ifelse /colormg where {pop /colorm colormg def} {/colorm 0 def} ifelse /ISRL*ioG where {pop}{/ISRL*ioG 0 def} ifelse /ISIN*ioG where {pop}{/ISIN*ioG 0 def} ifelse /ISOU*ioG where {pop}{/ISOU*ioG 0 def} ifelse /xcharti xchartx 18 idiv def xcharti 0 eq {/ausz 8 def /xchartt (A) def} if xcharti 1 eq {/ausz 8 def /xchartt (F) def} if xcharti 2 eq {/ausz 8 def /xchartt (F) def} if xcharti 3 eq {/ausz 8 def /xchartt (F) def} if xcharti 4 eq {/ausz 8 def /xchartt (F) def} if xcharti 5 eq {/ausz 8 def /xchartt (F) def} if xcharti 6 eq {/ausz 8 def /xchartt (F) def} if xcharti 7 eq {/ausz 8 def /xchartt (F) def} if xcharti 8 eq {/ausz 8 def /xchartt (F) def} if xcharti 9 eq {/ausz 8 def /xchartt (F) def} if %LAB*ioL, ColSep*ioL, and procedures (*ioL) are only in L10-7N.EPS %LAB*ioG, ColSep*ioG, and procedures (*ioG) are only in L93g00NA.PS6.PS and OUTLIN1X %for colorm=0, default rgb/cmyk-values are used for Frame %for colorm=1, rgb/cmyk-values of LAB*ioG, ColSep*ioG are used for Frame %for colorm=0, rgb/cmyk-values of LAB*ioL, ColSep*ioL are used in L10-7N %for colorm=1, rgb/cmyk-values of LAB*ioG, ColSep*ioG are used in L10-7N %for consistancy use same procedures in L10-7N and L93g00NA.PS6.PS colorm 1 eq {LAB*ioG ColSep*ioG} if %LAB*ioL, ColSep*ioL only in L10-7! 0 setgray 1.0 1.0 scale 0.0 MM 0.0 MM translate 0.15 MM setlinewidth /xx 20 array def /yy 20 array def /dd 20 array def /xx [000 296 296 000 002 294 294 002 005 291 291 005 %speziell 006 290 290 006 008 288 288 008 ] def /yy [000 000 210 210 002 002 208 208 005 005 205 205 %speziell 006 006 204 204 008 008 202 202 ] def /dd [060 017 -60 -17 058 015 -58 -15 056 013 -56 -13 054 011 -54 -11 052 009 -52 -09 ] def /xt 1 def xt 1 eq {%xt=1,0 ifelse /i0 12 def /i1 i0 1 add def /i2 i0 2 add def /i3 i0 3 add def xx i0 get MM yy i0 get MM moveto xx i1 get MM yy i1 get MM lineto xx i2 get MM yy i2 get MM lineto xx i3 get MM yy i3 get MM lineto xx i0 get MM yy i0 get MM lineto stroke 3.0 MM /Times-ISOL1 FS xx i0 get MM 110 MM add yy i0 get MM 2.5 MM sub moveto (http://www.ps.bam.de/Eg93/10L/L93) show LSS$ show (00) show LSC$ show LEX$ show (, Page ) showen (, Seite ) showde xchartx 1 add cvishow (/180) show } %xt=1 { %xt=0 /xlu 017 MM def /ylu 017 MM def /xro 279 MM def /yro 193 MM def /xlo 017 MM def /ylo 193 MM def /xru 279 MM def /yru 017 MM def xlu 8 MM sub ylu moveto 16 MM 0 rlineto stroke xlu ylu 8 MM sub moveto 0 16 MM rlineto stroke xro 8 MM add yro moveto -16 MM 0 rlineto stroke xro yro 8 MM add moveto 0 -16 MM rlineto stroke xru 8 MM sub yru moveto 16 MM 0 rlineto stroke xru yru 8 MM sub moveto 0 16 MM rlineto stroke xlo 8 MM add ylo moveto -16 MM 0 rlineto stroke xlo ylo 8 MM add moveto 0 -16 MM rlineto stroke 1 2 7 {/i exch def %Zentrierkreise xlu ylu i MM 0 360 arc stroke xro yro i MM 0 360 arc stroke xru yru i MM 0 360 arc stroke xlo ylo i MM 0 360 arc stroke } for %i 12 4 16 {/i exch def /i0 i def %i=0,16 %0 4 16 {/i exch def /i0 i def %i=0,16 /i1 i0 1 add def /i2 i0 2 add def /i3 i0 3 add def i 16 eq {0.30 MM setlinewidth} {0.15 MM setlinewidth} ifelse 0 setgray xx i0 get MM yy i0 get MM moveto xx i1 get MM yy i1 get MM lineto xx i2 get MM yy i2 get MM lineto xx i3 get MM yy i3 get MM lineto xx i0 get MM yy i0 get MM lineto stroke i 16 eq {6 /Times-ISOL1 FS /x00 67 def /xdif 32 def /y0o 202.3 def /y0u 6.3 def /x0l 6.1 def /x0r 288 def /y00 22 def /ydif 32 def x00 xdif 0 mul add MM y0o MM moveto (V) show x00 xdif 0 mul add MM y0u MM moveto (C) show x00 xdif 1 mul add MM y0o MM moveto (L) show x00 xdif 1 mul add MM y0u MM moveto (M) show x00 xdif 2 mul add MM y0o MM moveto (O) show x00 xdif 2 mul add MM y0u MM moveto (Y) show x00 xdif 3 mul add MM y0o MM moveto (Y) show x00 xdif 3 mul add MM y0u MM moveto (O) show x00 xdif 4 mul add MM y0o MM moveto (M) show x00 xdif 4 mul add MM y0u MM moveto (L) show x00 xdif 5 mul add MM y0o MM moveto (C) show x00 xdif 5 mul add MM y0u MM moveto (V) show x0l MM y00 ydif 0 mul add MM moveto (V) show x0r MM y00 ydif 0 mul add MM moveto (C) show x0l MM y00 ydif 1 mul add MM moveto (L) show x0r MM y00 ydif 1 mul add MM moveto (M) show x0l MM y00 ydif 2 mul add MM moveto (O) show x0r MM y00 ydif 2 mul add MM moveto (Y) show x0l MM y00 ydif 3 mul add MM moveto (Y) show x0r MM y00 ydif 3 mul add MM moveto (O) show x0l MM y00 ydif 4 mul add MM moveto (M) show x0r MM y00 ydif 4 mul add MM moveto (L) show x0l MM y00 ydif 5 mul add MM moveto (C) show x0r MM y00 ydif 5 mul add MM moveto (V) show } if } for %i=0,16 0 1 10 {/j0 exch def /j1 j0 1 add def %j0 j0 0 eq {tzcolv* setrgbcolor} if j0 1 eq {0 setgray} if j0 2 eq {tzmolv* setrgbcolor} if j0 3 eq {0 setgray} if j0 4 eq {tzyolv* setrgbcolor} if j0 5 eq {0 setgray} if j0 6 eq {tzoolv* setrgbcolor} if j0 7 eq {0 setgray} if j0 8 eq {tzlolv* setrgbcolor} if j0 9 eq {0 setgray} if j0 10 eq {tzvolv* setrgbcolor} if 12 4 16 {/i exch def /i0 i def %i=0,16 %0 4 16 {/i exch def /i0 i def %i=0,16 /i1 i0 1 add def /i2 i0 2 add def /i3 i0 3 add def i 16 eq {0.30 MM setlinewidth} {0.15 MM setlinewidth} ifelse xx i0 get dd i0 get add 16 j0 mul add MM yy i0 get MM moveto xx i0 get dd i0 get add 16 j1 mul add MM yy i0 get MM lineto stroke xx i1 get MM yy i1 get dd i1 get add 16 j0 mul add MM moveto xx i1 get MM yy i1 get dd i1 get add 16 j1 mul add MM lineto stroke xx i2 get dd i2 get add 16 j0 mul sub MM yy i2 get MM moveto xx i2 get dd i2 get add 16 j1 mul sub MM yy i2 get MM lineto stroke xx i3 get MM yy i3 get dd i3 get add 16 j0 mul sub MM moveto xx i3 get MM yy i3 get dd i3 get add 16 j1 mul sub MM lineto stroke } for %i=0,16 } for %j0 0.15 MM setlinewidth /s 7 MM def /s1 8 MM def /s5 36 MM def 16 1 20 {/j exch def /j0 j 16 sub def %j=16,20 /ix0 xlu 8 MM add j0 7 MM mul add def /iy0 ylu 8 MM sub def 0 1 3 {/ij exch def %ij=0,3 ij 0 eq {/ix0 xlu 8 MM add j0 7 MM mul add def /iy0 ylu 8 MM sub def} if ij 1 eq {/ix0 xru 43 MM sub j0 7 MM mul add def /iy0 yru 8 MM sub def} if ij 2 eq {/ix0 xlo 8 MM add j0 7 MM mul add def /iy0 ylo 1 MM add def} if ij 3 eq {/ix0 xro 43 MM sub j0 7 MM mul add def /iy0 yro 1 MM add def} if i*ptrsc 0 eq i*ptrsc 2 eq or {%i*ptrsc=0,2 cmy0* setcmykcolor j 16 eq {/ng tzan j get def ng ng ng 0 setcmykcolor ix0 0.5 MM sub iy0 0.5 MM sub s5 s1 rec fill} if /ng tzan j get def ng ng ng 0 setcmykcolor ix0 iy0 s s rec fill } if %i*ptrsc=0,2 i*ptrsc 1 eq i*ptrsc 3 eq or {%i*ptrsc=1,3 www* setrgbcolor j 16 eq {/wg 1 tzan j get sub def wg setgray %N ix0 0.5 MM sub iy0 0.5 MM sub s5 s1 rec fill} if /wg 1 tzan j get sub def wg setgray %N ix0 iy0 s s rec fill } if %i*ptrsc=1,3 i*ptrsc 4 eq i*ptrsc 5 eq or {%i*ptrsc=4,5 [/CIEBasedABC << %Farbraum und Grenzen fuer D65 /RangeABC [0 100 -128 127 -128 127] /DecodeABC [{16 add 116 div} bind {500 div} bind {200 div} bind] /MatrixABC [1 1 1 1 0 0 0 0 -1] /DecodeLMN [{dup 6 29 div ge {dup dup mul mul} {4 29 div sub 108 841 div mul} ifelse 0.9505 mul} bind {dup 6 29 div ge {dup dup mul mul} {4 29 div sub 108 841 div mul} ifelse} bind {dup 6 29 div ge {dup dup mul mul} {4 29 div sub 108 841 div mul} ifelse 1.0890 mul} bind] /WhitePoint [0.9505 1 1.089] %CIEXYZ fuer D65 >>] setcolorspace j 16 eq {tznLAB* 0 get tzwLAB* 0 get tznLAB* 0 get sub 0.25 j0 mul mul add tznLAB* 1 get tzwLAB* 1 get tznLAB* 1 get sub 0.25 j0 mul mul add tznLAB* 2 get tzwLAB* 2 get tznLAB* 2 get sub 0.25 j0 mul mul add setcolor %N ix0 0.5 MM sub iy0 0.5 MM sub s5 s1 rec fill} if tznLAB* 0 get tzwLAB* 0 get tznLAB* 0 get sub 0.25 j0 mul mul add tznLAB* 1 get tzwLAB* 1 get tznLAB* 1 get sub 0.25 j0 mul mul add tznLAB* 2 get tzwLAB* 2 get tznLAB* 2 get sub 0.25 j0 mul mul add setcolor %N ix0 iy0 s s rec fill } if %i*ptrsc=4,5 i*ptrsc 6 eq {%i*ptrsc=6 000n* setcmykcolor j 16 eq {/ng tzan j get def 0 0 0 ng setcmykcolor ix0 0.5 MM sub iy0 0.5 MM sub s5 s1 rec fill} if /ng tzan j get def 0 0 0 ng setcmykcolor ix0 iy0 s s rec fill } if %i*ptrsc=6 i*ptrsc 7 eq {%i*ptrsc=7 w* setgray j 16 eq {/wg 1 tzan j get sub def wg setgray ix0 0.5 MM sub iy0 0.5 MM sub s5 s1 rec fill} if /wg 1 tzan j get sub def wg setgray ix0 iy0 s s rec fill } if %i*ptrsc=7 } for %ij=0,3 } for %j=16,20 0 setgray 018 MM 008.2 MM moveto 6 /Times-Roman FS (-8) show 018 MM 006.2 MM moveto 6 /Times-Roman FS (-6) show 276 MM 008.2 MM moveto 6 /Times-Roman FS (-8) show 276 MM 006.2 MM moveto 6 /Times-Roman FS (-6) show 018 MM 202.2 MM moveto 6 /Times-Roman FS (-8) show 018 MM 204.2 MM moveto 6 /Times-Roman FS (-6) show 276 MM 202.2 MM moveto 6 /Times-Roman FS (-8) show 276 MM 204.2 MM moveto 6 /Times-Roman FS (-6) show 0 setgray 12 /Times-ISOL1 FS 61 MM 13 MM moveto (BAM\255Pr\374fvorlage Eg93; Farbmetrik\255Systeme) showde (BAM\255test chart Eg93; Colorimetric systems) showen (, Page ) showen (, Seite ) showde xchartx 1 add cvishow (/180) show 61 MM 09 MM moveto (Farbreihen, 8 Datentabellen f\374r 16 Buntt\366ne ) showde (colour scales and 8 data tables for 16 hues ) showen 12 /TimesI-ISOL1 FS (r00j) show 12 /Times-ISOL1 FS ( bis ) showde ( to ) showen 12 /TimesI-ISOL1 FS (b75r) show 12 /Times-ISOL1 FS 168 MM 13 MM moveto ( input: ) showen (Eingabe: ) showde 12 /TimesI-ISOL1 FS (000n / w / nnn0 / www set... ) show 12 /Times-ISOL1 FS 168 MM 9 MM moveto ( output: ) showen (Ausgabe: ) showde LSC$ (N) eq {%LSC$=N 12 /Times-ISOL1 FS xcharti 0 eq {(no change compared to input) showen (keine Eingabe\344nderung) showde} {12 /TimesI-ISOL1 FS (->cmyn5* setcmykcolor) show 12 /Times-ISOL1 FS} ifelse } if %LSC$=N LSC$ (S) eq { (Startup (S) data dependend) showen (Startup(S)Daten abh\344ngig) showde } if LSC$ (F) eq { 12 /TimesI-ISOL1 FS i*ptrsc 0 eq {(cmy0* / 000n* setcmykcolor) show} if i*ptrsc 1 eq {xcharti 0 eq {12 /Times-ISOL1 FS (no change compared to input) showen (keine Eingabe\344nderung) showde } {(->LAB*->cmyn5* setcmykcolor) show } ifelse } if i*ptrsc 2 eq {(cmy0* / nnn0* setcmykcolor) show} if i*ptrsc 3 eq {(olv* / www* setrgbcolor) show} if i*ptrsc 4 eq {(lab* setcolor) show} if i*ptrsc 5 eq {(LAB* setcolor) show} if i*ptrsc 6 eq {(000n* setcmykcolor) show} if i*ptrsc 7 eq {(w* setgray) show} if } if %0 setgray %end white and unvisible 12 /Times-ISOL1 FS 62 MM 198.5 MM moveto (www.ps.bam.de/Eg93/L93) show LSS$ show (00) show LSC$ show LEX$ show (, Page ) showen (, Seite ) showde xchartx 1 add cvishow (/180) show %xcharti 4 ge {(; ) show LAB*TE 0 get show} if %1 setgray %start white and unvisible (; ) show LSC$ (N) eq { xcharti 0 eq {(Start\255Ausgabe) showde (start output) showen} {(Transfer und Ausgabe) showde (transfer and output) showen} ifelse (start) showes (start) showfr (start) showit (start) showjp (start) showm } if LSC$ (C) eq { (Start) showde (start) showen (start) showes (start) showfr (start) showit (start) showjp (start) showm } if LSC$ (F) eq { xcharti 0 eq {(Start\255Ausgabe) showde (start output) showen} {(Linearisierte Ausgabe) showde (linearized output) showen} ifelse (linearized) showes (linearized) showfr (linearized) showit (linearized) showjp (linearized) showm } if 62 MM 194 MM moveto LSC$ (N) eq LSC$ (C) eq or { (N: Keine Ausgabe\255Linearisierung (OL) in Datei (F), Startup (S), Ger\344t (D)) showde (N: No Output Linearization (OL) data in File (F), Startup (S) or Device (D)) showen (N: No Output Linearization (OL) data in File (F), Startup (S) or Device (D)) showes (N: No Output Linearization (OL) data in File (F), Startup (S) or Device (D)) showfr (N: No Output Linearization (OL) data in File (F), Startup (S) or Device (D)) showit (N: No Output Linearization (OL) data in File (F), Startup (S) or Device (D)) showjp (N: No Output Linearization (OL) data in File (F), Startup (S) or Device (D)) showm } {LSC$ show (: ) show (Linearisierte\255Ausgabe) showde (linearized output) showen (linearized output) showes (linearized output) showfr (linearized output) showit (linearized output) showjp (linearized output) showm (Eg93/L93) show LSS$ show (00) show LSC$ show LEY$ show } ifelse LSC$ (F) eq { ( in der Datei (F)) showde ( in File (F)) showen ( in File (F)) showes ( in File (F)) showfr ( in File (F)) showit ( in File (F)) showjp ( in File (F)) showm } if LSC$ (S) eq { ( im Distiller Startup (S) Directory) showde ( in Distiller Startup (S) Directory) showen ( in Distiller Startup (S) Directory) showes ( in Distiller Startup (S) Directory) showfr ( in Distiller Startup (S) Directory) showit ( in Distiller Startup (S) Directory) showjp ( in Distiller Startup (S) Directory) showm } if LSC$ (D) eq { ( in PostScript Device (D)) showde ( in PostScript Device (D)) showen ( in PostScript Device (D)) showes ( in PostScript Device (D)) showfr ( in PostScript Device (D)) showit ( in PostScript Device (D)) showjp ( in PostScript Device (D)) showm } if LSC$ (T) eq { ( von Distiller Startup (S) Directory) showde ( of Distiller Startup (S) Directory) showen ( of Distiller Startup (S) Directory) showes ( of Distiller Startup (S) Directory) showfr ( of Distiller Startup (S) Directory) showit ( of Distiller Startup (S) Directory) showjp ( of Distiller Startup (S) Directory) showm } if LSC$ (E) eq { ( von PostScript Device (D)) showde ( of PostScript Device (D)) showen ( of PostScript Device (D)) showes ( of PostScript Device (D)) showfr ( of PostScript Device (D)) showit ( of PostScript Device (D)) showjp ( of PostScript Device (D)) showm } if xcharti 2 ge {(; Separation: ) show tzcolv* setrgbcolor (c) show tzmolv* setrgbcolor (m) show tzyolv* setrgbcolor (y) show tznolv* setrgbcolor (n) show LSC$ (F) eq {tznolv* setrgbcolor (*) show} if } if %0 setgray %end white and unvisible 16 MM 185 MM moveto -90 rotate (Siehe \344hnliche Dateien: ) showde (See for similar files: ) showen (See for similar files: ) showes (See for similar files: ) showfr (See for similar files: ) showit (See for similar files: ) showjp (See for similar files: ) showm (http://www.ps.bam.de/Eg93/; www.ps.bam.de/Eg.HTM) show 90 rotate 12 MM 185 MM moveto -90 rotate (Technische Information: ) showde (Technical information: ) showen (Informaci\363n t\351cnica en: ) showes (Technical information: ) showfr (Technical information: ) showit (Technical information: ) showjp (Technical information: ) showm (http://www.ps.bam.de) show 90 rotate 12 MM 103 MM moveto -90 rotate (Version 2.1, io=1,) show LSC$ (N) eq {(1) show} if LSC$ (S) eq {(1?) show} if LSC$ (D) eq {(1?) show} if LSC$ (F) eq {i*ptrsc cvishow IMES 0 eq {(, CIELAB) show} {(, CIEXYZ) show} ifelse } if (, ColSpx=) show ColSpx cvishow 90 rotate 281 MM 185 MM moveto -90 rotate (BAM\255Registrierung: 20080701\255Eg93/L93) showde (BAM registration: 20080701\255Eg93/L93) showen (BAM registration: 20080701\255Eg93/L93) showes (BAM registration: 20080701\255Eg93/L93) showfr (BAM registration: 20080701\255Eg93/L93) showit (BAM registration: 20080701\255Eg93/L93) showjp (BAM registration: 20080701\255Eg93/L93) showm LSS$ show (00) show LSC$ show LEX$ show 90 rotate 281 MM 74 MM moveto -90 rotate (BAM\255Material: Code=rha4ta) showde (BAM material: code=rha4ta) showen (BAM material: code=rha4ta) showes (BAM material: code=rha4ta) showfr (BAM material: code=rha4ta) showit (BAM material: code=rha4ta) showjp (BAM material: code=rha4ta) showm 90 rotate 277 MM 185 MM moveto -90 rotate /cvishow {cvi 6 string cvs show} def /cvsshow1 {10 mul cvi 0.1 mul 7 string cvs show} def ( Anwendung f\374r Beurteilung und Messung von Drucker- oder Monitorsystemen) showde ( application for evaluation and measurement of printer or monitor systems) showen ( application for evaluation and measurement of printer or monitor systems) showes ( application for evaluation and measurement of printer or monitor systems) showfr ( application for evaluation and measurement of printer or monitor systems) showit ( application for evaluation and measurement of printer or monitor systems) showjp ( application for evaluation and measurement of printer or monitor systems) showm IMES 1 eq LSC$ (N) ne and { %IMES=1 (, Yr=) show Yre cvsshow1 (, XYZ) show } if %IMES=1 90 rotate /i0 8 def /i1 i0 1 add def /i2 i0 2 add def /i3 i0 3 add def 0.30 MM setlinewidth 0 setgray xx i0 get MM yy i0 get MM moveto xx i1 get MM yy i1 get MM lineto xx i2 get MM yy i2 get MM lineto xx i3 get MM yy i3 get MM lineto xx i0 get MM yy i0 get MM lineto stroke %} if %end if xcharti=0 %/xlu1 013 MM def /ylu1 010 MM def %/xro1 283 MM def /yro1 200 MM def %/xlo1 013 MM def /ylo1 200 MM def %/xru1 283 MM def /yru1 010 MM def %xlu1 4 MM sub ylu1 moveto 8 MM 0 rlineto stroke %xlu1 ylu1 4 MM sub moveto 0 8 MM rlineto stroke %xro1 4 MM add yro1 moveto -8 MM 0 rlineto stroke %xro1 yro1 4 MM add moveto 0 -8 MM rlineto stroke %xru1 4 MM sub yru1 moveto 8 MM 0 rlineto stroke %xru1 yru1 4 MM sub moveto 0 8 MM rlineto stroke %xlo1 4 MM add ylo1 moveto -8 MM 0 rlineto stroke %xlo1 ylo1 4 MM add moveto 0 -8 MM rlineto stroke } ifelse %xt=1,0 ifelse %} for %output with colorm end %} for %output with xcolor end %} for %output with lanind end %%Trailer %%EndDocument EndEPSF grestore gsave showpage grestore } for %end for xchartg=xchartg1,xchartg2 %} for %end for pcountg=pcountg1,pcount2g %} for %end for scountg=scountg1,scount2g %%Trailer