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>TIFFRGBAImage</title> 887c5da6fSAndrey Kiselev</head> 987c5da6fSAndrey Kiselev<body> 1087c5da6fSAndrey Kiselev 1187c5da6fSAndrey Kiselev<h1 align=center>TIFFRGBAImage</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="#ALTERNATE RASTER FORMATS">ALTERNATE RASTER FORMATS</a><br> 1687c5da6fSAndrey Kiselev<a href="#SIMULTANEOUS RASTER STORE AND DISPLAY">SIMULTANEOUS RASTER STORE AND DISPLAY</a><br> 1787c5da6fSAndrey Kiselev<a href="#SUPPORTING ADDITIONAL TIFF FORMATS">SUPPORTING ADDITIONAL TIFF FORMATS</a><br> 1887c5da6fSAndrey Kiselev<a href="#NOTES">NOTES</a><br> 1987c5da6fSAndrey Kiselev<a href="#RETURN VALUES">RETURN VALUES</a><br> 2087c5da6fSAndrey Kiselev<a href="#DIAGNOSTICS">DIAGNOSTICS</a><br> 2187c5da6fSAndrey Kiselev<a href="#SEE ALSO">SEE ALSO</a><br> 2287c5da6fSAndrey Kiselev 2387c5da6fSAndrey Kiselev<hr> 2487c5da6fSAndrey Kiselev<a name="NAME"></a> 2587c5da6fSAndrey Kiselev<h2>NAME</h2> 260dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 270dcb9ef1SAndrey Kiselev<table width="100%" border=0 rules="none" frame="void" 280dcb9ef1SAndrey Kiselev cols="2" cellspacing="0" cellpadding="0"> 290dcb9ef1SAndrey Kiselev<tr valign="top" align="left"> 300dcb9ef1SAndrey Kiselev<td width="8%"></td> 310dcb9ef1SAndrey Kiselev<td width="91%"> 320dcb9ef1SAndrey Kiselev<p>TIFFRGBAImageOK, TIFFRGBAImageBegin, TIFFRGBAImageGet, 330dcb9ef1SAndrey KiselevTIFFRGBAImageEnd − read and decode an image into a 340dcb9ef1SAndrey Kiselevraster</p> 350dcb9ef1SAndrey Kiselev</td> 360dcb9ef1SAndrey Kiselev</table> 3787c5da6fSAndrey Kiselev<a name="SYNOPSIS"></a> 3887c5da6fSAndrey Kiselev<h2>SYNOPSIS</h2> 390dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 400dcb9ef1SAndrey Kiselev<table width="100%" border=0 rules="none" frame="void" 410dcb9ef1SAndrey Kiselev cols="2" cellspacing="0" cellpadding="0"> 420dcb9ef1SAndrey Kiselev<tr valign="top" align="left"> 430dcb9ef1SAndrey Kiselev<td width="8%"></td> 440dcb9ef1SAndrey Kiselev<td width="91%"> 450dcb9ef1SAndrey Kiselev<p><b>#include <tiffio.h></b></p> 460dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 470dcb9ef1SAndrey Kiselev<p><b>typedef unsigned char TIFFRGBValue; typedef struct 480dcb9ef1SAndrey Kiselev_TIFFRGBAImage TIFFRGBAImage;</b></p> 490dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 500dcb9ef1SAndrey Kiselev<p><b>int TIFFRGBAImageOK(TIFF *</b><i>tif</i><b>, char</b> 5187c5da6fSAndrey Kiselev<i>emsg[1024]</i><b>)<br> 5287c5da6fSAndrey Kiselevint TIFFRGBAImageBegin(TIFFRGBAImage *</b><i>img</i><b>, 5387c5da6fSAndrey KiselevTIFF*</b> <i>tif</i><b>, int</b> <i>stopOnError</i><b>, 5487c5da6fSAndrey Kiselevchar</b> <i>emsg[1024]</i><b>)<br> 5587c5da6fSAndrey Kiselevint TIFFRGBAImageGet(TIFFRGBAImage *</b><i>img</i><b>, 5687c5da6fSAndrey Kiselevuint32*</b> <i>raster</i><b>, uint32</b> <i>width</i> <b>, 5787c5da6fSAndrey Kiselevuint32</b> <i>height</i><b>)<br> 5887c5da6fSAndrey Kiselevvoid TIFFRGBAImageEnd(TIFFRGBAImage 5987c5da6fSAndrey Kiselev*</b><i>img</i><b>)</b></p> 600dcb9ef1SAndrey Kiselev</td> 610dcb9ef1SAndrey Kiselev</table> 6287c5da6fSAndrey Kiselev<a name="DESCRIPTION"></a> 6387c5da6fSAndrey Kiselev<h2>DESCRIPTION</h2> 640dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 650dcb9ef1SAndrey Kiselev<table width="100%" border=0 rules="none" frame="void" 660dcb9ef1SAndrey Kiselev cols="2" cellspacing="0" cellpadding="0"> 670dcb9ef1SAndrey Kiselev<tr valign="top" align="left"> 680dcb9ef1SAndrey Kiselev<td width="8%"></td> 690dcb9ef1SAndrey Kiselev<td width="91%"> 700dcb9ef1SAndrey Kiselev<p>The routines described here provide a high-level 710dcb9ef1SAndrey Kiselevinterface through which <small>TIFF</small> images may be 720dcb9ef1SAndrey Kiselevread into memory. Images may be strip- or tile-based and 730dcb9ef1SAndrey Kiselevhave a variety of different characteristics: bits/sample, 740dcb9ef1SAndrey Kiselevsamples/pixel, photometric, etc. Decoding state is 750dcb9ef1SAndrey Kiselevencapsulated in a <i>TIFFRGBAImage</i> structure making it 760dcb9ef1SAndrey Kiselevpossible to capture state for multiple images and quickly 770dcb9ef1SAndrey Kiselevswitch between them. The target raster format can be 780dcb9ef1SAndrey Kiselevcustomized to a particular application’s needs by 790dcb9ef1SAndrey Kiselevinstalling custom routines that manipulate image data 800dcb9ef1SAndrey Kiselevaccording to application requirements.</p> 810dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 820dcb9ef1SAndrey Kiselev<p>The default usage for these routines is: check if an 830dcb9ef1SAndrey Kiselevimage can be processed using <i>TIFFRGBAImageOK</i>, 840dcb9ef1SAndrey Kiselevconstruct a decoder state block using 850dcb9ef1SAndrey Kiselev<i>TIFFRGBAImageBegin</i>, read and decode an image into a 860dcb9ef1SAndrey Kiselevtarget raster using <i>TIFFRGBAImageGet</i>, and then 870dcb9ef1SAndrey Kiselevrelease resources using <i>TIFFRGBAImageEnd</i>. 8887c5da6fSAndrey Kiselev<i>TIFFRGBAImageGet</i> can be called multiple times to 8987c5da6fSAndrey Kiselevdecode an image using different state parameters. If 9087c5da6fSAndrey Kiselevmultiple images are to be displayed and there is not enough 9187c5da6fSAndrey Kiselevspace for each of the decoded rasters, multiple state blocks 9287c5da6fSAndrey Kiselevcan be managed and then calls can be made to 9387c5da6fSAndrey Kiselev<i>TIFFRGBAImageGet</i> as needed to display an image.</p> 940dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 950dcb9ef1SAndrey Kiselev<p>The generated raster is assumed to be an array of 960dcb9ef1SAndrey Kiselev<i>width</i> times <i>height</i> 32-bit entries, where 970dcb9ef1SAndrey Kiselev<i>width</i> must be less than or equal to the width of the 980dcb9ef1SAndrey Kiselevimage (<i>height</i> may be any non-zero size). If the 990dcb9ef1SAndrey Kiselevraster dimensions are smaller than the image, the image data 1000dcb9ef1SAndrey Kiselevis cropped to the raster bounds. If the raster height is 1010dcb9ef1SAndrey Kiselevgreater than that of the image, then the image data are 1020dcb9ef1SAndrey Kiselevplaced in the lower part of the raster. (Note that the 1030dcb9ef1SAndrey Kiselevraster is assume to be organized such that the pixel at 1040dcb9ef1SAndrey Kiselevlocation (<i>x</i>,<i>y</i>) is 10587c5da6fSAndrey Kiselev<i>raster</i>[<i>y</i>*<i>width</i>+<i>x</i>]; with the 10687c5da6fSAndrey Kiselevraster origin in the <b>lower-left</b> hand corner.)</p> 1070dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 1080dcb9ef1SAndrey Kiselev<p>Raster pixels are 8-bit packed red, green, blue, alpha 1090dcb9ef1SAndrey Kiselevsamples. The macros <i>TIFFGetR</i>, <i>TIFFGetG</i>, 1100dcb9ef1SAndrey Kiselev<i>TIFFGetB</i>, and <i>TIFFGetA</i> should be used to 1110dcb9ef1SAndrey Kiselevaccess individual samples. Images without Associated Alpha 1120dcb9ef1SAndrey Kiselevmatting information have a constant Alpha of 1.0 (255).</p> 1130dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 1140dcb9ef1SAndrey Kiselev<p><i>TIFFRGBAImageGet</i> converts non-8-bit images by 1150dcb9ef1SAndrey Kiselevscaling sample values. Palette, grayscale, bilevel, 1160dcb9ef1SAndrey Kiselev<small>CMYK</small> , and YCbCr images are converted to 1170dcb9ef1SAndrey Kiselev<small>RGB</small> transparently. Raster pixels are returned 1180dcb9ef1SAndrey Kiselevuncorrected by any colorimetry information present in the 1190dcb9ef1SAndrey Kiselevdirectory.</p> 1200dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 1210dcb9ef1SAndrey Kiselev<p>The parameter <i>stopOnError</i> specifies how to act if 1220dcb9ef1SAndrey Kiselevan error is encountered while reading the image. If 1230dcb9ef1SAndrey Kiselev<i>stopOnError</i> is non-zero, then an error will terminate 1240dcb9ef1SAndrey Kiselevthe operation; otherwise <i>TIFFRGBAImageGet</i> will 1250dcb9ef1SAndrey Kiselevcontinue processing data until all the possible data in the 1260dcb9ef1SAndrey Kiselevimage have been requested.</p> 1270dcb9ef1SAndrey Kiselev</td> 1280dcb9ef1SAndrey Kiselev</table> 12987c5da6fSAndrey Kiselev<a name="ALTERNATE RASTER FORMATS"></a> 13087c5da6fSAndrey Kiselev<h2>ALTERNATE RASTER FORMATS</h2> 1310dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 1320dcb9ef1SAndrey Kiselev<table width="100%" border=0 rules="none" frame="void" 1330dcb9ef1SAndrey Kiselev cols="2" cellspacing="0" cellpadding="0"> 1340dcb9ef1SAndrey Kiselev<tr valign="top" align="left"> 1350dcb9ef1SAndrey Kiselev<td width="8%"></td> 1360dcb9ef1SAndrey Kiselev<td width="91%"> 1370dcb9ef1SAndrey Kiselev<p>To use the core support for reading and processing 1380dcb9ef1SAndrey Kiselev<small>TIFF</small> images, but write the resulting raster 1390dcb9ef1SAndrey Kiselevdata in a different format one need only override the 1400dcb9ef1SAndrey Kiselev‘‘<i>put methods</i>’’ used to store 1410dcb9ef1SAndrey Kiselevraster data. These methods are are defined in the 1420dcb9ef1SAndrey Kiselev<i>TIFFRGBAImage</i> structure and initially setup by 1430dcb9ef1SAndrey Kiselev<i>TIFFRGBAImageBegin</i> to point to routines that pack 1440dcb9ef1SAndrey Kiselevraster data in the default <small>ABGR</small> pixel format. 1450dcb9ef1SAndrey KiselevTwo different routines are used according to the physical 1460dcb9ef1SAndrey Kiselevorganization of the image data in the file: 1470dcb9ef1SAndrey Kiselev<i>PlanarConfiguration</i>=1 (packed samples), and 1480dcb9ef1SAndrey Kiselev<i>PlanarConfiguration</i>=2 (separated samples). Note that 1490dcb9ef1SAndrey Kiselevthis mechanism can be used to transform the data before 1500dcb9ef1SAndrey Kiselevstoring it in the raster. For example one can convert data 1510dcb9ef1SAndrey Kiselevto colormap indices for display on a colormap display.</p> 1520dcb9ef1SAndrey Kiselev</td> 1530dcb9ef1SAndrey Kiselev</table> 15487c5da6fSAndrey Kiselev<a name="SIMULTANEOUS RASTER STORE AND DISPLAY"></a> 15587c5da6fSAndrey Kiselev<h2>SIMULTANEOUS RASTER STORE AND DISPLAY</h2> 1560dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 1570dcb9ef1SAndrey Kiselev<table width="100%" border=0 rules="none" frame="void" 1580dcb9ef1SAndrey Kiselev cols="2" cellspacing="0" cellpadding="0"> 1590dcb9ef1SAndrey Kiselev<tr valign="top" align="left"> 1600dcb9ef1SAndrey Kiselev<td width="8%"></td> 1610dcb9ef1SAndrey Kiselev<td width="91%"> 1620dcb9ef1SAndrey Kiselev<p>It is simple to display an image as it is being read into 1630dcb9ef1SAndrey Kiselevmemory by overriding the put methods as described above for 1640dcb9ef1SAndrey Kiselevsupporting alternate raster formats. Simply keep a reference 1650dcb9ef1SAndrey Kiselevto the default put methods setup by 1660dcb9ef1SAndrey Kiselev<i>TIFFRGBAImageBegin</i> and then invoke them before or 1670dcb9ef1SAndrey Kiselevafter each display operation. For example, the 1680dcb9ef1SAndrey Kiselev<i>tiffgt</i>(1) utility uses the following put method to 1690dcb9ef1SAndrey Kiselevupdate the display as the raster is being filled:</p> 1700dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 1710dcb9ef1SAndrey Kiselev<pre>static void 17287c5da6fSAndrey KiselevputContigAndDraw(TIFFRGBAImage* img, uint32* raster, 17387c5da6fSAndrey Kiselev uint32 x, uint32 y, uint32 w, uint32 h, 17487c5da6fSAndrey Kiselev int32 fromskew, int32 toskew, 17587c5da6fSAndrey Kiselev unsigned char* cp) 17687c5da6fSAndrey Kiselev{ 17787c5da6fSAndrey Kiselev (*putContig)(img, raster, x, y, w, h, fromskew, toskew, cp); 17887c5da6fSAndrey Kiselev if (x+w == width) { 17987c5da6fSAndrey Kiselev w = width; 18087c5da6fSAndrey Kiselev if (img->orientation == ORIENTATION_TOPLEFT) 18187c5da6fSAndrey Kiselev lrectwrite(0, y-(h-1), w-1, y, raster-x-(h-1)*w); 18287c5da6fSAndrey Kiselev else 18387c5da6fSAndrey Kiselev lrectwrite(0, y, w-1, y+h-1, raster); 18487c5da6fSAndrey Kiselev } 1850dcb9ef1SAndrey Kiselev} 1860dcb9ef1SAndrey Kiselev</pre> 1870dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 1880dcb9ef1SAndrey Kiselev<p>(the original routine provided by the library is saved in 1890dcb9ef1SAndrey Kiselevthe variable <i>putContig</i>.)</p> 1900dcb9ef1SAndrey Kiselev</td> 1910dcb9ef1SAndrey Kiselev</table> 19287c5da6fSAndrey Kiselev<a name="SUPPORTING ADDITIONAL TIFF FORMATS"></a> 19387c5da6fSAndrey Kiselev<h2>SUPPORTING ADDITIONAL TIFF FORMATS</h2> 1940dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 1950dcb9ef1SAndrey Kiselev<table width="100%" border=0 rules="none" frame="void" 1960dcb9ef1SAndrey Kiselev cols="2" cellspacing="0" cellpadding="0"> 1970dcb9ef1SAndrey Kiselev<tr valign="top" align="left"> 1980dcb9ef1SAndrey Kiselev<td width="8%"></td> 1990dcb9ef1SAndrey Kiselev<td width="91%"> 2000dcb9ef1SAndrey Kiselev<p>The <i>TIFFRGBAImage</i> routines support the most 2010dcb9ef1SAndrey Kiselevcommonly encountered flavors of <small>TIFF.</small> It is 2020dcb9ef1SAndrey Kiselevpossible to extend this support by overriding the 20387c5da6fSAndrey Kiselev‘‘<i>get method</i>’’ invoked by 20487c5da6fSAndrey Kiselev<i>TIFFRGBAImageGet</i> to read <small>TIFF</small> image 20587c5da6fSAndrey Kiselevdata. Details of doing this are a bit involved, it is best 20687c5da6fSAndrey Kiselevto make a copy of an existing get method and modify it to 20787c5da6fSAndrey Kiselevsuit the needs of an application.</p> 2080dcb9ef1SAndrey Kiselev</td> 2090dcb9ef1SAndrey Kiselev</table> 21087c5da6fSAndrey Kiselev<a name="NOTES"></a> 21187c5da6fSAndrey Kiselev<h2>NOTES</h2> 2120dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 2130dcb9ef1SAndrey Kiselev<table width="100%" border=0 rules="none" frame="void" 2140dcb9ef1SAndrey Kiselev cols="2" cellspacing="0" cellpadding="0"> 2150dcb9ef1SAndrey Kiselev<tr valign="top" align="left"> 2160dcb9ef1SAndrey Kiselev<td width="8%"></td> 2170dcb9ef1SAndrey Kiselev<td width="91%"> 2180dcb9ef1SAndrey Kiselev<p>Samples must be either 1, 2, 4, 8, or 16 bits. 2190dcb9ef1SAndrey KiselevColorimetric samples/pixel must be either 1, 3, or 4 (i.e. 2200dcb9ef1SAndrey Kiselev<i>SamplesPerPixel</i> minus <i>ExtraSamples</i>).</p> 2210dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 2220dcb9ef1SAndrey Kiselev<p>Palette image colormaps that appear to be incorrectly 2230dcb9ef1SAndrey Kiselevwritten as 8-bit values are automatically scaled to 2240dcb9ef1SAndrey Kiselev16-bits.</p> 2250dcb9ef1SAndrey Kiselev</td> 2260dcb9ef1SAndrey Kiselev</table> 22787c5da6fSAndrey Kiselev<a name="RETURN VALUES"></a> 22887c5da6fSAndrey Kiselev<h2>RETURN VALUES</h2> 2290dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 2300dcb9ef1SAndrey Kiselev<table width="100%" border=0 rules="none" frame="void" 2310dcb9ef1SAndrey Kiselev cols="2" cellspacing="0" cellpadding="0"> 2320dcb9ef1SAndrey Kiselev<tr valign="top" align="left"> 2330dcb9ef1SAndrey Kiselev<td width="8%"></td> 2340dcb9ef1SAndrey Kiselev<td width="91%"> 2350dcb9ef1SAndrey Kiselev<p>All routines return 1 if the operation was successful. 2360dcb9ef1SAndrey KiselevOtherwise, 0 is returned if an error was encountered and 2370dcb9ef1SAndrey Kiselev<i>stopOnError</i> is zero.</p> 2380dcb9ef1SAndrey Kiselev</td> 2390dcb9ef1SAndrey Kiselev</table> 24087c5da6fSAndrey Kiselev<a name="DIAGNOSTICS"></a> 24187c5da6fSAndrey Kiselev<h2>DIAGNOSTICS</h2> 2420dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 2430dcb9ef1SAndrey Kiselev<table width="100%" border=0 rules="none" frame="void" 2440dcb9ef1SAndrey Kiselev cols="2" cellspacing="0" cellpadding="0"> 2450dcb9ef1SAndrey Kiselev<tr valign="top" align="left"> 2460dcb9ef1SAndrey Kiselev<td width="8%"></td> 2470dcb9ef1SAndrey Kiselev<td width="91%"> 2480dcb9ef1SAndrey Kiselev<p>All error messages are directed to the 2490dcb9ef1SAndrey Kiselev<i>TIFFError</i>(3TIFF) routine.</p> 2500dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 2510dcb9ef1SAndrey Kiselev<p><b>Sorry, can not handle %d-bit pictures</b>. The image 2520dcb9ef1SAndrey Kiselevhad <i>BitsPerSample</i> other than 1, 2, 4, 8, or 16.</p> 2530dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 2540dcb9ef1SAndrey Kiselev<p><b>Sorry, can not handle %d-channel images</b>. The image 2550dcb9ef1SAndrey Kiselevhad <i>SamplesPerPixel</i> other than 1, 3, or 4.</p> 2560dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 2570dcb9ef1SAndrey Kiselev<p><b>Missing needed "PhotometricInterpretation" 2580dcb9ef1SAndrey Kiselevtag</b>. The image did not have a tag that describes how to 2590dcb9ef1SAndrey Kiselevdisplay the data.</p> 2600dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 2610dcb9ef1SAndrey Kiselev<p><b>No "PhotometricInterpretation" tag, assuming 2620dcb9ef1SAndrey KiselevRGB</b>. The image was missing a tag that describes how to 2630dcb9ef1SAndrey Kiselevdisplay it, but because it has 3 or 4 samples/pixel, it is 2640dcb9ef1SAndrey Kiselevassumed to be <small>RGB.</small></p> 2650dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 2660dcb9ef1SAndrey Kiselev<p><b>No "PhotometricInterpretation" tag, assuming 26787c5da6fSAndrey Kiselevmin-is-black</b>. The image was missing a tag that describes 26887c5da6fSAndrey Kiselevhow to display it, but because it has 1 sample/pixel, it is 26987c5da6fSAndrey Kiselevassumed to be a grayscale or bilevel image.</p> 2700dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 2710dcb9ef1SAndrey Kiselev<p><b>No space for photometric conversion table</b>. There 2720dcb9ef1SAndrey Kiselevwas insufficient memory for a table used to convert image 2730dcb9ef1SAndrey Kiselevsamples to 8-bit <small>RGB.</small></p> 2740dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 2750dcb9ef1SAndrey Kiselev<p><b>Missing required "Colormap" tag</b>. A 2760dcb9ef1SAndrey KiselevPalette image did not have a required <i>Colormap</i> 2770dcb9ef1SAndrey Kiselevtag.</p> 2780dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 2790dcb9ef1SAndrey Kiselev<p><b>No space for tile buffer</b>. There was insufficient 2800dcb9ef1SAndrey Kiselevmemory to allocate an i/o buffer.</p> 2810dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 2820dcb9ef1SAndrey Kiselev<p><b>No space for strip buffer</b>. There was insufficient 2830dcb9ef1SAndrey Kiselevmemory to allocate an i/o buffer.</p> 2840dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 2850dcb9ef1SAndrey Kiselev<p><b>Can not handle format</b>. The image has a format 2860dcb9ef1SAndrey Kiselev(combination of <i>BitsPerSample</i>, 2870dcb9ef1SAndrey Kiselev<i>SamplesPerPixel</i>, and 28887c5da6fSAndrey Kiselev<i>PhotometricInterpretation</i>) that can not be 28987c5da6fSAndrey Kiselevhandled.</p> 2900dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 2910dcb9ef1SAndrey Kiselev<p><b>No space for B&W mapping table</b>. There was 2920dcb9ef1SAndrey Kiselevinsufficient memory to allocate a table used to map 2930dcb9ef1SAndrey Kiselevgrayscale data to <small>RGB.</small></p> 2940dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 2950dcb9ef1SAndrey Kiselev<p><b>No space for Palette mapping table</b>. There was 2960dcb9ef1SAndrey Kiselevinsufficient memory to allocate a table used to map data to 2970dcb9ef1SAndrey Kiselev8-bit <small>RGB.</small></p> 2980dcb9ef1SAndrey Kiselev</td> 2990dcb9ef1SAndrey Kiselev</table> 30087c5da6fSAndrey Kiselev<a name="SEE ALSO"></a> 30187c5da6fSAndrey Kiselev<h2>SEE ALSO</h2> 3020dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 3030dcb9ef1SAndrey Kiselev<table width="100%" border=0 rules="none" frame="void" 3040dcb9ef1SAndrey Kiselev cols="2" cellspacing="0" cellpadding="0"> 3050dcb9ef1SAndrey Kiselev<tr valign="top" align="left"> 3060dcb9ef1SAndrey Kiselev<td width="8%"></td> 3070dcb9ef1SAndrey Kiselev<td width="91%"> 3080dcb9ef1SAndrey Kiselev<p><b>TIFFOpen</b>(3TIFF), <b>TIFFReadRGBAImage</b>(3TIFF), 3090776b32dSAndrey Kiselev<b>TIFFReadRGBAImageOriented</b>(3TIFF), 3100776b32dSAndrey Kiselev<b>TIFFReadRGBAStrip</b>(3TIFF), 3110776b32dSAndrey Kiselev<b>TIFFReadRGBATile</b>(3TIFF), <b>libtiff</b>(3TIFF)</p> 3120dcb9ef1SAndrey Kiselev<!-- INDENTATION --> 3130dcb9ef1SAndrey Kiselev<p>Libtiff library home page: 314*d4dd6cccSBob Friesenhahn<b>http://www.simplesystems.org/libtiff/</b></p> 3150dcb9ef1SAndrey Kiselev</td> 3160dcb9ef1SAndrey Kiselev</table> 31787c5da6fSAndrey Kiselev<hr> 31887c5da6fSAndrey Kiselev</body> 31987c5da6fSAndrey Kiselev</html> 320