home *** CD-ROM | disk | FTP | other *** search
/ Encyclopedia of Graphics File Formats Companion / GFF_CD.ISO / software / unix / libtiff / readme.txt < prev   
Text File  |  1994-06-01  |  24KB  |  600 lines

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