%%BeginProlog
%
% Display a color image. The image is displayed in color on
% Postscript viewers or printers that support color, otherwise
% it is displayed as grayscale.
%
/DirectClassPacket
{
%
% Get a DirectClass packet.
%
% Parameters:
% red.
% green.
% blue.
% length: number of pixels minus one of this color (optional).
%
currentfile color_packet readhexstring pop pop
compression 0 eq
{
/number_pixels 3 def
}
{
currentfile byte readhexstring pop 0 get
/number_pixels exch 1 add 3 mul def
} ifelse
0 3 number_pixels 1 sub
{
pixels exch color_packet putinterval
} for
pixels 0 number_pixels getinterval
} bind def
/GrayDirectClassPacket
{
%
% Get a DirectClass packet; convert to grayscale.
%
% Parameters:
% red
% green
% blue
% length: number of pixels minus one of this color (optional).
%
currentfile color_packet readhexstring pop pop
color_packet 0 get 0.299 mul
color_packet 1 get 0.587 mul add
color_packet 2 get 0.114 mul add
cvi
/gray_packet exch def
compression 0 eq
{
/number_pixels 1 def
}
{
currentfile byte readhexstring pop 0 get
/number_pixels exch 1 add def
} ifelse
0 1 number_pixels 1 sub
{
pixels exch gray_packet put
} for
pixels 0 number_pixels getinterval
} bind def
/GrayPseudoClassPacket
{
%
% Get a PseudoClass packet; convert to grayscale.
%
% Parameters:
% index: index into the colormap.
% length: number of pixels minus one of this color (optional).
%
currentfile byte readhexstring pop 0 get
/offset exch 3 mul def
/color_packet colormap offset 3 getinterval def
color_packet 0 get 0.299 mul
color_packet 1 get 0.587 mul add
color_packet 2 get 0.114 mul add
cvi
/gray_packet exch def
compression 0 eq
{
/number_pixels 1 def
}
{
currentfile byte readhexstring pop 0 get
/number_pixels exch 1 add def
} ifelse
0 1 number_pixels 1 sub
{
pixels exch gray_packet put
} for
pixels 0 number_pixels getinterval
} bind def
/PseudoClassPacket
{
%
% Get a PseudoClass packet.
%
% Parameters:
% index: index into the colormap.
% length: number of pixels minus one of this color (optional).
%
currentfile byte readhexstring pop 0 get
/offset exch 3 mul def
/color_packet colormap offset 3 getinterval def
compression 0 eq
{
/number_pixels 3 def
}
{
currentfile byte readhexstring pop 0 get
/number_pixels exch 1 add 3 mul def
} ifelse
0 3 number_pixels 1 sub
{
pixels exch color_packet putinterval
} for
pixels 0 number_pixels getinterval
} bind def
/PseudoClassImage
{
%
% Display a PseudoClass image.
%
% Parameters:
% class: 0-PseudoClass or 1-Grayscale.
%
currentfile buffer readline pop
token pop /class exch def pop
class 0 gt
{
currentfile buffer readline pop
token pop /depth exch def pop
/grays columns 8 add depth sub depth mul 8 idiv string def
columns rows depth
[
columns 0 0
rows neg 0 rows
]
{ currentfile grays readhexstring pop } image
}
{
%
% Parameters:
% colors: number of colors in the colormap.
% colormap: red, green, blue color packets.
%
currentfile buffer readline pop
token pop /colors exch def pop
/colors colors 3 mul def
/colormap colors string def
currentfile colormap readhexstring pop pop
systemdict /colorimage known
{
columns rows 8
[
columns 0 0
rows neg 0 rows
]
{ PseudoClassPacket } false 3 colorimage
}
{
%
% No colorimage operator; convert to grayscale.
%
columns rows 8
[
columns 0 0
rows neg 0 rows
]
{ GrayPseudoClassPacket } image
} ifelse
} ifelse
} bind def
/DisplayImage
{
%
% Display a DirectClass or PseudoClass image.
%
% Parameters:
% x & y translation.
% x & y scale.
% label pointsize.
% image label.
% image columns & rows.
% class: 0-DirectClass or 1-PseudoClass.
% compression: 0-none or 1-RunlengthEncoded.
% hex color packets.
%
gsave
/buffer 512 string def
/byte 1 string def
/color_packet 3 string def
/pixels 768 string def
currentfile buffer readline pop
token pop /x exch def
token pop /y exch def pop
x y translate
currentfile buffer readline pop
token pop /x exch def
token pop /y exch def pop
currentfile buffer readline pop
token pop /pointsize exch def pop
/Times-Roman findfont pointsize scalefont setfont
x y scale
currentfile buffer readline pop
token pop /columns exch def
token pop /rows exch def pop
currentfile buffer readline pop
token pop /class exch def pop
currentfile buffer readline pop
token pop /compression exch def pop
class 0 gt { PseudoClassImage } { DirectClassImage } ifelse
grestore
} bind def
%%EndProlog
%%Page: 1 1
%%PageBoundingBox: 0 0 4 4
userdict begin
DisplayImage
0 0
4.14 4.14
12
23 23
0
0
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF0FFDFAAFFDF55D4BF55FFBF55FFDFAA
FFFBF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFDF55FFBF55FFDF55FFDF55FFDF55FFDF55FFDF55D4BF00FFBF55FFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFAAFFBF55
FFDF55FFFF55FFDF55FFDF55FFFF55FFDF55FFDF55FFDF55FFDF55D4BF55D4DFAAFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFAAFFDF55FFFF55FFFF55FFDF55FFFF55
FFFF55FFDF55FFDF55FFDF55FFDF55FFDF55FFDF55D4BF55FFDFAAFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFBF55FFFF55D4BF55AA7F55AA9F55D4BF55FFFF55FFDF55FFFF55
D4BF55AA9F55AA7F55D4BF55FFBF00D49F55FFFBF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFDF55FFDF55FFDF55AA9F55FFFFFFFFFFFFAA9F55FFDF55FFDF55FFDF55AA9F55FFFBF0FFFBF0
AA9F55FFBF55D4BF00D4BF55FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF0FFBF55FFDF55FFFF55
AA7F55FFFFFFFFFFFFAA7F55FFFF55FFDF55FFDF55AA7F55FFFFFFFFFFFFAA7F55FFDF00FFBF55
D49F55FFDFAAFFFFFFFFFFFFFFFFFFFFFFFFFFDFAAFFDF55FFFF55FFDF55AA7F00551F00FFFFFF
AA7F55FFFF55FFDF55FFDF55AA7F00551F00FFFFFFAA9F55FFBF55FFBF55D49F00D4BFAAFFFFFF
FFFFFFFFFFFFFFFFFFD4BF55FFDF55FFDF55FFFF557F5F557F1F00551F00AA7F00FFDF55FFDF55
FFDF557F7F557F1F00551F00AA7F00FFBF55D4BF00FFBF00AA9F55FFFFFFFFFFFFFFFFFFFFFFFF
FFBF55FFDF55FFDF55FFDF55D4BF55AA7F00AA7F55D4BF55FFDF55FFDF55FFDF55D4BF00AA7F55
AA5F55D49F00FFBF55FFBF55D4BF00AA7F55FFFFFFFFFFFFFFFFFFFFFFFFD4DF55FFDF55FFDF55
FFDF55FFDF55FFDF55FFDF55FFDF55FFDF55FFDF55FFDF55FFDF55FFDF00FFDF55FFBF55D4BF00
FFBF00D49F55D49F55FFFFFFFFFFFFFFFFFFFFFFFFFFDFAAFFBF00FFDF55FFDF55FFDF55FFDF55
FFDF55FFDF55FFDF00FFDF55FFDF55FFDF55FFBF55FFBF00D4BF55FFBF00D4BF55D49F00D4BFAA
FFFFFFFFFFFFFFFFFFFFFFFFFFFBF0D4BF55FFDF55FFDF55FFDF55AA3F00D49F55D4BF00FFDF55
FFDF55FFBF00D49F00D49F00AA3F55D4BF00FFBF55D49F00D47F55D4DFAAFFFFFFFFFFFFFFFFFF
FFFFFFFFFBF0FFBF55FFDF55FFDF00FFDF55D49F00AA3F00D49F55D4BF55D4BF00D4BF55D49F55
AA3F00D49F55FF9F00D4BF00D49F55AA9F55FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
D4BF00D4BF55FFBF55D49F55D49F55AA3F00AA3F00AA3F55AA3F00AA3F00D49F55D47F00D4BF55
FFBF00D47F55D4DFAAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFAAD4BF55FFBF00
FFBF00D49F00D49F55D47F00D49F55D47F00D49F55D47F00D4BF00FFBF00AA7F55D4BFAAFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4DFAAD49F55D4BF55FFBF55D4BF00
FFBF55D4BF00FFBF55D4BF00FFBF55D49F55AA7F55D4BFAAFFFBF0FFFBF0FFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF0FFFBF0D4BF55D49F00D49F55D49F00FFBF55D49F00
D49F55AA7F00D49F55D4DFAAFFFBF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFAAD4BFAAAA9F55AA7F55D49F55D4BFAAC0DCC0FFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF