pix-fb — display a pix format RGB image file on a framebuffer


pix-fb [-aicz1 ] [-F framebuffer] [-m #lines] [-s squarefilesize] [-w file_width] [-n file_height] [-S squarescrsize] [-W scr_width] [-N scr_height] [-x file_xoff] [-y file_yoff] [-X scr_xoff] [-Y scr_yoff] [-p seconds] [file.pix]


pix-fb reads a pix(5) format file from the named file, or from standard input if no file is specified, and displays the image on the currently selected framebuffer. The environment variable FB_FILE specifies the current framebuffer, see brlcad(1). Alternatively, the framebuffer may be explicitly specified by using the -F flag.

By default, the pix file (and, automatically, the requested framebuffer size) is assumed to be 512x512 pixels. Specifying the -a flag causes the program to attempt to autosize. A table of common image sizes is consulted, and if any match the size of the input file, then the width and height values associated with that size will be used.

If the -i flag is specified, the image is output from top to bottom. Customarily, pix files are stored bottom to top, so this flag inverts the image.

The -c flag causes the screen to be cleared before the image is displayed. The default behavior is to overwrite the current image with the new image without clearing the screen.

The -z flag will zoom and center on the image being displayed to make it fill the display area, using the libfb fb_zoom() routine. fb_zoom only offers integer zoom factors, so displays with non-square screens (such as the SGI 3D machines) may find this option of limited usefulness.

The -w file_width flag specifies the width of each scanline in the input file, in pixels. The -n file_height flag specifies the height in scanlines of the input file. Both are set to to the same value via -s squarefilesize. (-W scr_width, -N scr_height, and -S squarescrsize perform these roles for the display device; if none of these three options are used, the display device uses the dimensions of the input file.)

-x file_xoff -y file_yoff and -X scr_xoff -Y scr_yoff will offset into the file or onto the screen by the given amounts. The coordinate system for these offsets is first quadrant, with the origin at the lower left corner of the image.

The -1 flag causes the image to be written to the framebuffer one line at a time, using the fb_write(3) routine. This is the default behavior. The -m #lines flag can be used to specify the number of lines to be written to the framebuffer in rectangular blocks of scanlines, using the fb_writerect(3) routine. In some circumstances, this can result in significantly faster image display, at the expense of the image being written less smoothly. If both -m and -1 are specified, -1 wins.

The -p flag specifies the (integer) number of seconds to pause before the frame-buffer is closed.


A pix(5) file contains sequences of pixels. Each pixel is stored as three unsigned chars, first red, then green, then blue. The first pixel in a pix file is the lower left corner of the image. The pixels proceed from left-to-right across each scanline, with scanlines being written from the bottom to the top of the image. By convention, pix images are usually square.


rt(1), fb-pix(1), libfb(3), pix(5)


If the pix file is shorter than expected, the program exits silently.




This software is Copyright (c) 1986-2016 by the United States Government as represented by U.S. Army Research Laboratory.


Reports of bugs or problems should be submitted via electronic mail to <>.