blob: 031ca0aa7905399227fb3f13b35afce0bf966870 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
|
%!PS-Adobe-2.0 EPSF-2.0
%%Title: /home/fred/TeX/STYLES/Prosper/img/red-bullet-on-white.ps
%%Creator: XV Version 3.10a+FLmask Rev: 12/29/94 - by John Bradley
%%BoundingBox: 276 376 336 416
%%Pages: 1
%%DocumentFonts:
%%EndComments
%%EndProlog
%%Page: 1 1
% remember original state
/origstate save def
% build a temporary dictionary
20 dict begin
% define space for color conversions
/grays 60 string def % space for gray scale line
/npixls 0 def
/rgbindx 0 def
% lower left corner
276 376 translate
% size of image (on paper, in 1/72inch coords)
59.97600 40.03200 scale
% define 'colorimage' if it isn't defined
% ('colortogray' and 'mergeprocs' come from xwd2ps
% via xgrab)
/colorimage where % do we know about 'colorimage'?
{ pop } % yes: pop off the 'dict' returned
{ % no: define one
/colortogray { % define an RGB->I function
/rgbdata exch store % call input 'rgbdata'
rgbdata length 3 idiv
/npixls exch store
/rgbindx 0 store
0 1 npixls 1 sub {
grays exch
rgbdata rgbindx get 20 mul % Red
rgbdata rgbindx 1 add get 32 mul % Green
rgbdata rgbindx 2 add get 12 mul % Blue
add add 64 idiv % I = .5G + .31R + .18B
put
/rgbindx rgbindx 3 add store
} for
grays 0 npixls getinterval
} bind def
% Utility procedure for colorimage operator.
% This procedure takes two procedures off the
% stack and merges them into a single procedure.
/mergeprocs { % def
dup length
3 -1 roll
dup
length
dup
5 1 roll
3 -1 roll
add
array cvx
dup
3 -1 roll
0 exch
putinterval
dup
4 2 roll
putinterval
} bind def
/colorimage { % def
pop pop % remove 'false 3' operands
{colortogray} mergeprocs
image
} bind def
} ifelse % end of 'false' case
% define the colormap
/cmap 735 string def
% load up the colormap
currentfile cmap readhexstring
140a09 748284 8c050b 3c4244 540408 bcc4c4 8c4a44 c40507 542220 242422
740404 dce2e4 9c2a24 ac0506 340204 bc8e8c ecf3f0 541517 5c6264 9ca3a1
e40306 741311 341312 9c0508 f4c2c4 640304 f4f4ec ac1314 6c4244 343533
d40307 4c534f ac0a04 f4fdfb 740b0b fce4e2 ccd2cc 240a0c 949393 641412
6c7370 9c0b08 d44a54 44020c acb4b4 441211 840b0b 540c0a 4c261c bc0506
c4aaa4 741c24 640d0b dcc2c4 9c6264 242a24 d40a04 f4eae4 c40e04 f4f5f4
4c5a54 241011 8c0a0a 544d4c bccacc a4aba8 443e3c 7c0b0b 5c0d0b 6c0c0b
8c8e84 b40606 746a6c f40204 341a16 a40508 e4d6d4 fcfcf3 641c1c cc0406
340b0b 541a1c e40a04 343a3c dc0208 949c98 747e7c 444a4c 342321 e4eae7
ec0404 841516 bc0b05 6c1311 a40a06 440e0f c46664 f4eef4 2c1111 3c0c0b
140e0c 848584 842e34 e4fef4 3c1313 2c1e1e d4dedc 441a14 fcf6f7 940a09
f4d6d4 5c1416 aca6ac 9c1418 5c5254 740d14 b4bebc 841b1e 5c5d5b cccdcb
5c0c14 ecbab4 6c0d14 fcfefc a49e9c cc6a6c b44644 dca2a4 fc7e84 947674
dcbabc 64363c ac3634 b47878 bcbdbc a47e7c 7c4a4c fcaaac cc5a64 ac1a1c
6c6c6c dc7674 843e3c 84625c fcdedf fcb6b4 8c1e1c dccecc 9c4a54 ccc2bc
840509 342c2c bc1e24 442e2c 9c1a24 a43e44 ac6264 fccac4 848a8c 644a44
8c9690 94060c 7c141c b40c05 d4d4d4 dc0a0c fcece0 7c6868 9c9c9e 4c0d0b
843634 fcbeb4 1c0808 7c8381 444443 5c0207 2c2624 7c060c e4e4e3 a4a4a4
fcc6cc fcf5ec 2c1717 3c3534 545453 2c0907 747574 b4b4b2 4c1212 7c1a1f
2c2b2c 5c4a54 c4cbce acabac 3c3b3b 7c7d7b 4c4c4a ececec 1c110e ecfef9
4c1e1c fcd5cf a41214 bc424c c4bec4 c4c5c4 54262c ac0214 646464 34161c
9c0614 6c0204 b41614 fce5ec ccd6dc 64161c 840a14 540e14 640c14 d40c14
c40a14 7c0b14 ecaeac b40414 a40614 cc0614 340e14 5c1c1c 34222c ec0614
6c121c 3c0e14 dcdddc 940e14 fcecec 7c6a74 4c0e14 4c0204 545a57 3c1a1c
fceef5 ac7e84 ac0a14 4c3e3c 8c8a8c
pop pop % lose return values from readhexstring
% rlecmapimage expects to have 'w h bits matrix' on stack
/rlecmapimage {
/buffer 1 string def
/rgbval 3 string def
/block 384 string def
% proc to read a block from file, and return RGB data
{ currentfile buffer readhexstring pop
/bcount exch 0 get store
bcount 128 ge
{ % it's a non-run block
0 1 bcount 128 sub
{ currentfile buffer readhexstring pop pop
% look up value in color map
/rgbval cmap buffer 0 get 3 mul 3 getinterval store
% and put it in position i*3 in block
block exch 3 mul rgbval putinterval
} for
block 0 bcount 127 sub 3 mul getinterval
}
{ % else it's a run block
currentfile buffer readhexstring pop pop
% look up value in colormap
/rgbval cmap buffer 0 get 3 mul 3 getinterval store
0 1 bcount { block exch 3 mul rgbval putinterval } for
block 0 bcount 1 add 3 mul getinterval
} ifelse
} % end of proc
false 3 colorimage
} bind def
60 40 8 % dimensions of data
[60 0 0 -40 0 40] % mapping matrix
rlecmapimage
0f7b824d7b6c816c4d824d6c7b817b218421c721c721822167c782c7214d844d6c4d6c7b
117b
107b816c4d864df06c4d6c3b2181217b017b814d218821c7217b4d6cf06c4d814d7b027b
814d7b0b7b
0f7b814d7b897bd5f06c4d6c7b4d6c4d814d6c016c85ea4d6c4d6c7b817b4d024d037b81
4d7b0a7b
0f7b81217b017b834d6cd56c016c82f06cf081f0ea01ea84a6d5b54d7b027b014d107b
0f7b8221c77b827bf06c906cd590de858e33e6a2759b7d8990ea6cb581b57b127b
0f7b01218b7bb54d6c18f14e6f34a25be982e971e987e92e92609da6b54d844d217b214d
814d7b0b7b
107b8d216c4d6cf1112f3445435b6d294b834bca291b861b17718d23b54d814d2182214d
6c816c7b0a7b
0f7b9d3b7b6c3588a92f5d15432e6d4b0d475ca32047dc07cfd47ec9a64d217b4d824d6c
7b0a7b
0c7b914d3b7bb56c82ce2b4e4415432e6d294b473181315c835c4f1e548654071b0cabb5
4d824d614d014d0a7b
0a7b814d7b817b6c016c8d8283116faf5b22433e6d4b0d470701078e4f1e145a14544fd4
8491b56c7b4d7b0b7b
0e7b924d6c880ed9277ad3432e6d294b0d31074f1e548354145a14851454db172a908490
4d10217b0a7b
087b014d017b8b3b7b4d875fed6fda73d32e3e833e295e478447074f54140214025a88e5
1edf80d56c10217b0a7b
0b7b816c7b897b935011edd77a195b2e852e6d295e203182314f140314035a871407e0b4
d57bc77b0a7b
077b816c7b817b4d894d7b4deb5051ec047a2282222e3e883e295e0d475c1e5414011401
528a5a495a54e1d28af07b217b0a7b
077b814d7b017b8b4d7be8b0305fe3ed34bdd32e892e6d295e0d31074f5414011481525a
025a861407985bf0d57b0b7b
097b974d7b4db5cc3db95fa9275d19a22e963e6d4b0d4731071e5481541481145a015a87
54a507cf9a89ea7b0b7b
087b024d8b6c4deb62685fbc443445222e822e6d298529204731071e821e541482145a54
8954384f1ee1f28ab54d7b0a7b
087b834d7b4d6c946cbf62632dbc2f44450ab12e026d295e0d5c314f1e821e54148b1454
383a071e4fdfcb6c4d7b0a7b
097b014d016c96e4b9685fecd9dad37343963e6d294b0d473107e14f1e5481544f894f5c
314f07cf0cb54d7b0a7b
097b034d9225d11668a9d944da0a43b12e3ea1294b47a3318431074f1e4f894f5ca35c07
31e05b6c7b0b7b
097b944d7b4d6c25b6e2685f2f78197a22b12e026d174b0d830da34731813107820731a3
01a38647cfd2bd6c4d7b0a7b
0b7b016c94e43d16632dec2f784522b1432e3ea1174b0d5e0d478147318231472087205e
0d4b02666c7b0b7b
0b7b8c6c4d3f2562162dec2f78197a228b222e023ea1174b295e4b0d4782470d5e875e17
4b17d894b57b0b7b
087b814d7b817b4d874d483d6216685f2f852fda7a452243834302a16d816d2985295e4b
cf0d5e885eca1729e9dd9c6c7b0b7b
097b826c7b6c8d6ccc003dd1e2e711d904277a452281222e862e026d3e6d294b8c4b1729
6d028b96b1337f6c4d7b0a7b
077b944d7b6c4d6c4da469c6b6e2505fbc2f7844da457a4381432e012e823ea1178c17a1
6d3ea16d2e5b27ead54d7b0a7b
047b864d6c4d3b6c103b843b4dc58cc687c66216635fd9ec788178348134738173438143
2e832e3ea13e8b3ed82e3e0a5baf366cf04d7b0a7b
017b814d6c826c3bc501c501b281c5b201b28c8669643dd150e7bceca911783482344522
01228143968196d881d84386432e0a456f9d6c826c4d7b0a7b
964d3b61c559b20be8a477cd77cc8677cd7609006216505f875feca92f1134da4586455d
2243962273017388dd152f0f4d7b6c4d7b0a7b
886c10b2e8a477cc86bb83bb70a8b38bb313a846ae00acd168e7635f855fec2f78443402
340122877a452734450406b583b57b4d7b0b7b
8cc5b29305bb70a826659ec3bac381c3288928adee69c6d11650635f015f93a92f784434
4434450a34446f4434aa794d21c77b0c7b
9ae877bbb32665ba8cd076eeb8765703d01feec2693d25b9efe2635f835fa9d92f022f81
af448144118911bc4edeb54d21c7217b0b7b
8ca486a89ebad072c4ae42c2531d031d85c2b797693d628262d168016881635f815fbc01
bc8aa911bc63081cc9ea6c4d7b0e7b
8a77bba8bad0b8aec2531dbe86beb0be37be37be84be1de4b03d853dac25621668016882
2d08638263c868856881eaf06c4d014d0e7b
8977bb26bad0c4aeb71dbe81be0902098137098209be1d841db79758b601b6831662b916
8216b96b866b168f6e4db54d014d827b4d7b0d7b
8fa4867c6548d0eec4ae0353b7531dc21d811d53015301ae913fb8723ff39958694ab69f
a732a64db5f04d824d7b4d814d7b0e7b
88e87786b32665ba8cd082d072b801b891c41f3c1f3c1fee1228c346267cbb954c39b581
b54d824db54d844d7b6c7b4d814d7b0f7b
87c5b2d6cdbbb3a8f483f465c3ba02ba01288e5601ad019ea055b3bbcd4cb210b54d014d
027b826c4d7b017b81217b817b2181217b0b7b
863bc5b2e8a477868286bbc181c1b383b37ca81301130141012c877486c0246a59101a85
1a4d7b213b7b017b81217b057b81217b0b7b
864d3b61c559b2e882e8a4778677cdc0cdc0cd408740054024d66a0b598559c5101a217b
867b217b217b217b067b81217b0c7b
%
% Compression made this file 26.46% of the uncompressed size.
%
showpage
% stop using temporary dictionary
end
% restore original state
origstate restore
%%Trailer
|