| 
									
										
										
										
											1998-08-10 19:42:37 +00:00
										 |  |  | \section{\module{jpeg} --- | 
					
						
							| 
									
										
										
										
											1999-02-20 04:51:16 +00:00
										 |  |  |          Read and write JPEG files} | 
					
						
							| 
									
										
										
										
											1998-07-23 17:59:49 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1999-02-20 04:51:16 +00:00
										 |  |  | \declaremodule{builtin}{jpeg} | 
					
						
							| 
									
										
										
										
											1999-03-02 16:37:17 +00:00
										 |  |  |   \platform{IRIX} | 
					
						
							| 
									
										
										
										
											1998-07-23 17:59:49 +00:00
										 |  |  | \modulesynopsis{Read and write image files in compressed JPEG format.} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1994-01-02 01:22:07 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1998-03-14 19:47:23 +00:00
										 |  |  | The module \module{jpeg} provides access to the jpeg compressor and | 
					
						
							| 
									
										
										
										
											1999-03-12 15:27:35 +00:00
										 |  |  | 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} | 
					
						
							| 
									
										
										
										
											1994-01-02 01:22:07 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1998-03-14 19:47:23 +00: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 07:15:02 +00:00
										 |  |  | pixel is in the lower-left corner. This means that \function{gl.lrectread()} | 
					
						
							| 
									
										
										
										
											1998-03-14 19:47:23 +00: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 07:15:02 +00:00
										 |  |  | picture, in JFIF\index{JFIF} format. | 
					
						
							| 
									
										
										
										
											1994-01-02 01:22:07 +00:00
										 |  |  | \end{funcdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \begin{funcdesc}{decompress}{data} | 
					
						
							| 
									
										
										
										
											1998-04-04 07:15:02 +00: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-14 19:47:23 +00:00
										 |  |  | \var{bytesperpixel})}.  Again, the data is suitable to pass to | 
					
						
							| 
									
										
										
										
											1998-04-04 07:15:02 +00:00
										 |  |  | \function{gl.lrectwrite()}. | 
					
						
							| 
									
										
										
										
											1994-01-02 01:22:07 +00:00
										 |  |  | \end{funcdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1998-03-14 19:47:23 +00: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-11 20:53:03 +00:00
										 |  |  | \begin{tableii}{l|p{3in}}{code}{Option}{Effect} | 
					
						
							| 
									
										
										
										
											1998-03-14 19:47:23 +00: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-11 18:46:56 +00:00
										 |  |  |     \code{0} and \code{100} (default is \code{75}).  This only affects | 
					
						
							|  |  |  |     compression.} | 
					
						
							| 
									
										
										
										
											1998-03-14 19:47:23 +00:00
										 |  |  |   \lineii{'optimize'}{%
 | 
					
						
							|  |  |  |     Perform Huffman table optimization.  Takes longer, but results in | 
					
						
							| 
									
										
										
										
											1998-04-11 18:46:56 +00:00
										 |  |  |     smaller compressed image.  This only affects compression.} | 
					
						
							| 
									
										
										
										
											1998-03-14 19:47:23 +00:00
										 |  |  |   \lineii{'smooth'}{%
 | 
					
						
							|  |  |  |     Perform inter-block smoothing on uncompressed image.  Only useful | 
					
						
							| 
									
										
										
										
											1998-04-11 18:46:56 +00:00
										 |  |  |     for low-quality images.  This only affects decompression.} | 
					
						
							| 
									
										
										
										
											1998-03-14 19:47:23 +00:00
										 |  |  | \end{tableii} | 
					
						
							| 
									
										
										
										
											1994-01-02 01:22:07 +00:00
										 |  |  | \end{funcdesc} | 
					
						
							| 
									
										
										
										
											1999-03-12 15:27:35 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \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} |