[fa.laser-lovers] Logos, images, fonts and PostScript

laser-lovers@uw-beaver (07/27/85)

From: adobe!shore@Glacier (Andrew Shore)

All of the information that has recently been posted about
user-defined fonts, bitmap images, logos, etc. has been
correct, but I thought I'd touch on a few points and try
and bring it all together.

In the version of PostScript present in the Apple LaserWriter,
the speed of the "image" and "imagemask" commands is sensitive
to the orientation of the source image with respect to the
orientation of the device coordinate system.  Images whose scan
line data is oriented with the "fast scan direction" of the
printer will go fast.  In the LaserWriter, the "fast scan
direction" is along the short edge of the paper.  Images (even
binary bitmap ones) rotated 90 degrees with respect to the fast
scan direction may take up to 4 times longer to handle.  So the
result is: if your logo "goes the other way", rotate it 90
degrees once before sending it to the LaserWriter.  This
situation has been improved on later versions of PostScript.

To enable the logo definition (and character image) to "live"
from PostScript job to job, it should be downloaded outside the
printer's "server loop".  There are examples of this in the
TranScript distribution (see ehandler.ps).  The PostScript
character cache has a user-setable cut-off limit for the largest
character it is willing to cache.  If your logo is large, it
won't make it into the cache under normal circumstances.  You
can set the limit higher so that the character will be cached --
see the setcachelimit and cachestatus operators.  Also, use a
setcachedevice type of BuildChar routine (not a setcharwidth
one) to enable your character to be cached.  In your logo's
BuildChar routine, try uping the limit (by a factor of 4 or so
for starters), do the setcachedevice, image your logo, then
reset the cache limit.  Remember that the PostScript character
cache is managed with an LRU scheme, so that your logo might get
flushed from the cache when space is needed. This means that on
some future occasions, "show"ing your logo character will again
cause your BuildChar routine to get called and the character
image to get built (and cached) again.  On other occasions (when
it is still in the cache), BuildChar will not get called and the
logo image in the cache will be used.

One more techinical correction.  PostScript itself does not do
an "smoothing" on any graphic shapes (bitmaps or otherwise).
Since images can be scaled, PostScript does do resampling of
source images under some circumstances, but this is not a
"smoothing" process (in the Macintosh/QuickDraw sense). On
Macintosh-generated PostScript documents however, the Apple code
does, in some circumstances, do Mac/QD bitsmoothing on
Mac-generated raster images and downloaded Mac bitmap fonts (see
the messages by Alan Crosswell about the Mac QuickDraw
PostScript header, etc).

Hope all this helps,
--Andy Shore
  Adobe Systems Incorporated