\section{\module{jpeg} --- Read and write JPEG files}\declaremodule{builtin}{jpeg} \platform{IRIX}\modulesynopsis{Read and write image files in compressed JPEG format.}The module \module{jpeg} provides access to the jpeg compressor anddecompressor written by the Independent JPEG Group\index{Independent JPEG Group}(IJG). JPEG is a standard forcompressing pictures; it is defined in ISO 10918. For details on JPEGor the Independent JPEG Group software refer to the JPEG standard orthe documentation provided with the software.A portable interface to JPEG image files is available with the PythonImaging Library (PIL) by Fredrik Lundh. Information on PIL isavailable at \url{http://www.pythonware.com/products/pil/}.\index{Python Imaging Library}\index{PIL (the Python Imaging Library)}\index{Lundh, Fredrik}The \module{jpeg} module defines an exception and some functions.\begin{excdesc}{error}Exception raised by \function{compress()} and \function{decompress()}in case of errors.\end{excdesc}\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 firstpixel is in the lower-left corner. This means that \function{gl.lrectread()}return data can immediately be passed to \function{compress()}.Currently only 1 byte and 4 byte pixels are allowed, the former beingtreated as greyscale and the latter as RGB color.\function{compress()} returns a string that contains the compressedpicture, in JFIF\index{JFIF} format.\end{funcdesc}\begin{funcdesc}{decompress}{data}Data is a string containing a picture in JFIF\index{JFIF} format. Itreturns a tuple \code{(\var{data}, \var{width}, \var{height},\var{bytesperpixel})}. Again, the data is suitable to pass to\function{gl.lrectwrite()}.\end{funcdesc}\begin{funcdesc}{setoption}{name, value}Set various options. Subsequent \function{compress()} and\function{decompress()} calls will use these options. The followingoptions are available:\begin{tableii}{l|p{3in}}{code}{Option}{Effect} \lineii{'forcegray'}{% Force output to be grayscale, even if input is RGB.} \lineii{'quality'}{% Set the quality of the compressed image to a value between \code{0} and \code{100} (default is \code{75}). This only affects compression.} \lineii{'optimize'}{% Perform Huffman table optimization. Takes longer, but results in smaller compressed image. This only affects compression.} \lineii{'smooth'}{% Perform inter-block smoothing on uncompressed image. Only useful for low-quality images. This only affects decompression.}\end{tableii}\end{funcdesc}\begin{seealso} \seetitle{JPEG Still Image Data Compression Standard}{The canonical reference for the JPEG image format, by Pennebaker and Mitchell.} \seetitle[http://www.w3.org/Graphics/JPEG/itu-t81.pdf]{Information Technology - Digital Compression and Coding of Continuous-tone Still Images - Requirements and Guidelines}{The ISO standard for JPEG is also published as ITU T.81. This is available online in PDF form.}\end{seealso}
\section{\module{jpeg} ---
Read and write JPEG files}
\declaremodule{builtin}{jpeg}
\platform{IRIX}
\modulesynopsis{Read and write image files in compressed JPEG format.}
The module \module{jpeg} provides access to the jpeg compressor and
decompressor written by the Independent JPEG Group
\index{Independent JPEG Group}(IJG). JPEG is a standard for
compressing pictures; it is defined in ISO 10918. For details on JPEG
or the Independent JPEG Group software refer to the JPEG standard or
the documentation provided with the software.
A portable interface to JPEG image files is available with the Python
Imaging Library (PIL) by Fredrik Lundh. Information on PIL is
available at \url{http://www.pythonware.com/products/pil/}.
\index{Python Imaging Library}
\index{PIL (the Python Imaging Library)}
\index{Lundh, Fredrik}
The \module{jpeg} module defines an exception and some functions.
\begin{excdesc}{error}
Exception raised by \function{compress()} and \function{decompress()}
in case of errors.
\end{excdesc}
\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 \function{gl.lrectread()}
return data can immediately be passed to \function{compress()}.
Currently only 1 byte and 4 byte pixels are allowed, the former being
treated as greyscale and the latter as RGB color.
\function{compress()} returns a string that contains the compressed
picture, in JFIF\index{JFIF} format.
\end{funcdesc}
\begin{funcdesc}{decompress}{data}
Data is a string containing a picture in JFIF\index{JFIF} format. It
returns a tuple \code{(\var{data}, \var{width}, \var{height},
\var{bytesperpixel})}. Again, the data is suitable to pass to
\function{gl.lrectwrite()}.
\end{funcdesc}
\begin{funcdesc}{setoption}{name, value}
Set various options. Subsequent \function{compress()} and
\function{decompress()} calls will use these options. The following
options are available:
\begin{tableii}{l|p{3in}}{code}{Option}{Effect}
\lineii{'forcegray'}{%
Force output to be grayscale, even if input is RGB.}
\lineii{'quality'}{%
Set the quality of the compressed image to a value between
\code{0} and \code{100} (default is \code{75}). This only affects
compression.}
\lineii{'optimize'}{%
Perform Huffman table optimization. Takes longer, but results in
smaller compressed image. This only affects compression.}
\lineii{'smooth'}{%
Perform inter-block smoothing on uncompressed image. Only useful
for low-quality images. This only affects decompression.}
\end{tableii}
\end{funcdesc}
\begin{seealso}
\seetitle{JPEG Still Image Data Compression Standard}{The
canonical reference for the JPEG image format, by
Pennebaker and Mitchell.}
\seetitle[http://www.w3.org/Graphics/JPEG/itu-t81.pdf]{Information
Technology - Digital Compression and Coding of
Continuous-tone Still Images - Requirements and
Guidelines}{The ISO standard for JPEG is also published as
ITU T.81. This is available online in PDF form.}
\end{seealso}