rivers@bnlls1.nsls.bnl.gov (Mark Rivers) (10/26/90)
I have written a SIXEL driver for PV-WAVE/IDL which I would be happy to share. SIXEL is a simple protocol for sending bitmap images to printers and display terminals. It is used by DEC in their LN03 and LA100 printers and in their newer terminals. The dirver is very useful for sending images to the LN03+ laser printer. The Tektronix driver can be used for sending VECTOR graphics to the LN03+, but the SIXEl driver can be used to send greyscale images, such as those generated by the TV, SHADE_SURF, SHADE_VOLUME, etc. The driver supports the following keywords The SIXEL driver supports all of the standard graphics and imaging routines. It can display greyscale images via "dithering", i.e. turning off and on pixels in a pattern to achieve shades of grey. The Sixel driver works as follows: 1) A bitmap image of your plot is constructed in the VAX memory. 2) When the ERASE or DEVICE,/CLOSE command is issued the internal bitmap is converted into sixels and written to a disk file. This also done when PV-WAVE is exited. 3) The file can then be printed or displayed on a terminal. The SIXEL driver is selected by the command SET_PLOT, 'SIXEL' The following keywords are supported by the Sixel driver FILE=file This changes the name of the output file. The default is WAVE.SXL in the current default directory. /CLOSE Performs an ERASE command and then closes the current output file. It is necessary to close the file before trying to print it or type it from within PV-WAVE. Any open file will be closed automatically when PV-WAVE exits. /LANDSCAPE Prints the file in landscape orientation, i.e. with the X axis along the 11" dimension of the paper. /PORTRAIT Prints the file in portrait orientation, i.e. with the X axis along the 8.5" dimension of the paper. This is the default. /FLOYD Sets the dithering method to Floyd-Steinberg. This is the default. Floyd-Steinberg dithering produces nicer looking greyscales than /ORDERED dithering, but requires more compute time. /ORDERED Sets the dithering method to /ORDERED. This generally produces a less pleasing greyscale than /FLOYD, but it runs faster. /THRESHOLD Sets the dithering method to /THRESHOLD. This prints all pixels in the range 0-127 as black and pixels in the range 128-255 as white. RESOLUTION=[xres, yres] This sets the resolution of the output in pixels/inch. The default is [150,150]. Each "sixel" in your plot may be printed as one or more "pixels" on the output device. The LN03+ printer has 300 pixels per inch resolution. Thus the default value prints each sixel as a 2x2 array of pixels. For a given size plot decreasing the RESOLUTION values decreases the memory, computer time and disk space required, at the expense of output quality. SIZE=[xsize, ysize] Sets the size of the output image in inches. The default is [6,6]. The size of the bitmap is the product of the RESOLUTION and the SIZE. The result is truncated to be a multiple of 8 bits horizontally and 6 bits vertically. The default bitmap size is thus 896x900 (RESOLUTION=[150,150] and SIZE=[6,6]. The current version of the software ASSUMES that the output device has an intrinsic resolution of 300 pixels/inch in each direction. This is true for the LN03 laser printer. It is not true for other devices. In the future I will try to support accurate size and resolution on other devices. For more information: Mark Rivers (516) 282-7708 or 5626 Building 815 rivers@bnlx26.nsls.bnl.gov (Internet) Brookhaven National Laboratory rivers@bnl (Bitnet) Upton, NY 11973 BNLX26::RIVERS (Physnet) Mark Rivers (516) 282-7708 or 5626 Building 815 rivers@bnlx26.nsls.bnl.gov (Internet) Brookhaven National Laboratory rivers@bnl (Bitnet) Upton, NY 11973 BNLX26::RIVERS (Physnet)
rivers@bnlls1.nsls.bnl.gov (Mark Rivers) (03/02/91)
(This is basically a repost of an article posted a few months ago for those who may not have seen it then.) I have written a PV-WAVE and IDL driver for SIXEL devices. SIXEL stands for "six pixels" and is DEC's protocol for sending bit-mapped images to printers and terminals. It is supported by devices like the LN03 printer, some newer VT terminals and dot matrix printers. For the LN03+ printer the PV-WAVE/IDL Tektronix driver can be used for vector graphics. However, the Tektronix driver does not support grey-scale images, while my SIXEL driver does. The SIXEL driver is a full-blown PV-WAVE/IDL device driver and supports all of the graphics and imaging routines. Note that Precision Visuals has said that they will be distributing the driver I wrote with future releases of PV-WAVE. Anyone who would like to get a copy of the source code and documentation for this driver can send me e-mail at the address below. Mark Rivers (516) 282-7708 or 5626 Building 815 rivers@bnlx26.nsls.bnl.gov (Internet) Brookhaven National Laboratory rivers@bnl (Bitnet) Upton, NY 11973 BNLX26::RIVERS (Physnet)