10dcb9ef1SAndrey Kiselev<!-- Creator : groff version 1.18.1 --> 2f14d1a56SAndrey Kiselev<!-- CreationDate: Sat Feb 24 18:37:17 2007 --> 387c5da6fSAndrey Kiselev<html> 487c5da6fSAndrey Kiselev<head> 587c5da6fSAndrey Kiselev<meta name="generator" content="groff -Thtml, see www.gnu.org"> 687c5da6fSAndrey Kiselev<meta name="Content-Style" content="text/css"> 787c5da6fSAndrey Kiselev<title>TIFFReadRGBATile</title> 887c5da6fSAndrey Kiselev</head> 987c5da6fSAndrey Kiselev<body> 1087c5da6fSAndrey Kiselev 1187c5da6fSAndrey Kiselev<h1 align=center>TIFFReadRGBATile</h1> 1287c5da6fSAndrey Kiselev<a href="#NAME">NAME</a><br> 1387c5da6fSAndrey Kiselev<a href="#SYNOPSIS">SYNOPSIS</a><br> 1487c5da6fSAndrey Kiselev<a href="#DESCRIPTION">DESCRIPTION</a><br> 1587c5da6fSAndrey Kiselev<a href="#NOTES">NOTES</a><br> 1687c5da6fSAndrey Kiselev<a href="#RETURN VALUES">RETURN VALUES</a><br> 1787c5da6fSAndrey Kiselev<a href="#DIAGNOSTICS">DIAGNOSTICS</a><br> 1887c5da6fSAndrey Kiselev<a href="#SEE ALSO">SEE ALSO</a><br> 1987c5da6fSAndrey Kiselev 2087c5da6fSAndrey Kiselev<hr> 2187c5da6fSAndrey Kiselev<a name="NAME"></a> 2287c5da6fSAndrey Kiselev<h2>NAME</h2> 230dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 240dcb9ef1SAndrey Kiselev<table width="100%" border=0 rules="none" frame="void" 250dcb9ef1SAndrey Kiselev cols="2" cellspacing="0" cellpadding="0"> 260dcb9ef1SAndrey Kiselev<tr valign="top" align="left"> 270dcb9ef1SAndrey Kiselev<td width="8%"></td> 280dcb9ef1SAndrey Kiselev<td width="91%"> 290dcb9ef1SAndrey Kiselev<p>TIFFReadRGBATile − read and decode an image tile 300dcb9ef1SAndrey Kiselevinto a fixed-format raster</p> 310dcb9ef1SAndrey Kiselev</td> 320dcb9ef1SAndrey Kiselev</table> 3387c5da6fSAndrey Kiselev<a name="SYNOPSIS"></a> 3487c5da6fSAndrey Kiselev<h2>SYNOPSIS</h2> 350dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 3687c5da6fSAndrey Kiselev<table width="100%" border=0 rules="none" frame="void" 370dcb9ef1SAndrey Kiselev cols="2" cellspacing="0" cellpadding="0"> 3887c5da6fSAndrey Kiselev<tr valign="top" align="left"> 3987c5da6fSAndrey Kiselev<td width="8%"></td> 400dcb9ef1SAndrey Kiselev<td width="91%"> 410dcb9ef1SAndrey Kiselev<p><b>#include <tiffio.h></b></p> 420dcb9ef1SAndrey Kiselev</td> 4387c5da6fSAndrey Kiselev</table> 440dcb9ef1SAndrey Kiselev<!-- TABS --> 450dcb9ef1SAndrey Kiselev<table width="100%" border=0 rules="none" frame="void" 460dcb9ef1SAndrey Kiselev cols="5" cellspacing="0" cellpadding="0"> 470dcb9ef1SAndrey Kiselev<tr valign="top" align="left"> 480dcb9ef1SAndrey Kiselev<td width="8%"></td> 490dcb9ef1SAndrey Kiselev<td width="-2%"> 5087c5da6fSAndrey Kiselev 510dcb9ef1SAndrey Kiselev<p><b>#define TIFFGetR(abgr)</b></p> 520dcb9ef1SAndrey Kiselev</td> 530dcb9ef1SAndrey Kiselev<td width="25%"></td> 540dcb9ef1SAndrey Kiselev<td width="6%"></td> 550dcb9ef1SAndrey Kiselev<td width="61%"> 560dcb9ef1SAndrey Kiselev 570dcb9ef1SAndrey Kiselev<p><b>((abgr) & 0xff)</b></p> 580dcb9ef1SAndrey Kiselev</td> 590dcb9ef1SAndrey Kiselev<tr valign="top" align="left"> 600dcb9ef1SAndrey Kiselev<td width="8%"></td> 610dcb9ef1SAndrey Kiselev<td width="-2%"> 620dcb9ef1SAndrey Kiselev 630dcb9ef1SAndrey Kiselev<p><b>#define TIFFGetG(abgr)</b></p> 640dcb9ef1SAndrey Kiselev</td> 650dcb9ef1SAndrey Kiselev<td width="25%"></td> 660dcb9ef1SAndrey Kiselev<td width="6%"></td> 670dcb9ef1SAndrey Kiselev<td width="61%"> 680dcb9ef1SAndrey Kiselev 690dcb9ef1SAndrey Kiselev<p><b>(((abgr) >> 8) & 0xff)</b></p> 700dcb9ef1SAndrey Kiselev</td> 710dcb9ef1SAndrey Kiselev<tr valign="top" align="left"> 720dcb9ef1SAndrey Kiselev<td width="8%"></td> 730dcb9ef1SAndrey Kiselev<td width="-2%"> 740dcb9ef1SAndrey Kiselev 750dcb9ef1SAndrey Kiselev<p><b>#define TIFFGetB(abgr)</b></p> 760dcb9ef1SAndrey Kiselev</td> 770dcb9ef1SAndrey Kiselev<td width="25%"></td> 780dcb9ef1SAndrey Kiselev<td width="6%"></td> 790dcb9ef1SAndrey Kiselev<td width="61%"> 800dcb9ef1SAndrey Kiselev 810dcb9ef1SAndrey Kiselev<p><b>(((abgr) >> 16) & 0xff)</b></p> 820dcb9ef1SAndrey Kiselev</td> 830dcb9ef1SAndrey Kiselev<tr valign="top" align="left"> 840dcb9ef1SAndrey Kiselev<td width="8%"></td> 850dcb9ef1SAndrey Kiselev<td width="-2%"> 860dcb9ef1SAndrey Kiselev 870dcb9ef1SAndrey Kiselev<p><b>#define TIFFGetA(abgr)</b></p> 880dcb9ef1SAndrey Kiselev</td> 890dcb9ef1SAndrey Kiselev<td width="25%"></td> 900dcb9ef1SAndrey Kiselev<td width="6%"></td> 910dcb9ef1SAndrey Kiselev<td width="61%"> 920dcb9ef1SAndrey Kiselev 930dcb9ef1SAndrey Kiselev<p><b>(((abgr) >> 24) & 0xff)</b></p> 940dcb9ef1SAndrey Kiselev</td> 950dcb9ef1SAndrey Kiselev</table> 960dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 970dcb9ef1SAndrey Kiselev<table width="100%" border=0 rules="none" frame="void" 980dcb9ef1SAndrey Kiselev cols="2" cellspacing="0" cellpadding="0"> 990dcb9ef1SAndrey Kiselev<tr valign="top" align="left"> 1000dcb9ef1SAndrey Kiselev<td width="8%"></td> 1010dcb9ef1SAndrey Kiselev<td width="91%"> 1020dcb9ef1SAndrey Kiselev<p><b>int TIFFReadRGBATile(TIFF *</b><i>tif</i><b>, 1030dcb9ef1SAndrey Kiselevuint32</b> <i>x</i><b>, uint32</b> <i>y</i><b>, uint32 10487c5da6fSAndrey Kiselev*</b><i>raster</i><b>)</b></p> 1050dcb9ef1SAndrey Kiselev</td> 1060dcb9ef1SAndrey Kiselev</table> 10787c5da6fSAndrey Kiselev<a name="DESCRIPTION"></a> 10887c5da6fSAndrey Kiselev<h2>DESCRIPTION</h2> 1090dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 1100dcb9ef1SAndrey Kiselev<table width="100%" border=0 rules="none" frame="void" 1110dcb9ef1SAndrey Kiselev cols="2" cellspacing="0" cellpadding="0"> 1120dcb9ef1SAndrey Kiselev<tr valign="top" align="left"> 1130dcb9ef1SAndrey Kiselev<td width="8%"></td> 1140dcb9ef1SAndrey Kiselev<td width="91%"> 1150dcb9ef1SAndrey Kiselev<p><i>TIFFReadRGBATile</i> reads a single tile of a 1160dcb9ef1SAndrey Kiselevtile-based image into memory, storing the result in the user 1170dcb9ef1SAndrey Kiselevsupplied RGBA <i>raster</i>. The raster is assumed to be an 1180dcb9ef1SAndrey Kiselevarray of width times length 32-bit entries, where width is 1190dcb9ef1SAndrey Kiselevthe width of a tile (TIFFTAG_TILEWIDTH) and length is the 1200dcb9ef1SAndrey Kiselevheight of a tile (TIFFTAG_TILELENGTH).</p> 1210dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 1220dcb9ef1SAndrey Kiselev<p>The <i>x</i> and <i>y</i> values are the offsets from the 1230dcb9ef1SAndrey Kiselevtop left corner to the top left corner of the tile to be 1240dcb9ef1SAndrey Kiselevread. They must be an exact multiple of the tile width and 1250dcb9ef1SAndrey Kiselevlength.</p> 1260dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 1270dcb9ef1SAndrey Kiselev<p>Note that the raster is assume to be organized such that 1280dcb9ef1SAndrey Kiselevthe pixel at location (<i>x</i>,<i>y</i>) is 12987c5da6fSAndrey Kiselev<i>raster</i>[<i>y</i>*<i>width</i>+<i>x</i>]; with the 13087c5da6fSAndrey Kiselevraster origin in the <i>lower-left hand corner</i> of the 13187c5da6fSAndrey Kiselevtile. That is bottom to top organization. Edge tiles which 13287c5da6fSAndrey Kiselevpartly fall off the image will be filled out with 13387c5da6fSAndrey Kiselevappropriate zeroed areas.</p> 1340dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 1350dcb9ef1SAndrey Kiselev<p>Raster pixels are 8-bit packed red, green, blue, alpha 1360dcb9ef1SAndrey Kiselevsamples. The macros <i>TIFFGetR</i>, <i>TIFFGetG</i>, 1370dcb9ef1SAndrey Kiselev<i>TIFFGetB</i>, and <i>TIFFGetA</i> should be used to 1380dcb9ef1SAndrey Kiselevaccess individual samples. Images without Associated Alpha 1390dcb9ef1SAndrey Kiselevmatting information have a constant Alpha of 1.0 (255).</p> 1400dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 1410dcb9ef1SAndrey Kiselev<p>See the <i>TIFFRGBAImage</i>(3TIFF) page for more details 1420dcb9ef1SAndrey Kiselevon how various image types are converted to RGBA values.</p> 1430dcb9ef1SAndrey Kiselev</td> 1440dcb9ef1SAndrey Kiselev</table> 14587c5da6fSAndrey Kiselev<a name="NOTES"></a> 14687c5da6fSAndrey Kiselev<h2>NOTES</h2> 1470dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 1480dcb9ef1SAndrey Kiselev<table width="100%" border=0 rules="none" frame="void" 1490dcb9ef1SAndrey Kiselev cols="2" cellspacing="0" cellpadding="0"> 1500dcb9ef1SAndrey Kiselev<tr valign="top" align="left"> 1510dcb9ef1SAndrey Kiselev<td width="8%"></td> 1520dcb9ef1SAndrey Kiselev<td width="91%"> 1530dcb9ef1SAndrey Kiselev<p>Samples must be either 1, 2, 4, 8, or 16 bits. 1540dcb9ef1SAndrey KiselevColorimetric samples/pixel must be either 1, 3, or 4 (i.e. 1550dcb9ef1SAndrey Kiselev<i>SamplesPerPixel</i> minus <i>ExtraSamples</i>).</p> 1560dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 1570dcb9ef1SAndrey Kiselev<p>Palette image colormaps that appear to be incorrectly 1580dcb9ef1SAndrey Kiselevwritten as 8-bit values are automatically scaled to 1590dcb9ef1SAndrey Kiselev16-bits.</p> 1600dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 1610dcb9ef1SAndrey Kiselev<p><i>TIFFReadRGBATile</i> is just a wrapper around the more 1620dcb9ef1SAndrey Kiselevgeneral <i>TIFFRGBAImage</i>(3TIFF) facilities. It’s 1630dcb9ef1SAndrey Kiselevmain advantage over the similar <i>TIFFReadRGBAImage()</i> 16487c5da6fSAndrey Kiselevfunction is that for large images a single buffer capable of 16587c5da6fSAndrey Kiselevholding the whole image doesn’t need to be allocated, 16687c5da6fSAndrey Kiselevonly enough for one tile. The <i>TIFFReadRGBAStrip()</i> 16787c5da6fSAndrey Kiselevfunction does a similar operation for stripped images.</p> 1680dcb9ef1SAndrey Kiselev</td> 1690dcb9ef1SAndrey Kiselev</table> 17087c5da6fSAndrey Kiselev<a name="RETURN VALUES"></a> 17187c5da6fSAndrey Kiselev<h2>RETURN VALUES</h2> 1720dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 1730dcb9ef1SAndrey Kiselev<table width="100%" border=0 rules="none" frame="void" 1740dcb9ef1SAndrey Kiselev cols="2" cellspacing="0" cellpadding="0"> 1750dcb9ef1SAndrey Kiselev<tr valign="top" align="left"> 1760dcb9ef1SAndrey Kiselev<td width="8%"></td> 1770dcb9ef1SAndrey Kiselev<td width="91%"> 1780dcb9ef1SAndrey Kiselev<p>1 is returned if the image was successfully read and 1790dcb9ef1SAndrey Kiselevconverted. Otherwise, 0 is returned if an error was 1800dcb9ef1SAndrey Kiselevencountered.</p> 1810dcb9ef1SAndrey Kiselev</td> 1820dcb9ef1SAndrey Kiselev</table> 18387c5da6fSAndrey Kiselev<a name="DIAGNOSTICS"></a> 18487c5da6fSAndrey Kiselev<h2>DIAGNOSTICS</h2> 1850dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 1860dcb9ef1SAndrey Kiselev<table width="100%" border=0 rules="none" frame="void" 1870dcb9ef1SAndrey Kiselev cols="2" cellspacing="0" cellpadding="0"> 1880dcb9ef1SAndrey Kiselev<tr valign="top" align="left"> 1890dcb9ef1SAndrey Kiselev<td width="8%"></td> 1900dcb9ef1SAndrey Kiselev<td width="91%"> 1910dcb9ef1SAndrey Kiselev<p>All error messages are directed to the 1920dcb9ef1SAndrey Kiselev<i>TIFFError</i>(3TIFF) routine.</p> 1930dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 1940dcb9ef1SAndrey Kiselev<p><b>Sorry, can not handle %d-bit pictures</b>. The image 1950dcb9ef1SAndrey Kiselevhad <i>BitsPerSample</i> other than 1, 2, 4, 8, or 16.</p> 1960dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 1970dcb9ef1SAndrey Kiselev<p><b>Sorry, can not handle %d-channel images</b>. The image 1980dcb9ef1SAndrey Kiselevhad <i>SamplesPerPixel</i> other than 1, 3, or 4.</p> 1990dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 2000dcb9ef1SAndrey Kiselev<p><b>Missing needed "PhotometricInterpretation" 2010dcb9ef1SAndrey Kiselevtag</b>. The image did not have a tag that describes how to 2020dcb9ef1SAndrey Kiselevdisplay the data.</p> 2030dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 2040dcb9ef1SAndrey Kiselev<p><b>No "PhotometricInterpretation" tag, assuming 2050dcb9ef1SAndrey KiselevRGB</b>. The image was missing a tag that describes how to 2060dcb9ef1SAndrey Kiselevdisplay it, but because it has 3 or 4 samples/pixel, it is 2070dcb9ef1SAndrey Kiselevassumed to be <small>RGB.</small></p> 2080dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 2090dcb9ef1SAndrey Kiselev<p><b>No "PhotometricInterpretation" tag, assuming 21087c5da6fSAndrey Kiselevmin-is-black</b>. The image was missing a tag that describes 21187c5da6fSAndrey Kiselevhow to display it, but because it has 1 sample/pixel, it is 21287c5da6fSAndrey Kiselevassumed to be a grayscale or bilevel image.</p> 2130dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 2140dcb9ef1SAndrey Kiselev<p><b>No space for photometric conversion table</b>. There 2150dcb9ef1SAndrey Kiselevwas insufficient memory for a table used to convert image 2160dcb9ef1SAndrey Kiselevsamples to 8-bit <small>RGB.</small></p> 2170dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 2180dcb9ef1SAndrey Kiselev<p><b>Missing required "Colormap" tag</b>. A 2190dcb9ef1SAndrey KiselevPalette image did not have a required <i>Colormap</i> 2200dcb9ef1SAndrey Kiselevtag.</p> 2210dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 2220dcb9ef1SAndrey Kiselev<p><b>No space for tile buffer</b>. There was insufficient 2230dcb9ef1SAndrey Kiselevmemory to allocate an i/o buffer.</p> 2240dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 2250dcb9ef1SAndrey Kiselev<p><b>No space for strip buffer</b>. There was insufficient 2260dcb9ef1SAndrey Kiselevmemory to allocate an i/o buffer.</p> 2270dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 2280dcb9ef1SAndrey Kiselev<p><b>Can not handle format</b>. The image has a format 2290dcb9ef1SAndrey Kiselev(combination of <i>BitsPerSample</i>, 2300dcb9ef1SAndrey Kiselev<i>SamplesPerPixel</i>, and 23187c5da6fSAndrey Kiselev<i>PhotometricInterpretation</i>) that 23287c5da6fSAndrey Kiselev<i>TIFFReadRGBAImage</i> can not handle.</p> 2330dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 2340dcb9ef1SAndrey Kiselev<p><b>No space for B&W mapping table</b>. There was 2350dcb9ef1SAndrey Kiselevinsufficient memory to allocate a table used to map 2360dcb9ef1SAndrey Kiselevgrayscale data to <small>RGB.</small></p> 2370dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 2380dcb9ef1SAndrey Kiselev<p><b>No space for Palette mapping table</b>. There was 2390dcb9ef1SAndrey Kiselevinsufficient memory to allocate a table used to map data to 2400dcb9ef1SAndrey Kiselev8-bit <small>RGB.</small></p> 2410dcb9ef1SAndrey Kiselev</td> 2420dcb9ef1SAndrey Kiselev</table> 24387c5da6fSAndrey Kiselev<a name="SEE ALSO"></a> 24487c5da6fSAndrey Kiselev<h2>SEE ALSO</h2> 2450dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 2460dcb9ef1SAndrey Kiselev<table width="100%" border=0 rules="none" frame="void" 2470dcb9ef1SAndrey Kiselev cols="2" cellspacing="0" cellpadding="0"> 2480dcb9ef1SAndrey Kiselev<tr valign="top" align="left"> 2490dcb9ef1SAndrey Kiselev<td width="8%"></td> 2500dcb9ef1SAndrey Kiselev<td width="91%"> 2510dcb9ef1SAndrey Kiselev<p><b>TIFFOpen</b>(3TIFF), <b>TIFFRGBAImage</b>(3TIFF), 2520776b32dSAndrey Kiselev<b>TIFFReadRGBAImage</b>(3TIFF), 2530776b32dSAndrey Kiselev<b>TIFFReadRGBAStrip</b>(3TIFF), <b>libtiff</b>(3TIFF)</p> 2540dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 2550dcb9ef1SAndrey Kiselev<p>Libtiff library home page: 256*d4dd6cccSBob Friesenhahn<b>http://www.simplesystems.org/libtiff/</b></p> 2570dcb9ef1SAndrey Kiselev</td> 2580dcb9ef1SAndrey Kiselev</table> 25987c5da6fSAndrey Kiselev<hr> 26087c5da6fSAndrey Kiselev</body> 26187c5da6fSAndrey Kiselev</html> 262