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.