term% cat index.txt PICFILE(9.6) PICFILE(9.6)
NAME
picfile - raster graphic image format
DESCRIPTION
Files in this format store images represented as two-dimensional arrays
of multiple-channel pixels. A picfile consists of an textual header
followed by binary data encoding the pixels in row-major order. The
header is a list of attribute/value pairs separated by newlines, termi‐
nated by an empty line. Each header line has the form name=value. The
name may not contain an ASCII NUL, newline, or the value may not con‐
tain NUL or newline. The last line of a header is empty.
The standard attributes are described below; all but TYPE and WINDOW
are optional. TYPE must come first; otherwise order is irrelevant. As
any unrecognized attribute is passed over uninterpreted by all standard
software, applications are welcome to include arbitrary annotations,
such as SHOESIZE=10½, if they wish.
TYPE=type
How the pixels are encoded. Standard types are
runcode
A run-length encoding. The data are a sequence of
(nchan+1)-byte records each containing a count k and
nchan bytes giving a pixel value to be repeated k+1
times. A run may not span scanlines.
dump A two-dimensional array of nchan-byte records in row ma‐
jor order.
bitmap One-bit pixels, packed into bytes high bit leftmost.
Zero bits are white, one bits are black. Rows are padded
with zeros to a multiple of 16 bits.
ccitt-g4
A black-and-white image under CCITT FAX Group 4 compres‐
sion. This format is highly compressive on images of
text and line art. Similarly, and for Group 3, 1-D and
2-D.
pico A sequence of nchan two-dimensional arrays of single
bytes.
ccir601
Pixels are in dump order, 2 bytes per pixel encoded ac‐
cording to the IEEE digital component video standard.
WINDOW=x0 y0 x1 y1
The x,y coordinates of the upper left corner and the point just
diagonally outside the lower right corner, x increasing to the
right, y down.
NCHAN=nchan
The number of channels, default 1.
CHAN=channels
The names of the channels. Channels should be nchan characters
long. Certain substrings of channels are conventionally under‐
stood by most programs that read and write picture files: m is a
monochrome image channel, rgb is a full-color image, a is an al‐
pha channel, and z... is a floating point (four-byte, single
precision) z value. Some very old monochrome pictures have
CHAN=r. This usage is deprecated but still recognized by some
programs.
RES=x y
The digitizing resolution horizontally and vertically, in pix‐
els/inch.
CMAP= (The value is empty.) A color map, a 256×3-byte translation ta‐
ble for color values, follows the header. In a full-color pic‐
ture, each color-map row maps pixel values of the corresponding
channel. In a monochrome picture, pixel values index the color
map to yield red, green and blue, like this:
uchar cmap[256][3];
red = cmap[pixel][0];
green = cmap[pixel][1];
blue = cmap[pixel][2];
EXAMPLES
sed '/^$/q' image
Print a header. A sample header follows.
TYPE=dump
WINDOW=0 0 512 512
NCHAN=1
CHAN=m
RES=300 300
CMAP=
COMMAND= antiquantize 'halftone CLASSIC' 512.halftone LIBERTY.anticlassic
COMMAND= halftone CLASSIC 512.liberty 512.halftone 1.75 512.halftone
COMMAND= transpose IN OUT
COMMAND= resample 512 IN OUT
COMMAND= transpose IN OUT
COMMAND= resample 512 IN OUT
COMMAND= clip 400 400 LIBERTY OUT
SEE ALSO
bitmap(6)
Tom Duff, ‘‘Raster Graphics in Plan 9''
PICFILE(9.6)