1998-04-04 15:15:02 +08:00
|
|
|
\section{Built-in Module \module{jpeg}}
|
1997-07-18 00:34:52 +08:00
|
|
|
\label{module-jpeg}
|
1994-01-02 09:22:07 +08:00
|
|
|
\bimodindex{jpeg}
|
|
|
|
|
1998-03-15 03:47:23 +08:00
|
|
|
The module \module{jpeg} provides access to the jpeg compressor and
|
1998-04-04 15:15:02 +08:00
|
|
|
decompressor written by the Independent JPEG Group%
|
|
|
|
\index{Independent JPEG Group}%
|
|
|
|
. JPEG is a (draft?)
|
|
|
|
standard for compressing pictures. For details on JPEG or the
|
1994-08-08 20:30:22 +08:00
|
|
|
Independent JPEG Group software refer to the JPEG standard or the
|
1994-01-02 09:22:07 +08:00
|
|
|
documentation provided with the software.
|
|
|
|
|
1998-03-15 03:47:23 +08:00
|
|
|
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
|
1998-04-04 15:15:02 +08:00
|
|
|
pixel is in the lower-left corner. This means that \function{gl.lrectread()}
|
1998-03-15 03:47:23 +08:00
|
|
|
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
|
1998-04-04 15:15:02 +08:00
|
|
|
picture, in JFIF\index{JFIF} format.
|
1994-01-02 09:22:07 +08:00
|
|
|
\end{funcdesc}
|
|
|
|
|
|
|
|
\begin{funcdesc}{decompress}{data}
|
1998-04-04 15:15:02 +08:00
|
|
|
Data is a string containing a picture in JFIF\index{JFIF} format. It
|
|
|
|
returns a tuple \code{(\var{data}, \var{width}, \var{height},
|
1998-03-15 03:47:23 +08:00
|
|
|
\var{bytesperpixel})}. Again, the data is suitable to pass to
|
1998-04-04 15:15:02 +08:00
|
|
|
\function{gl.lrectwrite()}.
|
1994-01-02 09:22:07 +08:00
|
|
|
\end{funcdesc}
|
|
|
|
|
1998-03-15 03:47:23 +08:00
|
|
|
\begin{funcdesc}{setoption}{name, value}
|
|
|
|
Set various options. Subsequent \function{compress()} and
|
|
|
|
\function{decompress()} calls will use these options. The following
|
|
|
|
options are available:
|
|
|
|
|
1998-04-12 04:53:03 +08:00
|
|
|
\begin{tableii}{l|p{3in}}{code}{Option}{Effect}
|
1998-03-15 03:47:23 +08:00
|
|
|
\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
|
1998-04-12 02:46:56 +08:00
|
|
|
\code{0} and \code{100} (default is \code{75}). This only affects
|
|
|
|
compression.}
|
1998-03-15 03:47:23 +08:00
|
|
|
\lineii{'optimize'}{%
|
|
|
|
Perform Huffman table optimization. Takes longer, but results in
|
1998-04-12 02:46:56 +08:00
|
|
|
smaller compressed image. This only affects compression.}
|
1998-03-15 03:47:23 +08:00
|
|
|
\lineii{'smooth'}{%
|
|
|
|
Perform inter-block smoothing on uncompressed image. Only useful
|
1998-04-12 02:46:56 +08:00
|
|
|
for low-quality images. This only affects decompression.}
|
1998-03-15 03:47:23 +08:00
|
|
|
\end{tableii}
|
1994-01-02 09:22:07 +08:00
|
|
|
\end{funcdesc}
|