[comp.windows.news] imaging color on news 2.1

bradr@quorum.com (Brad Rubenstein) (03/05/91)

I have a color raster bitmap that I want to "image" onto
a canvas.  I can't get it to work.

Each "pixel" of the bitmap is an 8 bit colormap entry, and
I have in hand the RGB color associated with each of the 256
pixel values.

I wrote a simple test program that attempts to image a four
color bitmap onto the canvas, and it doesn't work.
Am I missing something?

	Brad

------------ cut here ------------
%!PS

%
% This example is supposed to be read into pageview, and put a 
% 256x256 bit color image in the upper lefthand corner of the page.
%

% colormap: red, green, blue, white (eventually will have 256 colors)
/red   <ff0000ff> def
/green <00ff00ff> def
/blue  <0000ffff> def

%
% Fix this to actually find the pseudo visual
%
/pseudo framebuffer /VisualList get 0 get def
%
% create and stuff colormap
%
/cmap pseudo createcolormap def
/csegs cmap 4 0 createcolorsegment def

(NeWS/debug.ps) LoadFile

cmap /Entries get {
	/e exch def
	/slot e /Slot get def
	e slot
	    red slot get green slot get blue slot get
	    RGBcolor putcolor
	(entry: %\n) [ e ] dbgprintf
} forall

% install colormap on current canvas
currentcanvas /Colormap cmap put
cmap /Installed true put

% The image proc below creates a <width x height> pixel image
% with different colored patches (each patch has the given patchwidth
% and patchheight).  For example:
%
% 00001111
% 00001111
% 00001111
% 22223333
% 22223333
% 22223333

/width 256 def
/height 256 def
/num_patch_across 2 def
/num_patch_down 2 def
/row_data width string def
/row 0 def
/patchwidth width num_patch_across idiv def
/patchheight height num_patch_down idiv def

width height 8 matrix currentmatrix {
    /offset row patchheight idiv num_patch_across mul def
    /row row 1 add def
    0 1 width 1 sub {
	row_data exch dup patchwidth idiv offset add put
    } for
    row_data
} image
-- 
Brad Rubenstein	-- Quorum Software Systems, Inc. -- bradr@quorum.com