summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/prosper/img/green-bullet-on-blue.ps
blob: 2f0f7b84a95d24bb62503919b5721b10134b8c0e (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
253
%!PS-Adobe-2.0 EPSF-2.0
%%Title: /export/home/goualard/TEMP/green-bullet-on-blue.ps
%%Creator: XV Version 3.10  Rev: 12/16/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 687 string def


% load up the colormap
currentfile cmap readhexstring
040e24 248a0c 1c4e14 2c5074 142e15 2cc80c 1c6f0c 24ab0c 1c2e61 2c6a6c 
0c2024 2c4ea3 1c4e44 143e21 0c1e44 2ce804 2cba0c 243e78 345a9c 1c5e0d 
1c7e0c 0c1e2c 249a0c 0c3244 2cd60a 34ae47 345abb 2c669c 0c1622 24428d 
24626c 24b20c 1c3574 2c9a44 1c6224 1c770c 34f60a 1c5612 14264c 248a2c 
143617 34be2c 0c2634 34ca24 247278 2c54b4 1c4613 247e3c 3c5aa4 345e8f 
142618 348a6c 2cee04 1c660c 041a3c 2cce08 1c3660 1c466c 247e2c 2ca62c 
2cde08 3462b5 2cb22c 24920d 2cc20c 143834 247628 1c5628 142a5e 0c0e24 
2c56ac 1c5844 24860d 24a20d 3c5eb4 2c66a8 2c4a99 2cb210 245e54 1c3614 
144627 246e0c 1c316c 141e19 3452a8 2c964c 247254 2c62ac 141e30 345ec4 
0c172c 144634 2c5c8c 1c3a7c 24760c 142634 246a17 2cd214 2c4678 1c4e2c 
1c3214 2caa0c 2c668c 2c8c54 141e44 34e60c 34b63c 34a45c 1c682c 1c5a1c 
1c461c 2c7e64 3c62a9 34ee07 248a1c 1c521c 2c4e8c 2c945c 246664 1c2e4c 
245064 1c4854 1c3e54 2c3a64 246a3c 2c863c 349e5c 24467c 248664 34be3c 
1c4014 24800c 2c5e7c 24664c 2c824c 34a23c 2ca61c 34926c 34fe0c 2cc219 
2c628c 2c7264 243a7b 34669c 2c4694 3456b8 3c5c94 0c1837 34688c 345294 
143224 2c52ac 1c5254 24724c 2cbe14 345eac 1c5e34 142654 34c634 24921c 
143944 0c122c 1c5654 24721c 141f3c 24761c 14263c 142254 1c2a54 1c2a5c 
3466a4 3462aa 34d21c 243e84 0c1e3c 24861c 2c4aa4 2c4684 34b64c 243a84 
041229 248e0d 1c5210 143214 1c3261 2c52a4 2c8e48 247644 2cbe0a 345ea4 
1c620f 249e0d 2cda07 34b24c 345eba 2c6a96 0c1a20 244694 34fa0c 1c5a0e 
142a44 143a1c 0c2a2c 247678 1c4a13 3c5eab 142a15 1c6a0f 2cd20a 1c4a64 
248224 2ce208 2cb624 24960c 1c5a2c 0c1222 24a60c 2cb60c 1c3a15 24720d 
142219 247a0d 142a30 2cae0d 2c6a84 14224b 34ea09 34f207 2c6274 
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

84591a591a5982591a5982591a5982591a5982591a5982591a5982591a5982591a598259
1a5982591a5982591a5982591a5982591a5982591a5982591a5982591a5982591a598259
1a5982591a590059
3a59001a
015981915989591a591a591a591a591a011a90591a591a591a591a591a591a591a591a59
82592d5982591a5992591a591a591a591a591a591a591a591a591a590159
8191590159891a591a591a591a591a590259811a5982591a59015982573d5786571b4b1b
4b1b4b824b57590159871a591a591a591a598c591a591a591a591a591a591a59
0159811a590859831a591a5982591a598b591a5957947656bb2f7d27ba87ba676f2cc357
1a590559811a590859811a590059
8c591a591a591a591a591a591a590159831a591a598c59c2ab8c1e85423aaf3f16bf4989
493b877e33cb4b57591a831a591a598a591a591a591a591a591a5982591a59
0159811a590159812d590159812d5982591a5901598e1a59c21b4e9c6ca53a48b5d5bf88
df89df1fd43ed419752c575982591a5982592d590159812d590159812d5982591a590059

82591a59825991590159812d590159812d5995591a591ac25ca2d6a35e1448b5d5bf6507
1f10bc400586058b6a6bcb4b5982592d590159812d590159812d590359811a59
82591a590659811a590159812d599159c2840cd622512383013f1649071f10bc05890537
d0376181c1804b590159811a590159811a590159832d592d5981591a
82591a5984592d592d5982592d5982591a59015985c25c5b4313068e068348b5d5bfd84d
1fbc0537d018c089c018612bc1cb57591a5982591a590159811a590259811a590059
82591a590759812d5981591a901a8f7963c7be605e1448b51649df4dbc05830518c0d38b
d369d33cac9e6b2c57591a5984592d592d5982591a590159811a59
811a590159812d5984592d59915901598f1a59cdd15073c7be062383013fbf491f901fbc
05d0c0d30fe234e269d3618175c35982591a590359812d5984591a591a59
82591a590759991a591a595ca06eb6c760065e83013fbf6507104037d03c0fe2248d2434
71d3182bb2cb57591a591a590359812d590159001a
811a5988591a5991591a592d5993591a59cd390dccb6c7be51238301d5bfd80710059105
183ce234c68a240f69c0d02989c3591a590159832d592d590259811a59
82591a590259832d591a59a7591a591a31170dccb61335065e8301d5bf6507104005183c
0f7124c6e334d3c0378b6bcb57591a590459842d591a591a
82591a5982592d590359811a599759c262410dccb6c735062383013f16d81f104005d0c0
6934013489e20f6918378b19804b5986592d591a5991590459
82591a590259832d591a59a7591a591a7a96822eb6c7be512383013f1649df1fbc053718
c0690fe20f3cc0d0058b3e67c3591a590459842d591a591a
811a590159812d5902599b1a591a59cda0b7822e02c7becfdb1448b5d5bf071f104005d0
18c03c813cc089c0d037059adf554b1a590159832d592d590259811a59
82591a590359811a590159991a5930c8b7c92e0225136006dd83b5d516d8071fbc400537
d0188118d081d0058805bcd90721c3591a590459812d5982591a59
811a5982592d5982592d5996591a591a59cdca642882ccb6133506231401b5d5bf071f83
1fbc400581053781370501058d40101f07214b1a591a591a5991590259811a59
82591a590459812d590159011a910a04da82cc02c7be605edd83013f1649651f831f10bc
40034081bc1f851f076527c35982591a590359812d590159001a
82591a59845991592d590259851a59cd2ace288e282e0225133506238348b53fbf490781
071f811f10021081d91f881fdfd8bfba4b591a5984592d592d590259811a59
0159811a590259831a591a5996591ac2c832642882ccb6c7be60db238301b53f16bf6507
0107831f071f0787076549169f861b5982591a590359842d591a591a
811a590159821a591a811a590159871a59cd38dcce28828b8202251335065edd8348b5d5
83d516bfd801d88165d801d886bf16d527564b1a811a590259812d590459
84591a591a590259812d5981591a011a926215ce044f82cc022513355106dd144801b5d5
81d5168116bf01bf011686d53f722f8d4b5984591a592d5901598491591a591a
82591a590159021a8b591a2d59914a9236dc04b782898202b625be355106dd83828348b5
85b53fd53fd53f813fb586b501d299e0571a811a590259812d590259811a59
84591a592d1a821a2d1a831a2d912d882d9154b80a32044f8289820225c7be3551062383
018301480301024885834209aac2590159812d590259812d5982591a59
041a842d912d912d972d912d975462c4dcceb728822e02b6c71335cfdb0623dd14831483
1483028385dda57c66575982591a5902598191590259811a59
81592d042d03b094c590c54cb1770adcceb728822e02b62513be35510681065e815e238c
23dd235e23067c76abc2591a5982592d590259812d590159001a
842d912d97b081b0c58ac51dad5dad5db3208e7b538e5332ceb728822ecc0225c713be35
cf83cf06db06820651cf89cf6c4e94c2591a591a590259812d590259811a59
87912db0c51d5db35201528ea9440844a944a8261c5332ce6428828482cc02b625812513
8113be81be35023586be22478cabc25982591a5982592d590259842d591a591a
840bb0c55d5281529d8b9da7e10e68ae68aea493585301538332ce64288528822ecc02b6
82b625c703c7866dd60ce4ab1a5984591a591a5902598191590459
880b1db35244a7680e93019383b4a1b4a182a15aa189a1d71c53dc3264b7da82018201cc
020201b68673639831abc2590159811a590159812d590259842d591a591a
864c1d2044a70e938793a1b400d70045000100824500d701d78853dc32ce046428da8281
822e012e866e635b78319b590259811a5982592d590259812d590259811a59
8b4c1d2044a70e93b4a1b4d70084004500450083004500d785d71cc453dcce85ceb74f28
4fc987c941a0d15cab3d5982591a590159811a590159812d590259812d5982591a59
88b0c55d529da7680e930193875aa1b4a1d7a1d71c861c5a931558a65f835fde32ca88ca
96a0790331cdc2590559811a5982591a5902598191590259811a59
880bb01db32052449de188e10e68ae68ae0eae0e830e680e9d8d9d44b8208e7f74951230
cdbd70c201c282591a5984591a591a5982591a5982592d590259812d590159001a
86542db0c51d5d208820520844a944a944a901a98c4408b852205d8e1dc5b00b2d1a011a
0159831a591a590259811a5982591a5982592d590259812d590259811a59
831a2d540b830b4cc51d811dad81ad5d845d8e5d8e5d885d115dad1d901d4c0b830b9791
1a811a590759011a82591a5904598191590259842d591a591a
011a0191832d97540b810b4c014c82907490839074904c024c890bb99746912d1a592d59
82592d590159831a591a590159811a5984592d592d5984591a5991590459

%
% Compression made this file 35.35% of the uncompressed size.
%


showpage

% stop using temporary dictionary
end

% restore original state
origstate restore

%%Trailer