| \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} |
| \seetext{\emph{JPEG Still Image Data Compression Standard}, by |
| Pennebaker and Mitchell, is the canonical reference for the JPEG |
| image format.} |
| |
| \seetext{The ISO standard for JPEG is also published as ITU T.81. |
| This is available in PDF form at |
| \url{http://www.w3.org/Graphics/JPEG/itu-t81.pdf}.} |
| \end{seealso} |