@code{(require 'pnm)}
@ftindex pnm


@defun pnm:type-dimensions path

The string @var{path} must name a @dfn{portable bitmap graphics} file.
@cindex portable bitmap graphics
@code{pnm:type-dimensions} returns a list of 4 items:
@enumerate
@item
A symbol describing the type of the file named by @var{path}.
@item
The image width in pixels.
@item
The image height in pixels.
@item
The maximum value of pixels assume in the file.
@end enumerate

The current set of file-type symbols is:
@table @asis
@item pbm
@itemx pbm-raw
@cindex pbm
@cindex pbm-raw
Black-and-White image; pixel values are 0 or 1.
@item pgm
@itemx pgm-raw
@cindex pgm
@cindex pgm-raw
Gray (monochrome) image; pixel values are from 0 to @var{maxval}
specified in file header.
@item ppm
@itemx ppm-raw
@cindex ppm
@cindex ppm-raw
RGB (full color) image; red, green, and blue interleaved pixel values
are from 0 to @var{maxval}
@end table
@end defun


@defun pnm:image-file->array path array


Reads the @dfn{portable bitmap graphics} file named by @var{path} into
@cindex portable bitmap graphics
@var{array}.  @var{array} must be the correct size and type for
@var{path}.  @var{array} is returned.


@defunx pnm:image-file->array path

@code{pnm:image-file->array} creates and returns an array with the
@dfn{portable bitmap graphics} file named by @var{path} read into it.
@cindex portable bitmap graphics
@end defun


@defun pnm:array-write type array maxval path comment @dots{}


Writes the contents of @var{array} to a @var{type} image file named @var{path}.  The file
will have pixel values between 0 and @var{maxval}, which must be compatible
with @var{type}.  For @samp{pbm} files, @var{maxval} must be @samp{1}.
@var{comment}s are included in the file header.
@end defun