diff options
Diffstat (limited to 'src/3rdparty/libtiff/html/man/TIFFRGBAImage.3tiff.html')
-rw-r--r-- | src/3rdparty/libtiff/html/man/TIFFRGBAImage.3tiff.html | 319 |
1 files changed, 319 insertions, 0 deletions
diff --git a/src/3rdparty/libtiff/html/man/TIFFRGBAImage.3tiff.html b/src/3rdparty/libtiff/html/man/TIFFRGBAImage.3tiff.html new file mode 100644 index 0000000..71b7ec8 --- /dev/null +++ b/src/3rdparty/libtiff/html/man/TIFFRGBAImage.3tiff.html @@ -0,0 +1,319 @@ +<!-- Creator : groff version 1.18.1 --> +<!-- CreationDate: Mon Mar 13 18:03:10 2006 --> +<html> +<head> +<meta name="generator" content="groff -Thtml, see www.gnu.org"> +<meta name="Content-Style" content="text/css"> +<title>TIFFRGBAImage</title> +</head> +<body> + +<h1 align=center>TIFFRGBAImage</h1> +<a href="#NAME">NAME</a><br> +<a href="#SYNOPSIS">SYNOPSIS</a><br> +<a href="#DESCRIPTION">DESCRIPTION</a><br> +<a href="#ALTERNATE RASTER FORMATS">ALTERNATE RASTER FORMATS</a><br> +<a href="#SIMULTANEOUS RASTER STORE AND DISPLAY">SIMULTANEOUS RASTER STORE AND DISPLAY</a><br> +<a href="#SUPPORTING ADDITIONAL TIFF FORMATS">SUPPORTING ADDITIONAL TIFF FORMATS</a><br> +<a href="#NOTES">NOTES</a><br> +<a href="#RETURN VALUES">RETURN VALUES</a><br> +<a href="#DIAGNOSTICS">DIAGNOSTICS</a><br> +<a href="#SEE ALSO">SEE ALSO</a><br> + +<hr> +<a name="NAME"></a> +<h2>NAME</h2> +<!-- INDENTATION --> +<table width="100%" border=0 rules="none" frame="void" + cols="2" cellspacing="0" cellpadding="0"> +<tr valign="top" align="left"> +<td width="8%"></td> +<td width="91%"> +<p>TIFFRGBAImageOK, TIFFRGBAImageBegin, TIFFRGBAImageGet, +TIFFRGBAImageEnd − read and decode an image into a +raster</p> +</td> +</table> +<a name="SYNOPSIS"></a> +<h2>SYNOPSIS</h2> +<!-- INDENTATION --> +<table width="100%" border=0 rules="none" frame="void" + cols="2" cellspacing="0" cellpadding="0"> +<tr valign="top" align="left"> +<td width="8%"></td> +<td width="91%"> +<p><b>#include <tiffio.h></b></p> +<!-- INDENTATION --> +<p><b>typedef unsigned char TIFFRGBValue; typedef struct +_TIFFRGBAImage TIFFRGBAImage;</b></p> +<!-- INDENTATION --> +<p><b>int TIFFRGBAImageOK(TIFF *</b><i>tif</i><b>, char</b> +<i>emsg[1024]</i><b>)<br> +int TIFFRGBAImageBegin(TIFFRGBAImage *</b><i>img</i><b>, +TIFF*</b> <i>tif</i><b>, int</b> <i>stopOnError</i><b>, +char</b> <i>emsg[1024]</i><b>)<br> +int TIFFRGBAImageGet(TIFFRGBAImage *</b><i>img</i><b>, +uint32*</b> <i>raster</i><b>, uint32</b> <i>width</i> <b>, +uint32</b> <i>height</i><b>)<br> +void TIFFRGBAImageEnd(TIFFRGBAImage +*</b><i>img</i><b>)</b></p> +</td> +</table> +<a name="DESCRIPTION"></a> +<h2>DESCRIPTION</h2> +<!-- INDENTATION --> +<table width="100%" border=0 rules="none" frame="void" + cols="2" cellspacing="0" cellpadding="0"> +<tr valign="top" align="left"> +<td width="8%"></td> +<td width="91%"> +<p>The routines described here provide a high-level +interface through which <small>TIFF</small> images may be +read into memory. Images may be strip- or tile-based and +have a variety of different characteristics: bits/sample, +samples/pixel, photometric, etc. Decoding state is +encapsulated in a <i>TIFFRGBAImage</i> structure making it +possible to capture state for multiple images and quickly +switch between them. The target raster format can be +customized to a particular application’s needs by +installing custom routines that manipulate image data +according to application requirements.</p> +<!-- INDENTATION --> +<p>The default usage for these routines is: check if an +image can be processed using <i>TIFFRGBAImageOK</i>, +construct a decoder state block using +<i>TIFFRGBAImageBegin</i>, read and decode an image into a +target raster using <i>TIFFRGBAImageGet</i>, and then +release resources using <i>TIFFRGBAImageEnd</i>. +<i>TIFFRGBAImageGet</i> can be called multiple times to +decode an image using different state parameters. If +multiple images are to be displayed and there is not enough +space for each of the decoded rasters, multiple state blocks +can be managed and then calls can be made to +<i>TIFFRGBAImageGet</i> as needed to display an image.</p> +<!-- INDENTATION --> +<p>The generated raster is assumed to be an array of +<i>width</i> times <i>height</i> 32-bit entries, where +<i>width</i> must be less than or equal to the width of the +image (<i>height</i> may be any non-zero size). If the +raster dimensions are smaller than the image, the image data +is cropped to the raster bounds. If the raster height is +greater than that of the image, then the image data are +placed in the lower part of the raster. (Note that the +raster is assume to be organized such that the pixel at +location (<i>x</i>,<i>y</i>) is +<i>raster</i>[<i>y</i>*<i>width</i>+<i>x</i>]; with the +raster origin in the <b>lower-left</b> hand corner.)</p> +<!-- INDENTATION --> +<p>Raster pixels are 8-bit packed red, green, blue, alpha +samples. The macros <i>TIFFGetR</i>, <i>TIFFGetG</i>, +<i>TIFFGetB</i>, and <i>TIFFGetA</i> should be used to +access individual samples. Images without Associated Alpha +matting information have a constant Alpha of 1.0 (255).</p> +<!-- INDENTATION --> +<p><i>TIFFRGBAImageGet</i> converts non-8-bit images by +scaling sample values. Palette, grayscale, bilevel, +<small>CMYK</small> , and YCbCr images are converted to +<small>RGB</small> transparently. Raster pixels are returned +uncorrected by any colorimetry information present in the +directory.</p> +<!-- INDENTATION --> +<p>The parameter <i>stopOnError</i> specifies how to act if +an error is encountered while reading the image. If +<i>stopOnError</i> is non-zero, then an error will terminate +the operation; otherwise <i>TIFFRGBAImageGet</i> will +continue processing data until all the possible data in the +image have been requested.</p> +</td> +</table> +<a name="ALTERNATE RASTER FORMATS"></a> +<h2>ALTERNATE RASTER FORMATS</h2> +<!-- INDENTATION --> +<table width="100%" border=0 rules="none" frame="void" + cols="2" cellspacing="0" cellpadding="0"> +<tr valign="top" align="left"> +<td width="8%"></td> +<td width="91%"> +<p>To use the core support for reading and processing +<small>TIFF</small> images, but write the resulting raster +data in a different format one need only override the +‘‘<i>put methods</i>’’ used to store +raster data. These methods are are defined in the +<i>TIFFRGBAImage</i> structure and initially setup by +<i>TIFFRGBAImageBegin</i> to point to routines that pack +raster data in the default <small>ABGR</small> pixel format. +Two different routines are used according to the physical +organization of the image data in the file: +<i>PlanarConfiguration</i>=1 (packed samples), and +<i>PlanarConfiguration</i>=2 (separated samples). Note that +this mechanism can be used to transform the data before +storing it in the raster. For example one can convert data +to colormap indices for display on a colormap display.</p> +</td> +</table> +<a name="SIMULTANEOUS RASTER STORE AND DISPLAY"></a> +<h2>SIMULTANEOUS RASTER STORE AND DISPLAY</h2> +<!-- INDENTATION --> +<table width="100%" border=0 rules="none" frame="void" + cols="2" cellspacing="0" cellpadding="0"> +<tr valign="top" align="left"> +<td width="8%"></td> +<td width="91%"> +<p>It is simple to display an image as it is being read into +memory by overriding the put methods as described above for +supporting alternate raster formats. Simply keep a reference +to the default put methods setup by +<i>TIFFRGBAImageBegin</i> and then invoke them before or +after each display operation. For example, the +<i>tiffgt</i>(1) utility uses the following put method to +update the display as the raster is being filled:</p> +<!-- INDENTATION --> +<pre>static void +putContigAndDraw(TIFFRGBAImage* img, uint32* raster, + uint32 x, uint32 y, uint32 w, uint32 h, + int32 fromskew, int32 toskew, + unsigned char* cp) +{ + (*putContig)(img, raster, x, y, w, h, fromskew, toskew, cp); + if (x+w == width) { + w = width; + if (img->orientation == ORIENTATION_TOPLEFT) + lrectwrite(0, y-(h-1), w-1, y, raster-x-(h-1)*w); + else + lrectwrite(0, y, w-1, y+h-1, raster); + } +} +</pre> +<!-- INDENTATION --> +<p>(the original routine provided by the library is saved in +the variable <i>putContig</i>.)</p> +</td> +</table> +<a name="SUPPORTING ADDITIONAL TIFF FORMATS"></a> +<h2>SUPPORTING ADDITIONAL TIFF FORMATS</h2> +<!-- INDENTATION --> +<table width="100%" border=0 rules="none" frame="void" + cols="2" cellspacing="0" cellpadding="0"> +<tr valign="top" align="left"> +<td width="8%"></td> +<td width="91%"> +<p>The <i>TIFFRGBAImage</i> routines support the most +commonly encountered flavors of <small>TIFF.</small> It is +possible to extend this support by overriding the +‘‘<i>get method</i>’’ invoked by +<i>TIFFRGBAImageGet</i> to read <small>TIFF</small> image +data. Details of doing this are a bit involved, it is best +to make a copy of an existing get method and modify it to +suit the needs of an application.</p> +</td> +</table> +<a name="NOTES"></a> +<h2>NOTES</h2> +<!-- INDENTATION --> +<table width="100%" border=0 rules="none" frame="void" + cols="2" cellspacing="0" cellpadding="0"> +<tr valign="top" align="left"> +<td width="8%"></td> +<td width="91%"> +<p>Samples must be either 1, 2, 4, 8, or 16 bits. +Colorimetric samples/pixel must be either 1, 3, or 4 (i.e. +<i>SamplesPerPixel</i> minus <i>ExtraSamples</i>).</p> +<!-- INDENTATION --> +<p>Palette image colormaps that appear to be incorrectly +written as 8-bit values are automatically scaled to +16-bits.</p> +</td> +</table> +<a name="RETURN VALUES"></a> +<h2>RETURN VALUES</h2> +<!-- INDENTATION --> +<table width="100%" border=0 rules="none" frame="void" + cols="2" cellspacing="0" cellpadding="0"> +<tr valign="top" align="left"> +<td width="8%"></td> +<td width="91%"> +<p>All routines return 1 if the operation was successful. +Otherwise, 0 is returned if an error was encountered and +<i>stopOnError</i> is zero.</p> +</td> +</table> +<a name="DIAGNOSTICS"></a> +<h2>DIAGNOSTICS</h2> +<!-- INDENTATION --> +<table width="100%" border=0 rules="none" frame="void" + cols="2" cellspacing="0" cellpadding="0"> +<tr valign="top" align="left"> +<td width="8%"></td> +<td width="91%"> +<p>All error messages are directed to the +<i>TIFFError</i>(3TIFF) routine.</p> +<!-- INDENTATION --> +<p><b>Sorry, can not handle %d-bit pictures</b>. The image +had <i>BitsPerSample</i> other than 1, 2, 4, 8, or 16.</p> +<!-- INDENTATION --> +<p><b>Sorry, can not handle %d-channel images</b>. The image +had <i>SamplesPerPixel</i> other than 1, 3, or 4.</p> +<!-- INDENTATION --> +<p><b>Missing needed "PhotometricInterpretation" +tag</b>. The image did not have a tag that describes how to +display the data.</p> +<!-- INDENTATION --> +<p><b>No "PhotometricInterpretation" tag, assuming +RGB</b>. The image was missing a tag that describes how to +display it, but because it has 3 or 4 samples/pixel, it is +assumed to be <small>RGB.</small></p> +<!-- INDENTATION --> +<p><b>No "PhotometricInterpretation" tag, assuming +min-is-black</b>. The image was missing a tag that describes +how to display it, but because it has 1 sample/pixel, it is +assumed to be a grayscale or bilevel image.</p> +<!-- INDENTATION --> +<p><b>No space for photometric conversion table</b>. There +was insufficient memory for a table used to convert image +samples to 8-bit <small>RGB.</small></p> +<!-- INDENTATION --> +<p><b>Missing required "Colormap" tag</b>. A +Palette image did not have a required <i>Colormap</i> +tag.</p> +<!-- INDENTATION --> +<p><b>No space for tile buffer</b>. There was insufficient +memory to allocate an i/o buffer.</p> +<!-- INDENTATION --> +<p><b>No space for strip buffer</b>. There was insufficient +memory to allocate an i/o buffer.</p> +<!-- INDENTATION --> +<p><b>Can not handle format</b>. The image has a format +(combination of <i>BitsPerSample</i>, +<i>SamplesPerPixel</i>, and +<i>PhotometricInterpretation</i>) that can not be +handled.</p> +<!-- INDENTATION --> +<p><b>No space for B&W mapping table</b>. There was +insufficient memory to allocate a table used to map +grayscale data to <small>RGB.</small></p> +<!-- INDENTATION --> +<p><b>No space for Palette mapping table</b>. There was +insufficient memory to allocate a table used to map data to +8-bit <small>RGB.</small></p> +</td> +</table> +<a name="SEE ALSO"></a> +<h2>SEE ALSO</h2> +<!-- INDENTATION --> +<table width="100%" border=0 rules="none" frame="void" + cols="2" cellspacing="0" cellpadding="0"> +<tr valign="top" align="left"> +<td width="8%"></td> +<td width="91%"> +<p><b>TIFFOpen</b>(3TIFF), <b>TIFFReadRGBAImage</b>(3TIFF), +<b>TIFFReadRGBAImageOriented</b>(3TIFF), +<b>TIFFReadRGBAStrip</b>(3TIFF), +<b>TIFFReadRGBATile</b>(3TIFF), <b>libtiff</b>(3TIFF)</p> +<!-- INDENTATION --> +<p>Libtiff library home page: +<b>http://www.remotesensing.org/libtiff/</b></p> +</td> +</table> +<hr> +</body> +</html> |