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 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
140 8200030106018100010c0101020000
141 82000301060101000c0101020000
142 82000301060102000b0101020000
143 82000301060103000a0101020000
144 8200030106010400090101020000
145 8200030106010500080101020000
146 8200030106010600070101020000
147 8200030106010700060101020000
148 8200030106010400090101020000
149 8200030106010100810100810001080101020000
150 82000301060181000101010100080101020000
151 820003010a010100080101020000
152 820003010b010100070101020000
153 820003010b010100070101020000
162 % Compression made this file 13.95% of the uncompressed size.
168 % stop using temporary dictionary
171 % restore original state