glenda.party
term% ls -F
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)