1NOTE: This directory contains only the 'libtiff' portions of Sam's TIFF 2distribution, as that's all that XV requires. The full TIFF distribution 3(including tools, documentation, etc.) may be had via anonymous ftp on 4sgi.com, in the directory graphics/tiff. 5 6--jhb, 10/31/94 7 8 9$Header: /usr/people/sam/tiff/RCS/README,v 1.22 1994/07/27 01:37:50 sam Exp $ 10 11TIFF Software Release 12--------------------- 13 14 Copyright (c) 1988, 1989, 1990, 1991, 1992, 1993, 1994 Sam Leffler 15 Copyright (c) 1991, 1992, 1993, 1994 Silicon Graphics, Inc. 16 17 Permission to use, copy, modify, distribute, and sell this software and 18 its documentation for any purpose is hereby granted without fee, provided 19 that (i) the above copyright notices and this permission notice appear in 20 all copies of the software and related documentation, and (ii) the names of 21 Sam Leffler and Silicon Graphics may not be used in any advertising or 22 publicity relating to the software without the specific, prior written 23 permission of Sam Leffler and Silicon Graphics. 24 25 THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, 26 EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY 27 WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. 28 29 IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR 30 ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, 31 OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, 32 WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF 33 LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE 34 OF THIS SOFTWARE. 35 36 37 38About This Software 39------------------- 40This is software provides support for the Tag Image Format (TIFF). 41Included is a library, libtiff, for reading and writing TIFF, a 42collection of tools for doing simple manipulations of TIFF images, and 43documentation on the library and tools. A random assortment of 44TIFF-related software contributed by others is also included. 45 46The library, along with associated tool programs, should handle most of 47your needs for reading and writing files that follow the 5.0 or 6.0 48TIFF spec. There is also considerable support for some of the more 49esoteric portions of the 6.0 TIFF spec. 50 51 52How to tell which version you have 53---------------------------------- 54The software version can be found by looking at the file named VERSION 55that is located at the top of the source tree; the precise alpha number 56is given in the file tiff.alpha. If you have need to refer to this 57specific software, you should identify it as: 58 59 TIFF <version> <alpha> 60 61where <version> is whatever you get from "cat VERSION" and <alpha> is 62what you get from "cat tiff.alpha". 63 64 65TIFF Support 66------------ 67The library, should handle most of your needs for reading and writing 68files that follow the 5.0 or 6.0 TIFF spec. There is also considerable 69support for some of the more esoteric portions of the 6.0 TIFF spec. 70 71 o core requirements 72 both "MM" and "II" byte orders are handled 73 multiple subfiles can be read and written 74 editing is NOT supported in that related subfiles (e.g. 75 a reduced resolution version of an image) are not automatically 76 updated 77 78 Tags handled: NewSubfileType, ImageWidth, ImageLength, Rowsperstrip, 79 StripOffsets, StripByteCounts, XResolution, YResolution, 80 ResolutionUnit. 81 o Class B for bilevel images 82 SamplesPerPixel = 1 83 BitsPerSample = 1 84 Compression = 1 (none), 2 (CCITT 1D), or 32773 (PackBits) 85 PhotometricInterpretation = 0 (Min-is-White), 1 (Min-is-Black) 86 o Class G for grayscale images 87 SamplesPerPixel = 1 88 BitsPerSample = 4, 8 89 Compression = 1 (none) 5 (LZW) 90 PhotometricInterpretation = 0 (Min-is-White), 1 (Min-is-Black) 91 o Class P for palette color images 92 SamplesPerPixel = 1 93 BitsPerSample = 1-8 94 Compression = 1 (none) 5 (LZW) 95 PhotometricInterpretation = 3 (Palette RGB) 96 ColorMap 97 o Class R for RGB full color images 98 SamplesPerPixel = 3 99 BitsPerSample = <8,8,8> 100 PlanarConfiguration = 1, 2 101 Compression = 1 (none) 5 (LZW) 102 PhotometricInterpretation = 2 (RGB) 103 o Class F for facsimile (proposed appendix to 5.0 spec) 104 (Class B tags plus...) 105 Compression = 3 (CCITT Group 3), 4 (CCITT Group 4) 106 FillOrder = 1 (MSB), 2 (LSB) 107 Group3Options = 1 (2d encoding), 4 (zero fill), 5 (2d+fill) 108 ImageWidth = 1728, 2048, 2482 109 NewSubFileType = 2 110 ResolutionUnit = 2 (Inch), 3 (Centimeter) 111 PageNumber, XResolution, YResolution, Software, 112 BadFaxLines, CleanFaxData, ConsecutiveBadFaxLines, 113 DateTime, DocumentName, ImageDescription, Orientation 114 o Class S for separated images (in 6.0) 115 SamplesPerPixel = 4 116 PlanarConfiguration = 1, 2 117 Compression = 1 (none), 5 (LZW) 118 PhotometricInterpretation = 5 (Separated) 119 InkSet = 1 (CMYK) 120 DotRange, InkNames, DotRange, TargetPrinter 121 o Class Y for JPEG images (in 6.0) 122 SamplesPerPixel = 3 123 BitsPerSample = <8,8,8> 124 PlanarConfiguration = 1, 2 125 Compression = 1 (none), 5 (LZW), 6 (JPEG) 126 PhotometricInterpretation = 6 (YCbCr) 127 YCbCrCoefficients, YCbCrSubsampling, YCbCrPositioning 128 (colorimetry info from Appendix H; see below) 129 o Class "JPEG" for JPEG images (in 6.0) 130 PhotometricInterpretation = 1 (grayscale), 2 (RGB), 5 (CMYK), 6 (YCbCr) 131 (Class Y tags if YCbCr) 132 (Class S tags if CMYK) 133 Compression = 6 (JPEG) 134 JPEGProc = 0 (baseline) 135 JPEGQTables = ... (offsets to per-channel Q matrices) 136 JPEGDCTables = .... (offsets to per-channel DC tables) 137 JPEGACTables = .... (offsets to per-channel AC tables) 138 JPEGRestartInterval 139 o Tiled Images (in 6.0) 140 TileWidth 141 TileLength 142 TileOffsets 143 TileByteCounts 144 o Image Colorimetry Information (in 6.0) 145 WhitePoint 146 PrimaryChromaticities 147 TransferFunction 148 ReferenceBlackWhite 149 150In addition, the library supports some optional compression algorithms 151that are, in some cases, of dubious value. 152 Compression = 32766 NeXT 2-bit encoding 153 Compression = 32809 ThunderScan 4-bit encoding 154 155[JPEG compression should fit into this library simply by replacing 156 the existing stub JPEG compression module. That is, all YCbCr and 157 JPEG-related tags are supported in this version of the library.] 158 159The following tags are recognized and handled by the library (as 160described in the table). If no use is indicated, then the library 161reads and writes the tag, but does not use it internally. 162 163Tag Name Value R/W Library's Use 164----------------------------------------------------- 165NewSubFileType 254 R/W (called SubFileType) 166SubFileType 255 R/W (called OSubFileType) 167ImageWidth 256 R/W lots 168ImageLength 257 R/W lots 169BitsPerSample 258 R/W lots 170Compression 259 R/W choosing compression routines 171PhotometricInterpretation 262 R/W Group 3 and JPEG code 172Thresholding 263 R/W 173CellWidth 264 parsed but ignored 174CellLength 265 parsed but ignored 175FillOrder 266 R/W control bit order 176DocumentName 269 R/W 177ImageDescription 270 R/W 178Make 271 R/W 179Model 272 R/W 180StripOffsets 273 R/W data i/o 181Orientation 274 R/W 182SamplesPerPixel 277 R/W lots 183RowsPerStrip 278 R/W data i/o 184StripByteCounts 279 R/W data i/o 185MinSampleValue 280 R/W 186MaxSampleValue 281 R/W 187XResolution 282 R/W 188YResolution 283 R/W used by Group 3 2d encoding 189PlanarConfiguration 284 R/W data i/o 190PageName 285 R/W 191XPosition 286 R/W 192YPosition 286 R/W 193FreeOffsets 288 parsed but ignored 194FreeByteCounts 289 parsed but ignored 195GrayResponseUnit 290 parsed but ignored 196GrayResponseCurve 291 parsed but ignored 197Group3Options 292 R/W used by Group 3 code 198Group4Options 293 R/W 199ResolutionUnit 296 R/W 200PageNumber 297 R/W 201ColorResponseUnit 300 parsed but ignored 202TransferFunction 301 R/W 203Software 305 R/W 204DateTime 306 R/W 205Artist 315 R/W 206HostComputer 316 R/W 207Predictor 317 R/W used by LZW code 208WhitePoint 318 R/W 209PrimaryChromacities 319 R/W 210ColorMap 320 R/W 211TileWidth 322 R/W data i/o 212TileLength 323 R/W data i/o 213TileOffsets 324 R/W data i/o 214TileByteCounts 324 R/W data i/o 215BadFaxLines 326 R/W 216CleanFaxData 327 R/W 217ConsecutiveBadFaxLines 328 R/W 218InkSet 332 R/W 219InkNames 333 R/W 220DotRange 336 R/W 221TargetPrinter 337 R/W 222ExtraSamples 338 R/W lots 223SampleFormat 339 R/W 224JPEGProc 512 R/W JPEG code 225JPEGQRestartInterval 515 R/W JPEG code 226JPEGQTables 519 R/W JPEG code 227JPEGDCTables 520 R/W JPEG code 228JPEGACTables 521 R/W JPEG code 229YCbCrCoefficients 529 R/W used by TIFFReadRGBAImage 230YCbCrSubsampling 530 R/W tile/strip size calculations 231YCbCrPositioning 531 R/W 232ReferenceBlackWhite 532 R/W 233Matteing 32995 R (obsoleted by ExtraSamples) 234DataType 32996 R (obsoleted by SampleFormat) 235ImageDepth 32997 R/W tile/strip calculations 236TileDepth 32998 R/W tile/strip calculations 237 238The Matteing and DataType tags have been obsoleted by the 6.0 239ExtraSamples and SampleFormat tags. Consult the documentation on the 240ExtraSamples tag and Associated Alpha for elaboration. Note however 241that if you use Associated Alpha, you are expected to save data that is 242pre-multipled by Alpha. If this means nothing to you, check out Porter 243& Duff's paper in the '84 SIGGRAPH proceedings: "Compositing Digital 244Images". 245 246The ImageDepth tag is a non-standard, but registered tag that specifies 247the Z-dimension of volumetric data. The combination of ImageWidth, 248ImageLength, and ImageDepth, defines a 3D volume of pixels that are 249further specified by BitsPerSample and SamplesPerPixel. The TileDepth 250tag (also non-standard, but registered) can be used to specified a 251subvolume "tiling" of a volume of data. 252 253The JPEG, Colorimetry, and CMYK tags are additions that appear in TIFF 2546.0. Consult the TIFF 6.0 specification included in the doc directory. 255 256 257The TIFF Library 258---------------- 259libtiff is the software library that you can use to read and write TIFF 260files (most all the tools use it to do their work). The library 261provides two interfaces, one for strip-based images and one for 262tile-based images. The normal interface is through a simple 263scanline-based interface that works with images organized as strips. 264For example, to read the contents of a file, the following might be used: 265 266 #include "tiffio.h" 267 268 TIFF *tif; 269 unsigned long imagelength; 270 char *buf; 271 long row; 272 273 tif = TIFFOpen("myfile.tif", "r"); 274 TIFFGetField(tif, TIFFTAG_IMAGELENGTH, &imagelength); 275 buf = malloc(TIFFScanlineSize(tif)); 276 for (row = 0; row < imagelength; row++) 277 TIFFReadScanline(tif, buf, row); 278 279(this example assumes samples are packed contiguously.) Similarly, to 280write a file, something like the following can be used: 281 282 tif = TIFFOpen("myfile.tif", "w"); 283 TIFFSetField(tif, TIFFTAG_IMAGEWIDTH, imagewidth); 284 TIFFSetField(tif, TIFFTAG_COMPRESSION, COMPRESSION_LZW); 285 ... <set other required tags> 286 row = 0; 287 while (...more scanlines to write...) 288 TIFFWriteScanline(tif, buf, row); 289 TIFFClose(tif); 290 291(once again, we assume samples are packed contiguously.) 292 293A 2D tile-based interface is also provided as an alternative to the 294scanline-orientated interfaces. With this interface, an image is 295broken up into a set of rectangular areas called tiles. All the tiles 296in an image have the same size, and the tile width and length must each 297be a multiple of 16 pixels. Tiles are ordered left-to-right and 298top-to-bottom in an image. As for scanlines, samples can be packed 299contiguously or separately. When separated, all the tiles for a sample 300are colocated in the file. That is, all the tiles for sample 0 appear 301before the tiles for sample 1, etc. 302 303Tiles and strips may also be extended in a z dimension to form 304volumes. Data volumes are organized as "slices". That is, all the 305data for a slice is colocated. Volumes whose data is organized in 306tiles can also have a tile depth so that data can be organized in 307cubes. 308 309The interface for tiles is similar to scanlines. To read a tiled image, 310code of the following sort might be used: 311 312 unsigned long imageWidth, imageLength; 313 unsigned long tileWidth, tileLength; 314 unsigned long x, y; 315 char *buf; 316 317 tif = TIFFOpen("myfile.tif", "r"); 318 TIFFGetField(tif, TIFFTAG_IMAGEWIDTH, &imageWidth); 319 TIFFGetField(tif, TIFFTAG_IMAGELENGTH, &imageLength); 320 TIFFGetField(tif, TIFFTAG_TILEWIDTH, &tileWidth); 321 TIFFGetField(tif, TIFFTAG_TILELENGTH, &tileLength); 322 buf = malloc(TIFFTileSize(tif)); 323 for (y = 0; y < imageLength; y += tileLength) 324 for (x = 0; x < imageWidth; x += tileWidth) 325 TIFFReadTile(tif, buf, x, y, 0); 326 327(once again, we assume samples are packed contiguously.) 328 329Note that unlike the stdio library, libtiff only supports reading OR 330writing of a file. There is also an append mode, but this has not 331really been tested. 332 333 334TIFF Tools 335---------- 336There are two device-dependent programs: 337 338o tiffgt is used to display the contents of a TIFF file on a 339 framebuffer. The version included in this release was written 340 for the Silicon Graphics Graphics Library (GL), although it 341 should be a simple matter to tailor it for other systems. 342o tiffsv is used to save all or part of a framebuffer in a 343 TIFF file. Once again, the version of tiffsv included here 344 was written for the GL, but should be tailorable to other devices. 345 (Note, tiffsv uses the readdisplay routine that was introduced 346 in IRIX 4.0.) 347 348The remaining programs should be device-independent: 349 350o tiffinfo formats information about one or more TIFF files 351o tiffdump displays the verbatim contents of the TIFF directory in a 352 file (it's very useful for debugging bogus files that you may get from 353 someone that claims they support TIFF). 354o tiffcp is used to copy, concatenate, and convert TIFF images (e.g. 355 switching from Compression=5 to Compression=1). 356o tiff2ps is a program that converts a TIFF image to PostScript. 357o tiffcmp can be used to compare the contents of two TIFF files (it does 358 not check all the directory information, but does check all the data). 359o tiff2bw is a simple program to convert a color image to grayscale. 360o ras2tiff is a quick hack that converts Sun rasterfile format images to 361 TIFF -- it's less than complete. 362o rgb2ycbcr converts an RGB, grayscale, or bilevel TIFF image to a 363 YCbCr TIFF image. 364o gif2tiff is a quick hack that converts GIF 87a format images to TIFF. 365o ppm2tiff is a quick hack that converts PPM format images to TIFF. 366o fax2tiff converts raw Group 3 facsimile data to TIFF. 367o pal2rgb converts a Palette color image to a full color RGB image by 368 applying the colormap. 369o tiffdither dithers a b&w image into a bilevel image (suitable for 370 use in creating fax files) 371o tiffsplit creates one or more single-image files from a (possibly) 372 multi-image file 373o Finally, tiffmedian is a version of Paul Heckbert's median cut program 374 that reads an RGB TIFF image, and creates a TIFF palette file as a 375 result. It's useful for converting full-color RGB images to 8-bit 376 color for your friends that have cheapo 8-bit framebuffers. 377 378There is also: 379 380o sgi2tiff, a program to convert SGI image files to TIFF. This 381 program is only useful on SGI machines as it uses -limage. 382 383Check out the manual pages for details about the above programs. 384 385 386Contributed Stuff 387----------------- 388The directory contrib has contributed software: 389 390contrib/dbs an X-based TIFF viewer from Dan & Chris Sears (has not 391 been updated in a long time and does not compile) 392contrib/ras two programs by Patrick Naughton for converting 393 between Sun rasterfile format and TIFF (these 394 require libpixrect.a, as opposed to the one in 395 tools that doesn't) 396contrib/fax2ps a program that converts TIFF/F images to an encoded 397 form of PostScript that is faster to print than just 398 dumping a full raster 399contrib/vms scripts and files from Karsten Spang for building 400 the library and tools under VMS 401 402Don't send me mail asking about these programs. Send questions 403and/or bug reports directly to the authors. 404 405 406Documentation 407------------- 408A copy of the 6.0 spec available by public ftp from sgi.com in the 409directory graphics/tiff. TIFF6.ps is the PostScript of the final 6.0 410spec as provided by Aldus. TIFF6.ps.Z is a compress(1)'d version of 411TIFF6.ps. 412 413 414Test Images 415----------- 416Test images are available for most formats supported by the library. 417The images are kept in a separate archive that should be located along 418with this software. For example, if the archive that you retrieve was 419v3.1.tar.Z, then the images should be in the same directory in an 420archive named v3.1pics.tar.Z. 421 422 423Building the Software 424--------------------- 425To configure things for your machine, check for Makefiles in the 426libtiff and tools directories for your machine: 427 428 Makefile.aix Makefile for an IBM RS/6000 running AIX 3.x 429 Makefile.alpha Makefile for DEC AlphaAXP, OSF/1 v1.3 430 Makefile.apollo Makefile for an Apollo 431 Makefile.convex Makefile for Convex 432 Makefile.gcc Makefile for use with gcc (the GNU compiler) 433 Makefile.hpux Makefile for HP machines running HP-UX 434 Makefile.lcc Makefile for Atari 435 Makefile.mpw Makefile for an Apple Macintosh with MPW 436 Makefile.next Makefile for NeXT 437 Makefile.sco Makefile for a PC running SCO ODT 2.0 (or similar) 438 Makefile.sgi Makefile for Silicon Graphics 439 Makefile.sun Makefile for a Sun-3 or Sun-4 running SunOS 3.5+ 440 441If your machine is not represented, you'll have to make up a Makefile 442that is right for you. In libtiff the important things to setup are 443 444 AR=/usr/bin/ar whatever your library archiver is called 445 RANLIB=/usr/bin/ranlib if you need to ranlib a library 446 IPATH=-I. -I/usr/include/bsd list of directories to search includes 447 CONF=.... configuring optional support 448 449To build the library, just 450 451 cd libtiff; make 452 453In the tools directory, pick the appropriate Makefile as in the libtiff 454directory. If no Makefile is present for your machine, create one, setup 455the MACHALL macro, 456 457 MACHALL=ras2tiff tiffgt tiffsv 458 459and add definitions for how to build tiffgt and tiffsv for your machine 460(if appropriate). Note also that for building the fax2tiff program, the 461CONF_LIBRARY macro in the Makefile MUST agree with the definition in the 462Makefile in the libtiff directory! If this is not true, then fax2tiff 463will not work. 464 465To build the tools library, just 466 467 cd ../tools; make 468 469 470Checking out the Software 471------------------------- 472Assuming you have working versions of tiffgt and tiffsv, you can just 473use them to view any of the sample images (the list is given below). 474Otherwise, you can check out the operation of the library with tiffcp 475and tiffcmp. For example, 476 477 tiffcp -lzw cramps.tif x.tif 478 tiffcmp cramps.tif x.tif 479 480(tiffcmp should be silent if the files compare correctly). 481 482 483Bugs and such.... 484----------------- 485This software is free. The only thing that I ask in return is that you 486tell me when you find a problem or fix a bug. I also gladly accept 487software contributions, although I hesitate to include such software in 488my regular stuff if I am personally unable to test it. 489 490A mailing list for users of this software is located on sgi.com. 491If you want to join this mailing list or have a list-related request 492such as getting your name removed from it, send a request to 493 494 tiff-request@sgi.com 495 496For example, to subscribe, send the line "subscribe" in 497the body of your message. The line "help" will return a list of 498the commands understood by the mailing list management software. 499 500Submissions (including bug reports) should be directed to: 501 502 tiff@sgi.com 503 504When corresponding about this software please always specify what 505version you have, what system you are running on. 506 507If all else fails, I can be reached by sending mail to sam@sgi.com 508(but beware that I'm more likely to respond to mail sent to the 509mailing list than mail sent directly to me). 510 511 512Acknowledgements 513---------------- 514The LZW algorithm is derived from the compress program (the proper 515attribution is included in the source code). The Group 3 fax stuff 516originated as code from Jef Poskanzer, but has since been rewritten 517several times. The latest version uses an algorithm from Michael 518Marking -- consult libtiff/mkg3states.c for further information. 519Many other people have, by now, helped with bug fixes and code. 520 521 522Warning 523------- 524It appears that Unisys is actively pursuing copyright control on the 525LZW compression algorithm. In particular, users of the LZW compression 526within the TIFF framework. For this reason the TIFF 6.0 spec states 527that LZW compression is not recommended. It is unclear at this time 528what compression algorithm will be used in place of it. I have no idea 529what this means to you or to this library. I make no warranty or 530guarantees with regard to the LZW support in this library. 531 532 533Use and Copyright 534----------------- 535Silicon Graphics has seen fit to allow me to give this work away. It 536is free. There is no support or guarantee of any sort as to its 537operations, correctness, or whatever. If you do anything useful with 538all or parts of it you need to honor the copyright notices. I would 539also be interested in knowing about it and, hopefully, be acknowledged. 540 541 Sam Leffler (sam@sgi.com) 542 543 544 545Table of Contents 546----------------- 547At least the following files are included in the distribution: 548 549libtiff/tiff.h TIFF spec definitions 550libtiff/tiffio.h public TIFF library definitions 551libtiff/tiffiop.h private TIFF library definitions 552libtiff/tiffcomp.h OS-compatibility definitions 553libtiff/t4.h CCITT Group 3 1d code tables+definitions 554libtiff/tif_fax3.h CCITT Group 3-related definitions 555 556libtiff/tif_aux.c auxilary directory-related functions 557libtiff/tif_ccittrle.c CCITT 1d Huffman compression 558libtiff/tif_compress.c list of supported compression algorithms 559libtiff/tif_dir.c directory tag interface code 560libtiff/tif_dirinfo.c directory known tag support code 561libtiff/tif_dirread.c directory reading code 562libtiff/tif_dirwrite.c directory writing code 563libtiff/tif_dumpmode.c "no" compression algorithm 564libtiff/tif_fax3.c CCITT Group 3 fax compression 565libtiff/tif_fax4.c CCITT Group 4 fax compression 566libtiff/tif_getimage.c code to read an entire image into an RGBA raster 567libtiff/tif_jpeg.c JPEG compression placeholder 568libtiff/tif_lzw.c LZW encoding and decoding 569libtiff/tif_next.c NeXT 2-bit decoding algorithm (no encoding) 570libtiff/tif_open.c open and simply query code 571libtiff/tif_packbits.c Packbits encoding and decoding 572libtiff/tif_print.c directory printing support 573libtiff/tif_swab.c byte and bit swapping support 574libtiff/tif_strip.c some strip-related code 575libtiff/tif_thunder.c Thunderscan decoding (no encoding) 576libtiff/tif_tile.c some tile-related code 577libtiff/tif_unix.c UNIX-related OS support 578libtiff/tif_apple.c Apple-related OS support 579libtiff/tif_msdos.c MSDOS-related OS support 580libtiff/tif_vms.c VMS-related OS support 581libtiff/mkg3states.c program to generate G3 decoding state tables 582libtiff/mkspans.c program to generate black-white span tables 583 584tools/getopt.c public domain getopt from Berkeley used by tools 585tools/fax2tiff.c convert raw facsimile data to TIFF 586tools/gif2tiff.c convert GIF87 file to TIFF 587tools/pal2rgb.c convert TIFF Palette image to TIFF RGB 588tools/ppm2tiff.c convert PPM image file to TIFF 589tools/ras2tiff.c convert Sun rasterfile format to TIFF (limited) 590tools/rgb2ybcr.c convert TIFF to YCbCr TIFF 591tools/sgi2tiff.c convert SGI image file to TIFF 592tools/sgigt.c TIFF picture get for SGI framebuffer (uses GL) 593tools/sgisv.c save image on SGI framebuffer in TIFF file 594tools/tiff2bw.c convert color TIFF file to B&W 595tools/tiff2ps.c convert TIFF to PostScript 596tools/tiffcmp.c compare two TIFF files 597tools/tiffcp.c copy/convert TIFF files (used to change compression) 598tools/tiffdither.c dither grayscale to bilevel 599tools/tiffdump.c dump TIFF header and directory tags w/o library 600tools/tiffinfo.c print info about TIFF file(s) 601tools/tiffmedian.c median cut RGB -> palette conversion program 602tools/tiffsplit.c split a multi-page TIFF into single-page TIFFs 603tools/ycbcr.c RGB->YCbCr->RGB test program 604 605man/man1 UNIX manual pages for tools 606man/man3 UNIX manual pages for libtiff functions 607