blob: 1c5075fba5c58c0b75991901f2cba5106513bd49 [file] [log] [blame]
:mod:`jpeg` --- Read and write JPEG files
=========================================
.. module:: jpeg
:platform: IRIX
:synopsis: Read and write image files in compressed JPEG format.
.. index:: single: Independent JPEG Group
The module :mod:`jpeg` provides access to the jpeg compressor and decompressor
written by the 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.
.. index::
single: Python Imaging Library
single: PIL (the Python Imaging Library)
single: Lundh, Fredrik
A portable interface to JPEG image files is available with the Python Imaging
Library (PIL) by Fredrik Lundh. Information on PIL is available at
http://www.pythonware.com/products/pil/.
The :mod:`jpeg` module defines an exception and some functions.
.. exception:: error
Exception raised by :func:`compress` and :func:`decompress` in case of errors.
.. function:: compress(data, w, h, b)
.. index:: single: JFIF
Treat data as a pixmap of width *w* and height *h*, with *b* bytes per pixel.
The data is in SGI GL order, so the first pixel is in the lower-left corner.
This means that :func:`gl.lrectread` return data can immediately be passed to
:func:`compress`. Currently only 1 byte and 4 byte pixels are allowed, the
former being treated as greyscale and the latter as RGB color. :func:`compress`
returns a string that contains the compressed picture, in JFIF format.
.. function:: decompress(data)
.. index:: single: JFIF
Data is a string containing a picture in JFIF format. It returns a tuple
``(data, width, height, bytesperpixel)``. Again, the data is suitable to pass
to :func:`gl.lrectwrite`.
.. function:: setoption(name, value)
Set various options. Subsequent :func:`compress` and :func:`decompress` calls
will use these options. The following options are available:
+-----------------+---------------------------------------------+
| Option | Effect |
+=================+=============================================+
| ``'forcegray'`` | Force output to be grayscale, even if input |
| | is RGB. |
+-----------------+---------------------------------------------+
| ``'quality'`` | Set the quality of the compressed image to |
| | a value between ``0`` and ``100`` (default |
| | is ``75``). This only affects compression. |
+-----------------+---------------------------------------------+
| ``'optimize'`` | Perform Huffman table optimization. Takes |
| | longer, but results in smaller compressed |
| | image. This only affects compression. |
+-----------------+---------------------------------------------+
| ``'smooth'`` | Perform inter-block smoothing on |
| | uncompressed image. Only useful for low- |
| | quality images. This only affects |
| | decompression. |
+-----------------+---------------------------------------------+
.. seealso::
JPEG Still Image Data Compression Standard
The canonical reference for the JPEG image format, by Pennebaker and Mitchell.
`Information Technology - Digital Compression and Coding of Continuous-tone Still Images - Requirements and Guidelines <http://www.w3.org/Graphics/JPEG/itu-t81.pdf>`_
The ISO standard for JPEG is also published as ITU T.81. This is available
online in PDF form.