\section{Built-in Module \sectcode{jpeg}}
\bimodindex{jpeg}

The module \code{jpeg} provides access to the jpeg compressor and
decompressor written by the Independent JPEG Group. JPEG is a (draft?)\
standard for compressing pictures.  For details on jpeg or the
Independent JPEG Group software refer to the JPEG standard or the
documentation provided with the software.

The \code{jpeg} module defines these functions:

\renewcommand{\indexsubitem}{(in module jpeg)}
\begin{funcdesc}{compress}{data\, w\, h\, b}
Treat data as a pixmap of width \var{w} and height \var{h}, with \var{b} bytes per
pixel.  The data is in SGI GL order, so the first pixel is in the
lower-left corner. This means that \code{lrectread} return data can
immediately be passed to compress.  Currently only 1 byte and 4 byte
pixels are allowed, the former being treated as greyscale and the
latter as RGB color.  Compress returns a string that contains the
compressed picture, in JFIF format.
\end{funcdesc}

\begin{funcdesc}{decompress}{data}
Data is a string containing a picture in JFIF format. It returns a
tuple
\code{(\var{data}, \var{width}, \var{height}, \var{bytesperpixel})}.
Again, the data is suitable to pass to \code{lrectwrite}.
\end{funcdesc}

\begin{funcdesc}{setoption}{name\, value}
Set various options.  Subsequent compress and decompress calls
will use these options.  The following options are available:
\begin{description}
\item[\code{'forcegray' }]
Force output to be grayscale, even if input is RGB.

\item[\code{'quality' }]
Set the quality of the compressed image to a
value between \code{0} and \code{100} (default is \code{75}).  Compress only.

\item[\code{'optimize' }]
Perform Huffman table optimization.  Takes longer, but results in
smaller compressed image.  Compress only.

\item[\code{'smooth' }]
Perform inter-block smoothing on uncompressed image.  Only useful for
low-quality images.  Decompress only.
\end{description}
\end{funcdesc}

Compress and uncompress raise the error \code{jpeg.error} in case of errors.
