%!PS-Adobe-2.0 EPSF-2.0 %%Title: /home/fred/TEMP/arrow.ps %%Creator: XV Version 3.10a+FLmask Rev: 12/29/94 - by John Bradley %%BoundingBox: 290 380 322 412 %%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 32 string def % space for gray scale line /npixls 0 def /rgbindx 0 def % lower left corner 290 380 translate % size of image (on paper, in 1/72inch coords) 31.96800 31.96800 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 234 string def % load up the colormap currentfile cmap readhexstring 040204 145604 0c2e04 1c8204 343234 041a04 545654 1c6e04 0c4204 1c1a1c 146204 249604 444644 042604 144e04 040e04 245a0c 2c2e2c 145e04 0c3a04 248e04 1c4214 1c2a14 3c3e3c 042204 646264 1c7a04 144a04 1c6a04 24a204 1c560c 1c3214 248a04 144204 1c6204 4c4e4c 142a14 041604 040a04 0c3604 248604 3c3a3c 5c5e5c 1c7604 242224 249e04 0c2604 0c0e0c 2c2a2c 0c2204 040604 145a04 0c3204 1c8604 343634 041e04 5c5a5c 1c7204 0c4604 1c1e1c 146604 249a04 4c4a4c 145204 041204 1c5e04 0c3e04 249204 242624 444244 646664 1c7e04 24a604 1c5a0c 144604 1c6604 545254 0c2a04 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 32 32 8 % dimensions of data [32 0 0 -32 0 32] % mapping matrix rlecmapimage 0126820f40258125058205254082400f268126328132000e00 822640058505372e0d2e188118058405400f26328132000d00 854025182e3427022787024d183705400f26822632000b00 8725184d27423a0e1b8a1b3a4227020d3705400f26822632000900 86374d273a3f120a010a8b33011b4227020d3705400f268126000800 97313408014b3122471a2b1c0a331b42274d0d3725400f26328132000500 984d130e0a2b2f091f0314351a073c011b42274d183725400f328132000400 9802213307032f092c091e140b201a070a011b42274d1805250f810f328132000200 87343a121a142f094495442c091e430b351a070a3f3a42340d1805400f2632000100 9e270e4b470b2f09440411443b091e430b351a1c0a3f4a13020d37250f2632000000 9f270e3c352d2f092c04293611303b094b1d43351a1c120e08342e37250f263200 9f273f07282d2f0944361745290411442c164b2d14033922013a274d37250f2632 9f133f3c201d2f092c0445230c45290430442c16223d351a3c013a270d05402632 9f133f07201d2f094436173e06230c45360430443b1641202b223f420218250f26 8b133f0735482f092c04452338933806230c17290430443b1f1c07334a270d254032 9f273f07201d2f0944361723384619384c3e0c173604112c3b243f3a272e054026 99133f0735482f092c044523382a384c230c45293611442c3b240e850e130d054026 91133f07201d2f0944041723064c230c1729048d04304409154b07333a342e050f26 8a130e0735482f094404452386230c45290411448d44094928352b0a0e420218250f26 9f133f3c202d2f094404450c17290430442c3b101443352b220108272e05402632 9f270e3c352d2f092c0417290430443b091e140b35471c123f08344d37250f2632 88270e3c280b2f094404960411443b161c1d0b3547394b011b42342e37250f263200 9d343a122b142f094430443b164b1d43201a393c013a0827020d37250f2632813200 9d02213339032f092c3b164b2d43281a070a011b0813022e3725400f2632000100 9a4d130e0a2b2f091f1c4314031a070a011b0827022e3705400f26328132000200 9818343a013c163c47031a391c123f1b42270d2e3725400f263201320400 95374d274a0112223c4b0a333f3a4227020d3125400f268126328132000500 8625310d27213a0e010e8a1b0813344d180525400f26822632000800 864005310d34271301138834020d2e3725400f26822632000a00 8d26402537182e0d2e0d183705250f810f268126328132000b00 0126830f402505010501250140820f26328132000e00 01320126020f81400f810f268126328132001000 % % Compression made this file 31.80% of the uncompressed size. % showpage % stop using temporary dictionary end % restore original state origstate restore %%Trailer