[comp.lang.postscript] "reading the contents of a drawing surface"

gnu@hoptoad.uucp (John Gilmore) (07/13/88)

per@parrot.Philips.Com (Paul E. Rutter) wrote:
> In the June 88 issue of "Unix Review" magazine, there is an article by
> Samuel Leffler on NeWS.  On page 69, there is a discussion of reading back
> the contents of an image once it's been rendered: this is not in postscript
> because it was designed for printers, it is needed for interactive displays

Actually, this capability in printers would be very useful.  It took a
lot of wierd programming to get anything approaching reasonable speed
when printing the "Face Saver" labels at Usenixes.  The problem is that
you want to print the same image about 30 times on the same page, to
produce 30 identical labels.  You can just re-image the picture and
text 30 times, but this is really slow; it would be a lot nicer to
image it once and then bit-copy it 29 times.

The stuff I saw last year at Usenix would do it the slow way if there
was only one person in the print queue.  If there were two people, it
would print one person in two columns and the other in one column, 
do a "copypage", clear out the middle column and put the other person
in it, then do a "showpage".  If there were three people in the
queue, it would give each of them a column and do two "copypage"s and
a "showpage".  Beginning to get the [kludge!] picture?

The three primitives in NeWS that Sam might have been talking about are
copyarea, writecanvas, and writescreen.  Copyarea copies the region
outlined by the current path, to a position (deltax, deltay) from 
its current position.  Writecanvas writes the current canvas to a
file.  Writescreen writes the current canvas to a file, including
bits from canvases that lie on top of the current canvas (e.g. a
screendump).  There's also a readcanvas which reads in a rasterfile,
and an imagecanvas which images the bits from one canvas onto another.
-- 
John Gilmore    {sun,pacbell,uunet,pyramid,amdahl}!hoptoad!gnu    gnu@toad.com
      "And if there's danger don't you try to overlook it,
       Because you knew the job was dangerous when you took it"