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
138 8200030107010400080101020000
139 820003010501010004010100060101020000
140 8200030104018100010701810001040101020000
141 8200030103018100010901810001030101020000
142 820003010301810001020102000301810001030101020000
143 820003010201810001020104000301810001020101020000
144 820003010201810001010106000201810001020101020000
145 820003010201810001010106000201810001020101020000
146 820003010201810001010106000201810001020101020000
147 820003010201810001020104000301810001020101020000
148 820003010301810001020102000301810001030101020000
149 8200030103018100010901810001030101020000
150 8200030104018100010701810001040101020000
151 820003010501010004010100060101020000
152 8200030107010400080101020000
162 % Compression made this file 18.24% of the uncompressed size.
168 % stop using temporary dictionary
171 % restore original state