sho - display an image from any image file format


sho [options] file...


sho brings image(s) from a large variety of image file formats into a frame buffer. sho automatically determines and decodes the file format, so the user does not need to know the format. New options can be used before each filename.

sho can read images from stdin, using a filename -. However, some file formats do not have well-defined end-of-file characteristics, so it is often not possible to read more than one file from stdin from a single command line (see Diagnostics, below).

Some file formats include multiple images in the same file. For example, texture files contain copies of the image at multiple resolutions. Such alternate images can be read by appending ,n to the filename where n is a small integer which identifies the n-th image in the file.

The current release of sho can read the following image file formats:
TIFF PICIO RMan textures Z-files
bucket-files SGI SunRaster Targa
Wavefront Alias GIF JPEG/JFIF
IFF/ILBM Windows BMP Windows ICO Looks
X11 (xbm, xwd & xpm) Abekas (yuv & rgb)
Utah RLE PBMplus MTV PCPaint
PCPaintbrush PhotoCD 24-bit raw dumps


print the label stored with the image.
instead of loading the image, just print the image's vital statistics.
-o[ffset] x y
causes the image to be offset as it is loaded
-sleep n
pause for n seconds between images
prints the image filenames as the images are loaded.
-w xmin xmax ymin ymax
sets the extent of the framebuffer window into which the image will be loaded, for viewing image subwindows or images inset in larger spaces.
-res xres [yres [bps]]
sets the actual resolution and bits-per-sample for any image where this information is ambiguous or unavailable (e.g. a raw dump).
-dspy driver
Use the specified display driver. This can be used to do rudimentary file conversions and channel reordering. If you specify a different driver, you must use the -dspyfile parameter to specify a file name, to make sure that you don't accidentally overwrite your original file.
-dspyfile file
output to specified filename.
-ch rgba
output in the specified channel order.

This program is not as general as the various dspy programs which they may seem to replace. For example, it knows nothing about format-specific flags, can't do individual channel manipulations, can't write files, etc.


sho will print "Copying xxx file from stdin..." for certain image file formats which cannot be read directly from stdin. This is harmless, but after this message is printed, no additional image files can be read from stdin.


sho foo.tif
Simply reads foo.tif into the framebuffer. Nothing special.
sho -o 512 512 foo.pic -o 0 128 foo.tex,2
Reads foo.pic at framebuffer offset (512,512), and the one-quarter-sized version of foo.tex at framebuffer offset (0,128). Offsets are measured from the upper-left corner of the framebuffer.
sho -info *.pic
Prints the vital statistics of all the .pic files.
rsh mickey sho - <foo.yuv
Gets foo.yuv from the host machine onto mickey's framebuffer.


sho uses the RenderMan dspyserver to handle window stuff.


Probably numerous, but the most obvious ones are:

Gamma correction is not handled identically between different formats.

Can't handle 8-bit SGI images which don't supply their own colormap (type 2).

The PhotoCD reader is very preliminary and entirely non-robust.

There are still some image file formats the program can't read (!).


Pixar Animation Studios
(510) 752-3000 (voice)   (510) 752-3151 (fax)
Copyright © 1996- Pixar. All rights reserved.
RenderMan® is a registered trademark of Pixar.