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