1 %!PS-Adobe-2.0 EPSF-2.0
3 %%Creator: XV Version 2.20 Rev: 4/24/92 - by John Bradley
4 %%BoundingBox: 254 375 282 403
12 % remember original state
15 % build a temporary dictionary
21 % size of image (on paper, in 1/72inch coords)
24 % define 'colorimage' if it isn't defined
25 % ('colortogray' and 'mergeprocs' come from xwd2ps
27 /colorimage where % do we know about 'colorimage'?
28 { pop } % yes: pop off the 'dict' returned
30 /colortogray { % define an RGB->I function
31 /rgbdata exch store % call input 'rgbdata'
35 /grays npixls string store % str to hold the result
38 rgbdata rgbindx get 20 mul % Red
39 rgbdata rgbindx 1 add get 32 mul % Green
40 rgbdata rgbindx 2 add get 12 mul % Blue
41 add add 64 idiv % I = .5G + .31R + .18B
43 /rgbindx rgbindx 3 add store
48 % Utility procedure for colorimage operator.
49 % This procedure takes two procedures off the
50 % stack and merges them into a single procedure.
72 pop pop % remove 'false 3' operands
73 {colortogray} mergeprocs
76 } ifelse % end of 'false' case
84 % load up the colormap
85 currentfile cmap readhexstring
86 000000 bf0000 c0c0c0 808080 ffffff
87 pop pop % lose return values from readhexstring
90 % rlecmapimage expects to have 'w h bits matrix' on stack
96 % proc to read a block from file, and return RGB data
97 { currentfile buffer readhexstring pop
98 /bcount exch 0 get store
100 { % it's a non-run block
102 { currentfile buffer readhexstring pop pop
104 % look up value in color map
105 /rgbval cmap buffer 0 get 3 mul 3 getinterval store
107 % and put it in position i*3 in block
108 block exch 3 mul rgbval putinterval
110 block 0 bcount 127 sub 3 mul getinterval
113 { % else it's a run block
114 currentfile buffer readhexstring pop pop
116 % look up value in colormap
117 /rgbval cmap buffer 0 get 3 mul 3 getinterval store
119 0 1 bcount { block exch 3 mul rgbval putinterval } for
121 block 0 bcount 1 add 3 mul getinterval
128 28 28 8 % dimensions of data
129 [28 0 0 -28 0 28] % mapping matrix
136 8200040204020a00050201030000
137 8200040204028100020702810002040201030000
138 8200040204028100020702810002040201030000
139 8200040204028100020702810002040201030000
140 8200040204028100020702810002040201030000
141 8200040204028100020702810002040201030000
142 8200040204028100020702810002040201030000
143 8200040204028100010701810002040201030000
144 8200040204028100010701810002040201030000
145 8200040204028100010701810002040201030000
146 8200040204028100010701810002040201030000
147 8200040204028100010701810002040201030000
148 8200040204028100010701810002040201030000
149 8200040204028100010701810002040201030000
150 8200040204028100010701810002040201030000
151 8200040204028100010701810002040201030000
152 8200040204028100010701810002040201030000
153 8200040204028100010701810002040201030000
154 8200040204020a00050201030000
162 % Compression made this file 18.92% of the uncompressed size.
168 % stop using temporary dictionary
171 % restore original state