1<!-- Creator : groff version 1.18.1 --> 2<!-- CreationDate: Sat Feb 24 18:37:20 2007 --> 3<html> 4<head> 5<meta name="generator" content="groff -Thtml, see www.gnu.org"> 6<meta name="Content-Style" content="text/css"> 7<title>INTRO</title> 8</head> 9<body> 10 11<h1 align=center>INTRO</h1> 12<a href="#NAME">NAME</a><br> 13<a href="#SYNOPSIS">SYNOPSIS</a><br> 14<a href="#DESCRIPTION">DESCRIPTION</a><br> 15<a href="#DATA TYPES">DATA TYPES</a><br> 16<a href="#LIST OF ROUTINES">LIST OF ROUTINES</a><br> 17<a href="#TAG USAGE">TAG USAGE</a><br> 18<a href="#PSEUDO TAGS">PSEUDO TAGS</a><br> 19<a href="#DIAGNOSTICS">DIAGNOSTICS</a><br> 20<a href="#SEE ALSO">SEE ALSO</a><br> 21<a href="#BUGS">BUGS</a><br> 22 23<hr> 24<a name="NAME"></a> 25<h2>NAME</h2> 26<!-- INDENTATION --> 27<table width="100%" border=0 rules="none" frame="void" 28 cols="2" cellspacing="0" cellpadding="0"> 29<tr valign="top" align="left"> 30<td width="8%"></td> 31<td width="91%"> 32<p><big>libtiff − introduction to <i>libtiff</i>, a 33library for reading and writing</big> TIFF 34<big>files</big></p> 35</td> 36</table> 37<a name="SYNOPSIS"></a> 38<h2>SYNOPSIS</h2> 39<!-- INDENTATION --> 40<table width="100%" border=0 rules="none" frame="void" 41 cols="2" cellspacing="0" cellpadding="0"> 42<tr valign="top" align="left"> 43<td width="8%"></td> 44<td width="91%"> 45<p><big><b>#include <tiffio.h></b></big></p> 46<!-- INDENTATION --> 47<p><big>cc file.c <b>-ltiff</b></big></p> 48</td> 49</table> 50<a name="DESCRIPTION"></a> 51<h2>DESCRIPTION</h2> 52<!-- INDENTATION --> 53<table width="100%" border=0 rules="none" frame="void" 54 cols="2" cellspacing="0" cellpadding="0"> 55<tr valign="top" align="left"> 56<td width="8%"></td> 57<td width="91%"> 58<p><big><i>libtiff</i> is a library for reading and writing 59data files encoded with the <i>Tag Image File</i> format, 60Revision 6.0 (or revision 5.0 or revision 4.0). This file 61format is suitable for archiving multi-color and 62monochromatic image data.</big></p> 63<!-- INDENTATION --> 64<p><big>The library supports several compression algorithms, 65as indicated by the <i>Compression</i> field, including: no 66compression (1),</big> CCITT <big>1D Huffman compression 67(2),</big> CCITT <big>Group 3 Facsimile compression 68(3),</big> CCITT <big>Group 4 Facsimile compression (4), 69Lempel-Ziv & Welch compression (5), baseline JPEG 70compression (7), word-aligned 1D Huffman compression 71(32771), and PackBits compression (32773). In addition, 72several nonstandard compression algorithms are supported: 73the 4-bit compression algorithm used by the 74<i>ThunderScan</i> program (32809) (decompression only), 75NeXT’s 2-bit compression algorithm (32766) 76(decompression only), an experimental LZ-style algorithm 77known as Deflate (32946), and an experimental CIE LogLuv 78compression scheme designed for images with high dynamic 79range (32845 for LogL and 32845 for LogLuv). Directory 80information may be in either little- or big-endian byte 81order−byte swapping is automatically done by the 82library. Data bit ordering may be either Most Significant 83Bit (</big> MSB <big>) to Least Significant Bit (</big> LSB 84<big>) or</big> LSB <big>to</big> MSB. <big>Finally, the 85library does not support files in which the 86<i>BitsPerSample</i>, <i>Compression</i>, 87<i>MinSampleValue</i>, or <i>MaxSampleValue</i> fields are 88defined differently on a per-sample basis (in Rev. 6.0 the 89<i>Compression</i> tag is not defined on a per-sample basis, 90so this is immaterial).</big></p> 91</td> 92</table> 93<a name="DATA TYPES"></a> 94<h2>DATA TYPES</h2> 95<!-- INDENTATION --> 96<table width="100%" border=0 rules="none" frame="void" 97 cols="2" cellspacing="0" cellpadding="0"> 98<tr valign="top" align="left"> 99<td width="8%"></td> 100<td width="91%"> 101<p><big>The library makes extensive use of C typedefs to 102promote portability. Two sets of typedefs are used, one for 103communication with clients of the library and one for 104internal data structures and parsing of the</big> TIFF 105<big>format. The following typedefs are exposed to users 106either through function definitions or through parameters 107passed through the varargs interfaces.</big></p></td> 108</table> 109<!-- TABS --> 110<table width="100%" border=0 rules="none" frame="void" 111 cols="3" cellspacing="0" cellpadding="0"> 112<tr valign="top" align="left"> 113<td width="15%"></td> 114<td width="46%"> 115 116<p><big>typedef unsigned short uint16;</big></p> 117</td> 118<td width="38%"> 119 120<p><big>16-bit unsigned integer</big></p> 121</td> 122<tr valign="top" align="left"> 123<td width="15%"></td> 124<td width="46%"> 125 126<p><big>typedef unsigned <<i>thing</i>> 127uint32;</big></p> 128</td> 129<td width="38%"> 130 131<p><big>32-bit unsigned integer</big></p> 132</td> 133<tr valign="top" align="left"> 134<td width="15%"></td> 135<td width="46%"> 136 137<p><big>typedef unsigned int ttag_t;</big></p> 138</td> 139<td width="38%"> 140 141<p><big>directory tag</big></p> 142</td> 143<tr valign="top" align="left"> 144<td width="15%"></td> 145<td width="46%"> 146 147<p><big>typedef uint16 tdir_t;</big></p> 148</td> 149<td width="38%"> 150 151<p><big>directory index</big></p> 152</td> 153<tr valign="top" align="left"> 154<td width="15%"></td> 155<td width="46%"> 156 157<p><big>typedef uint16 tsample_t;</big></p> 158</td> 159<td width="38%"> 160 161<p><big>sample number</big></p> 162</td> 163<tr valign="top" align="left"> 164<td width="15%"></td> 165<td width="46%"> 166 167<p><big>typedef uint32 tstrip_t;</big></p> 168</td> 169<td width="38%"> 170 171<p><big>strip number</big></p> 172</td> 173<tr valign="top" align="left"> 174<td width="15%"></td> 175<td width="46%"> 176 177<p><big>typedef uint32 ttile_t;</big></p> 178</td> 179<td width="38%"> 180 181<p><big>tile number</big></p> 182</td> 183<tr valign="top" align="left"> 184<td width="15%"></td> 185<td width="46%"> 186 187<p><big>typedef int32 tsize_t;</big></p> 188</td> 189<td width="38%"> 190 191<p><big>i/o size in bytes</big></p> 192</td> 193<tr valign="top" align="left"> 194<td width="15%"></td> 195<td width="46%"> 196 197<p><big>typedef void* tdata_t;</big></p> 198</td> 199<td width="38%"> 200 201<p><big>image data ref</big></p> 202</td> 203<tr valign="top" align="left"> 204<td width="15%"></td> 205<td width="46%"> 206 207<p><big>typedef void* thandle_t;</big></p> 208</td> 209<td width="38%"> 210 211<p><big>client data handle</big></p> 212</td> 213<tr valign="top" align="left"> 214<td width="15%"></td> 215<td width="46%"> 216 217<p><big>typedef int32 toff_t;</big></p> 218</td> 219<td width="38%"> 220 221<p><big>file offset</big></p> 222</td> 223</table> 224<!-- INDENTATION --> 225<table width="100%" border=0 rules="none" frame="void" 226 cols="2" cellspacing="0" cellpadding="0"> 227<tr valign="top" align="left"> 228<td width="8%"></td> 229<td width="91%"> 230<p><big>Note that <i>tstrip_t</i>, <i>ttile_t</i>, and 231<i>tsize_t</i> are constrained to be no more than 32-bit 232quantities by 32-bit fields they are stored in in the</big> 233TIFF <big>image. Likewise <i>tsample_t</i> is limited by the 23416-bit field used to store the <i>SamplesPerPixel</i> tag. 235<i>tdir_t</i> constrains the maximum number of</big> IFDs 236<big>that may appear in an image and may be an arbitrary 237size (w/o penalty). <i>ttag_t</i> must be either int, 238unsigned int, pointer, or double because the library uses a 239varargs interface and</big> ANSI C <big>restricts the type 240of the parameter before an ellipsis to be a promoted type. 241<i>toff_t</i> is defined as int32 because TIFF file offsets 242are (unsigned) 32-bit quantities. A signed value is used 243because some interfaces return −1 on error. Finally, 244note that user-specified data references are passed as 245opaque handles and only cast at the lowest layers where 246their type is presumed.</big></p> 247</td> 248</table> 249<a name="LIST OF ROUTINES"></a> 250<h2>LIST OF ROUTINES</h2> 251<!-- INDENTATION --> 252<table width="100%" border=0 rules="none" frame="void" 253 cols="2" cellspacing="0" cellpadding="0"> 254<tr valign="top" align="left"> 255<td width="8%"></td> 256<td width="91%"> 257<p><big>The following routines are part of the library. 258Consult specific manual pages for details on their 259operation; on most systems doing ‘‘man 260function-name’’ will work.</big></p></td> 261</table> 262<!-- TABS --> 263 264<p><big><i>Name Description</i></big></p> 265<!-- TABS --> 266<table width="100%" border=0 rules="none" frame="void" 267 cols="3" cellspacing="0" cellpadding="0"> 268<tr valign="top" align="left"> 269<td width="8%"></td> 270<td width="23%"> 271 272<p><big>TIFFCheckpointDirectory</big></p> 273</td> 274<td width="67%"> 275 276<p><big>writes the current state of the directory</big></p> 277</td> 278<tr valign="top" align="left"> 279<td width="8%"></td> 280<td width="23%"> 281 282<p><big>TIFFCheckTile</big></p> 283</td> 284<td width="67%"> 285 286<p><big>very x,y,z,sample is within image</big></p> 287</td> 288<tr valign="top" align="left"> 289<td width="8%"></td> 290<td width="23%"> 291 292<p><big>TIFFCIELabToRGBInit</big></p> 293</td> 294<td width="67%"> 295 296<p><big>initialize CIE L*a*b* 1976 to RGB conversion 297state</big></p> 298</td> 299<tr valign="top" align="left"> 300<td width="8%"></td> 301<td width="23%"> 302 303<p><big>TIFFCIELabToXYZ</big></p> 304</td> 305<td width="67%"> 306 307<p><big>perform CIE L*a*b* 1976 to CIE XYZ 308conversion</big></p> 309</td> 310<tr valign="top" align="left"> 311<td width="8%"></td> 312<td width="23%"> 313 314<p><big>TIFFClientOpen</big></p> 315</td> 316<td width="67%"> 317 318<p><big>open a file for reading or writing</big></p> 319</td> 320<tr valign="top" align="left"> 321<td width="8%"></td> 322<td width="23%"> 323 324<p><big>TIFFClose</big></p> 325</td> 326<td width="67%"> 327 328<p><big>close an open file</big></p> 329</td> 330<tr valign="top" align="left"> 331<td width="8%"></td> 332<td width="23%"> 333 334<p><big>TIFFComputeStrip</big></p> 335</td> 336<td width="67%"> 337 338<p><big>return strip containing y,sample</big></p> 339</td> 340<tr valign="top" align="left"> 341<td width="8%"></td> 342<td width="23%"> 343 344<p><big>TIFFComputeTile</big></p> 345</td> 346<td width="67%"> 347 348<p><big>return tile containing x,y,z,sample</big></p> 349</td> 350<tr valign="top" align="left"> 351<td width="8%"></td> 352<td width="23%"> 353 354<p><big>TIFFCurrentDirectory</big></p> 355</td> 356<td width="67%"> 357 358<p><big>return index of current directory</big></p> 359</td> 360<tr valign="top" align="left"> 361<td width="8%"></td> 362<td width="23%"> 363 364<p><big>TIFFCurrentRow</big></p> 365</td> 366<td width="67%"> 367 368<p><big>return index of current scanline</big></p> 369</td> 370<tr valign="top" align="left"> 371<td width="8%"></td> 372<td width="23%"> 373 374<p><big>TIFFCurrentStrip</big></p> 375</td> 376<td width="67%"> 377 378<p><big>return index of current strip</big></p> 379</td> 380<tr valign="top" align="left"> 381<td width="8%"></td> 382<td width="23%"> 383 384<p><big>TIFFCurrentTile</big></p> 385</td> 386<td width="67%"> 387 388<p><big>return index of current tile</big></p> 389</td> 390<tr valign="top" align="left"> 391<td width="8%"></td> 392<td width="23%"> 393 394<p><big>TIFFDataWidth</big></p> 395</td> 396<td width="67%"> 397 398<p><big>return the size of TIFF data types</big></p> 399</td> 400<tr valign="top" align="left"> 401<td width="8%"></td> 402<td width="23%"> 403 404<p><big>TIFFError</big></p> 405</td> 406<td width="67%"> 407 408<p><big>library error handler</big></p> 409</td> 410<tr valign="top" align="left"> 411<td width="8%"></td> 412<td width="23%"> 413 414<p><big>TIFFFdOpen</big></p> 415</td> 416<td width="67%"> 417 418<p><big>open a file for reading or writing</big></p> 419</td> 420<tr valign="top" align="left"> 421<td width="8%"></td> 422<td width="23%"> 423 424<p><big>TIFFFileName</big></p> 425</td> 426<td width="67%"> 427 428<p><big>return name of open file</big></p> 429</td> 430<tr valign="top" align="left"> 431<td width="8%"></td> 432<td width="23%"> 433 434<p><big>TIFFFileno</big></p> 435</td> 436<td width="67%"> 437 438<p><big>return open file descriptor</big></p> 439</td> 440<tr valign="top" align="left"> 441<td width="8%"></td> 442<td width="23%"> 443 444<p><big>TIFFFindCODEC</big></p> 445</td> 446<td width="67%"> 447 448<p><big>find standard codec for the specific 449scheme</big></p> 450</td> 451<tr valign="top" align="left"> 452<td width="8%"></td> 453<td width="23%"> 454 455<p><big>TIFFFlush</big></p> 456</td> 457<td width="67%"> 458 459<p><big>flush all pending writes</big></p> 460</td> 461<tr valign="top" align="left"> 462<td width="8%"></td> 463<td width="23%"> 464 465<p><big>TIFFFlushData</big></p> 466</td> 467<td width="67%"> 468 469<p><big>flush pending data writes</big></p> 470</td> 471<tr valign="top" align="left"> 472<td width="8%"></td> 473<td width="23%"> 474 475<p><big>TIFFGetBitRevTable</big></p> 476</td> 477<td width="67%"> 478 479<p><big>return bit reversal table</big></p> 480</td> 481<tr valign="top" align="left"> 482<td width="8%"></td> 483<td width="23%"> 484 485<p><big>TIFFGetField</big></p> 486</td> 487<td width="67%"> 488 489<p><big>return tag value in current directory</big></p> 490</td> 491<tr valign="top" align="left"> 492<td width="8%"></td> 493<td width="23%"> 494 495<p><big>TIFFGetFieldDefaulted</big></p> 496</td> 497<td width="67%"> 498 499<p><big>return tag value in current directory</big></p> 500</td> 501<tr valign="top" align="left"> 502<td width="8%"></td> 503<td width="23%"> 504 505<p><big>TIFFGetMode</big></p> 506</td> 507<td width="67%"> 508 509<p><big>return open file mode</big></p> 510</td> 511<tr valign="top" align="left"> 512<td width="8%"></td> 513<td width="23%"> 514 515<p><big>TIFFGetVersion</big></p> 516</td> 517<td width="67%"> 518 519<p><big>return library version string</big></p> 520</td> 521<tr valign="top" align="left"> 522<td width="8%"></td> 523<td width="23%"> 524 525<p><big>TIFFIsCODECConfigured</big></p> 526</td> 527<td width="67%"> 528 529<p><big>check, whether we have working codec</big></p> 530</td> 531<tr valign="top" align="left"> 532<td width="8%"></td> 533<td width="23%"> 534 535<p><big>TIFFIsMSB2LSB</big></p> 536</td> 537<td width="67%"> 538 539<p><big>return true if image data is being 540returned</big></p> 541</td> 542<tr valign="top" align="left"> 543<td width="8%"></td> 544<td width="23%"></td> 545<td width="67%"> 546 547<p><big>with bit 0 as the most significant bit</big></p> 548</td> 549<tr valign="top" align="left"> 550<td width="8%"></td> 551<td width="23%"> 552 553<p><big>TIFFIsTiled</big></p> 554</td> 555<td width="67%"> 556 557<p><big>return true if image data is tiled</big></p> 558</td> 559<tr valign="top" align="left"> 560<td width="8%"></td> 561<td width="23%"> 562 563<p><big>TIFFIsByteSwapped</big></p> 564</td> 565<td width="67%"> 566 567<p><big>return true if image data is byte-swapped</big></p> 568</td> 569<tr valign="top" align="left"> 570<td width="8%"></td> 571<td width="23%"> 572 573<p><big>TIFFNumberOfStrips</big></p> 574</td> 575<td width="67%"> 576 577<p><big>return number of strips in an image</big></p> 578</td> 579<tr valign="top" align="left"> 580<td width="8%"></td> 581<td width="23%"> 582 583<p><big>TIFFNumberOfTiles</big></p> 584</td> 585<td width="67%"> 586 587<p><big>return number of tiles in an image</big></p> 588</td> 589<tr valign="top" align="left"> 590<td width="8%"></td> 591<td width="23%"> 592 593<p><big>TIFFOpen</big></p> 594</td> 595<td width="67%"> 596 597<p><big>open a file for reading or writing</big></p> 598</td> 599<tr valign="top" align="left"> 600<td width="8%"></td> 601<td width="23%"> 602 603<p><big>TIFFPrintDirectory</big></p> 604</td> 605<td width="67%"> 606 607<p><big>print description of the current 608directory</big></p> 609</td> 610<tr valign="top" align="left"> 611<td width="8%"></td> 612<td width="23%"> 613 614<p><big>TIFFReadBufferSetup</big></p> 615</td> 616<td width="67%"> 617 618<p><big>specify i/o buffer for reading</big></p> 619</td> 620<tr valign="top" align="left"> 621<td width="8%"></td> 622<td width="23%"> 623 624<p><big>TIFFReadDirectory</big></p> 625</td> 626<td width="67%"> 627 628<p><big>read the next directory</big></p> 629</td> 630<tr valign="top" align="left"> 631<td width="8%"></td> 632<td width="23%"> 633 634<p><big>TIFFReadEncodedStrip</big></p> 635</td> 636<td width="67%"> 637 638<p><big>read and decode a strip of data</big></p> 639</td> 640<tr valign="top" align="left"> 641<td width="8%"></td> 642<td width="23%"> 643 644<p><big>TIFFReadEncodedTile</big></p> 645</td> 646<td width="67%"> 647 648<p><big>read and decode a tile of data</big></p> 649</td> 650<tr valign="top" align="left"> 651<td width="8%"></td> 652<td width="23%"> 653 654<p><big>TIFFReadRawStrip</big></p> 655</td> 656<td width="67%"> 657 658<p><big>read a raw strip of data</big></p> 659</td> 660<tr valign="top" align="left"> 661<td width="8%"></td> 662<td width="23%"> 663 664<p><big>TIFFReadRawTile</big></p> 665</td> 666<td width="67%"> 667 668<p><big>read a raw tile of data</big></p> 669</td> 670<tr valign="top" align="left"> 671<td width="8%"></td> 672<td width="23%"> 673 674<p><big>TIFFReadRGBAImage</big></p> 675</td> 676<td width="67%"> 677 678<p><big>read an image into a fixed format raster</big></p> 679</td> 680<tr valign="top" align="left"> 681<td width="8%"></td> 682<td width="23%"> 683 684<p><big>TIFFReadScanline</big></p> 685</td> 686<td width="67%"> 687 688<p><big>read and decode a row of data</big></p> 689</td> 690<tr valign="top" align="left"> 691<td width="8%"></td> 692<td width="23%"> 693 694<p><big>TIFFReadTile</big></p> 695</td> 696<td width="67%"> 697 698<p><big>read and decode a tile of data</big></p> 699</td> 700<tr valign="top" align="left"> 701<td width="8%"></td> 702<td width="23%"> 703 704<p><big>TIFFRegisterCODEC</big></p> 705</td> 706<td width="67%"> 707 708<p><big>override standard codec for the specific 709scheme</big></p> 710</td> 711<tr valign="top" align="left"> 712<td width="8%"></td> 713<td width="23%"> 714 715<p><big>TIFFReverseBits</big></p> 716</td> 717<td width="67%"> 718 719<p><big>reverse bits in an array of bytes</big></p> 720</td> 721<tr valign="top" align="left"> 722<td width="8%"></td> 723<td width="23%"> 724 725<p><big>TIFFRGBAImageBegin</big></p> 726</td> 727<td width="67%"> 728 729<p><big>setup decoder state for TIFFRGBAImageGet</big></p> 730</td> 731<tr valign="top" align="left"> 732<td width="8%"></td> 733<td width="23%"> 734 735<p><big>TIFFRGBAImageEnd</big></p> 736</td> 737<td width="67%"> 738 739<p><big>release TIFFRGBAImage decoder state</big></p> 740</td> 741<tr valign="top" align="left"> 742<td width="8%"></td> 743<td width="23%"> 744 745<p><big>TIFFRGBAImageGet</big></p> 746</td> 747<td width="67%"> 748 749<p><big>read and decode an image</big></p> 750</td> 751<tr valign="top" align="left"> 752<td width="8%"></td> 753<td width="23%"> 754 755<p><big>TIFFRGBAImageOK</big></p> 756</td> 757<td width="67%"> 758 759<p><big>is image readable by TIFFRGBAImageGet</big></p> 760</td> 761<tr valign="top" align="left"> 762<td width="8%"></td> 763<td width="23%"> 764 765<p><big>TIFFScanlineSize</big></p> 766</td> 767<td width="67%"> 768 769<p><big>return size of a scanline</big></p> 770</td> 771<tr valign="top" align="left"> 772<td width="8%"></td> 773<td width="23%"> 774 775<p><big>TIFFSetDirectory</big></p> 776</td> 777<td width="67%"> 778 779<p><big>set the current directory</big></p> 780</td> 781<tr valign="top" align="left"> 782<td width="8%"></td> 783<td width="23%"> 784 785<p><big>TIFFSetSubDirectory</big></p> 786</td> 787<td width="67%"> 788 789<p><big>set the current directory</big></p> 790</td> 791<tr valign="top" align="left"> 792<td width="8%"></td> 793<td width="23%"> 794 795<p><big>TIFFSetErrorHandler</big></p> 796</td> 797<td width="67%"> 798 799<p><big>set error handler function</big></p> 800</td> 801<tr valign="top" align="left"> 802<td width="8%"></td> 803<td width="23%"> 804 805<p><big>TIFFSetField</big></p> 806</td> 807<td width="67%"> 808 809<p><big>set a tag’s value in the current 810directory</big></p> 811</td> 812<tr valign="top" align="left"> 813<td width="8%"></td> 814<td width="23%"> 815 816<p><big>TIFFSetWarningHandler</big></p> 817</td> 818<td width="67%"> 819 820<p><big>set warning handler function</big></p> 821</td> 822<tr valign="top" align="left"> 823<td width="8%"></td> 824<td width="23%"> 825 826<p><big>TIFFStripSize</big></p> 827</td> 828<td width="67%"> 829 830<p><big>returns size of a strip</big></p> 831</td> 832<tr valign="top" align="left"> 833<td width="8%"></td> 834<td width="23%"> 835 836<p><big>TIFFRawStripSize</big></p> 837</td> 838<td width="67%"> 839 840<p><big>returns the number of bytes in a raw 841strip</big></p> 842</td> 843<tr valign="top" align="left"> 844<td width="8%"></td> 845<td width="23%"> 846 847<p><big>TIFFSwabShort</big></p> 848</td> 849<td width="67%"> 850 851<p><big>swap bytes of short</big></p> 852</td> 853<tr valign="top" align="left"> 854<td width="8%"></td> 855<td width="23%"> 856 857<p><big>TIFFSwabLong</big></p> 858</td> 859<td width="67%"> 860 861<p><big>swap bytes of long</big></p> 862</td> 863<tr valign="top" align="left"> 864<td width="8%"></td> 865<td width="23%"> 866 867<p><big>TIFFSwabArrayOfShort</big></p> 868</td> 869<td width="67%"> 870 871<p><big>swap bytes of an array of shorts</big></p> 872</td> 873<tr valign="top" align="left"> 874<td width="8%"></td> 875<td width="23%"> 876 877<p><big>TIFFSwabArrayOfLong</big></p> 878</td> 879<td width="67%"> 880 881<p><big>swap bytes of an array of longs</big></p> 882</td> 883<tr valign="top" align="left"> 884<td width="8%"></td> 885<td width="23%"> 886 887<p><big>TIFFTileRowSize</big></p> 888</td> 889<td width="67%"> 890 891<p><big>return size of a row in a tile</big></p> 892</td> 893<tr valign="top" align="left"> 894<td width="8%"></td> 895<td width="23%"> 896 897<p><big>TIFFTileSize</big></p> 898</td> 899<td width="67%"> 900 901<p><big>return size of a tile</big></p> 902</td> 903<tr valign="top" align="left"> 904<td width="8%"></td> 905<td width="23%"> 906 907<p><big>TIFFUnRegisterCODEC</big></p> 908</td> 909<td width="67%"> 910 911<p><big>unregisters the codec</big></p> 912</td> 913<tr valign="top" align="left"> 914<td width="8%"></td> 915<td width="23%"> 916 917<p><big>TIFFVGetField</big></p> 918</td> 919<td width="67%"> 920 921<p><big>return tag value in current directory</big></p> 922</td> 923<tr valign="top" align="left"> 924<td width="8%"></td> 925<td width="23%"> 926 927<p><big>TIFFVGetFieldDefaulted</big></p> 928</td> 929<td width="67%"> 930 931<p><big>return tag value in current directory</big></p> 932</td> 933<tr valign="top" align="left"> 934<td width="8%"></td> 935<td width="23%"> 936 937<p><big>TIFFVSetField</big></p> 938</td> 939<td width="67%"> 940 941<p><big>set a tag’s value in the current 942directory</big></p> 943</td> 944<tr valign="top" align="left"> 945<td width="8%"></td> 946<td width="23%"> 947 948<p><big>TIFFVStripSize</big></p> 949</td> 950<td width="67%"> 951 952<p><big>returns the number of bytes in a strip</big></p> 953</td> 954<tr valign="top" align="left"> 955<td width="8%"></td> 956<td width="23%"> 957 958<p><big>TIFFWarning</big></p> 959</td> 960<td width="67%"> 961 962<p><big>library warning handler</big></p> 963</td> 964<tr valign="top" align="left"> 965<td width="8%"></td> 966<td width="23%"> 967 968<p><big>TIFFWriteDirectory</big></p> 969</td> 970<td width="67%"> 971 972<p><big>write the current directory</big></p> 973</td> 974<tr valign="top" align="left"> 975<td width="8%"></td> 976<td width="23%"> 977 978<p><big>TIFFWriteEncodedStrip</big></p> 979</td> 980<td width="67%"> 981 982<p><big>compress and write a strip of data</big></p> 983</td> 984<tr valign="top" align="left"> 985<td width="8%"></td> 986<td width="23%"> 987 988<p><big>TIFFWriteEncodedTile</big></p> 989</td> 990<td width="67%"> 991 992<p><big>compress and write a tile of data</big></p> 993</td> 994<tr valign="top" align="left"> 995<td width="8%"></td> 996<td width="23%"> 997 998<p><big>TIFFWriteRawStrip</big></p> 999</td> 1000<td width="67%"> 1001 1002<p><big>write a raw strip of data</big></p> 1003</td> 1004<tr valign="top" align="left"> 1005<td width="8%"></td> 1006<td width="23%"> 1007 1008<p><big>TIFFWriteRawTile</big></p> 1009</td> 1010<td width="67%"> 1011 1012<p><big>write a raw tile of data</big></p> 1013</td> 1014<tr valign="top" align="left"> 1015<td width="8%"></td> 1016<td width="23%"> 1017 1018<p><big>TIFFWriteScanline</big></p> 1019</td> 1020<td width="67%"> 1021 1022<p><big>write a scanline of data</big></p> 1023</td> 1024<tr valign="top" align="left"> 1025<td width="8%"></td> 1026<td width="23%"> 1027 1028<p><big>TIFFWriteTile</big></p> 1029</td> 1030<td width="67%"> 1031 1032<p><big>compress and write a tile of data</big></p> 1033</td> 1034<tr valign="top" align="left"> 1035<td width="8%"></td> 1036<td width="23%"> 1037 1038<p><big>TIFFXYZToRGB</big></p> 1039</td> 1040<td width="67%"> 1041 1042<p><big>perform CIE XYZ to RGB conversion</big></p> 1043</td> 1044<tr valign="top" align="left"> 1045<td width="8%"></td> 1046<td width="23%"> 1047 1048<p><big>TIFFYCbCrToRGBInit</big></p> 1049</td> 1050<td width="67%"> 1051 1052<p><big>initialize YCbCr to RGB conversion state</big></p> 1053</td> 1054<tr valign="top" align="left"> 1055<td width="8%"></td> 1056<td width="23%"> 1057 1058<p><big>TIFFYCbCrtoRGB</big></p> 1059</td> 1060<td width="67%"> 1061 1062<p><big>perform YCbCr to RGB conversion</big></p> 1063</td> 1064</table> 1065<!-- INDENTATION --> 1066<table width="100%" border=0 rules="none" frame="void" 1067 cols="2" cellspacing="0" cellpadding="0"> 1068<tr valign="top" align="left"> 1069<td width="8%"></td> 1070<td width="91%"> 1071<p><big>Auxiliary functions:</big></p></td> 1072</table> 1073<!-- TABS --> 1074<table width="100%" border=0 rules="none" frame="void" 1075 cols="3" cellspacing="0" cellpadding="0"> 1076<tr valign="top" align="left"> 1077<td width="8%"></td> 1078<td width="23%"> 1079 1080<p><big>_TIFFfree</big></p> 1081</td> 1082<td width="67%"> 1083 1084<p><big>free memory buffer</big></p> 1085</td> 1086<tr valign="top" align="left"> 1087<td width="8%"></td> 1088<td width="23%"> 1089 1090<p><big>_TIFFmalloc</big></p> 1091</td> 1092<td width="67%"> 1093 1094<p><big>dynamically allocate memory buffer</big></p> 1095</td> 1096<tr valign="top" align="left"> 1097<td width="8%"></td> 1098<td width="23%"> 1099 1100<p><big>_TIFFmemcmp</big></p> 1101</td> 1102<td width="67%"> 1103 1104<p><big>compare contents of the memory buffers</big></p> 1105</td> 1106<tr valign="top" align="left"> 1107<td width="8%"></td> 1108<td width="23%"> 1109 1110<p><big>_TIFFmemcpy</big></p> 1111</td> 1112<td width="67%"> 1113 1114<p><big>copy contents of the one buffer to 1115another</big></p> 1116</td> 1117<tr valign="top" align="left"> 1118<td width="8%"></td> 1119<td width="23%"> 1120 1121<p><big>_TIFFmemset</big></p> 1122</td> 1123<td width="67%"> 1124 1125<p><big>fill memory buffer with a constant byte</big></p> 1126</td> 1127<tr valign="top" align="left"> 1128<td width="8%"></td> 1129<td width="23%"> 1130 1131<p><big>_TIFFrealloc</big></p> 1132</td> 1133<td width="67%"> 1134 1135<p><big>dynamically reallocate memory buffer</big></p> 1136</td> 1137</table> 1138<a name="TAG USAGE"></a> 1139<h2>TAG USAGE</h2> 1140<!-- INDENTATION --> 1141<table width="100%" border=0 rules="none" frame="void" 1142 cols="2" cellspacing="0" cellpadding="0"> 1143<tr valign="top" align="left"> 1144<td width="8%"></td> 1145<td width="91%"> 1146<p><big>The table below lists the</big> TIFF <big>tags that 1147are recognized and handled by the library. If no use is 1148indicated in the table, then the library reads and writes 1149the tag, but does not use it internally. Note that some tags 1150are meaningful only when a particul