summaryrefslogtreecommitdiffstats
path: root/Doc/lib/libjpeg.tex
blob: a10e06c2cc4dd1e968e9f6e693fadd686310a3bf (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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
\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}
c Tcl is a high-level, general-purpose, interpreted, dynamic programming language. It was designed with the goal of being very simple but powerful.
summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* * doc/pkgMkIndex.n: Modified [pkg_mkIndex] to use -nocase matchingdgp2003-02-253-4/+12
| | | | | | * library/package.tcl: of -load patterns, to better accomodate common user errors due to confusion between [package names] names and [info loaded] names.
* * tests/pid.test: See below [Bug #678412].andreas_kupries2003-02-253-12/+16
| | | | * tests/io.test: Made more robust against spaces in paths [Bug #678400].
* * tests/execute.test: cleaning up testobj's at the end, to avoidMiguel Sofer2003-02-252-1/+10
| | | | leak warning by valgrind.
* Fix for Bug #571002vasiljevic2003-02-222-2/+12
|
* fixed typodas2003-02-221-1/+1
|
* Stopped sign-bit propagation in [binary scan] of wide values. [Bug #690774]dkf2003-02-213-21/+35
|
* * mac/tclMacChan.c (TclpCutFileChannel, TclpSpliceFileChannel):das2003-02-212-1/+97
| | | | Implemented missing cut and splice procs for file channels.
* fixed very old typosdas2003-02-211-2/+2
|
* * unix/tclUnixPipe.c: (macosx) use vfork() instead of fork() todas2003-02-211-1/+5
| | | | | create new processes, as recommended by to Apple (vfork can be up to 100 times faster thank fork on macosx).
* * library/package.tcl (tclPkgUnknown): Minor performance tweaksdgp2003-02-212-13/+54
| | | | | to reduce the number of [file] invocations. Meant to improve startup times, at least a little bit. [Patch 687906]
* * unix/tcl.m4:das2003-02-213-2/+10
| | | | | | | * unix/tclUnixPipe.c: (macosx) use vfork() instead of fork() to create new processes, as recommended by to Apple (vfork can be up to 100 times faster thank fork on macosx). * unix/configure: regen.
* * generic/tclEncoding.c (LoadTableEncoding):hobbs2003-02-21