summaryrefslogtreecommitdiffstats
path: root/Doc/lib/libjpeg.tex
blob: 745fe32560bb58995d441d46de10b9e924aaadd3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
\section{Built-in Module \sectcode{jpeg}}
\label{module-jpeg}
\bimodindex{jpeg}

The module \module{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 \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 \code{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 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{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|l|}{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}