PICFILE(5)

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 ASCII header followed by binary data encoding the pixels in row-major order. The header is a list of attribute/value pairs separated by newlines, terminated 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 contain null 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 unrecognised attribute is passed over uninterpreted by all standard software, applications are welcome to include arbitrary annotations, like 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 major 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 compression. 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 according 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=value
    The order of channels.
RES=x y
    The digitizing resolution horizontally and vertically, in pixels/inch.

CMAP=
    (The value is empty.) A color map, a 256×3-byte translation table for color values, follows the header. In a full-color picture, 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:

        unsigned char 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
bcp(1), cscan(1), imscan(1), pico(1), flicks(9.1), mugs in face(9.7), rebecca(9.1), flickfile(9.5)
T. Duff, `The 10th Edition Raster Graphics System', this manual, Volume 2