| \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. |