• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

CHANGES-v3.0H A D22-Dec-199411 KiB207201

CHANGES-v3.1H A D22-Dec-19943.2 KiB5954

CHANGES-v3.2H A D22-Dec-19943.9 KiB7369

CHANGES-v3.3H A D22-Dec-19947.6 KiB131126

CopyrightH A D22-Dec-19941.2 KiB2218

HOWTOH A D22-Dec-19942.6 KiB7354

ImakefileH A D22-Dec-19941.3 KiB4030

MakefileH A D03-May-20222.7 KiB7933

Makefile.aixH A D22-Dec-19945.2 KiB195124

Makefile.alphaH A D22-Dec-19944.3 KiB169111

Makefile.apolloH A D22-Dec-19943.3 KiB13798

Makefile.gccH A D22-Dec-19943.1 KiB13696

Makefile.hpuxH A D22-Dec-19943.1 KiB13294

Makefile.lccH A D22-Dec-19943 KiB13092

Makefile.mmsH A D22-Dec-19945.9 KiB197111

Makefile.mpwH A D22-Dec-19942.9 KiB11772

Makefile.nextH A D22-Dec-19943.2 KiB13698

Makefile.scoH A D22-Dec-19943.1 KiB13293

Makefile.sgiH A D22-Dec-19943.4 KiB13893

Makefile.stdH A D03-May-20222.7 KiB7933

Makefile.sunH A D22-Dec-19943.1 KiB13395

RANLIB.cshH A D22-Dec-1994550 238

RANLIB.shH A D11-May-2004529 238

READMEH A D22-Dec-199423.2 KiB607509

VERSIONH A D22-Dec-19948 21

mkg3states.cH A D22-Dec-199426.4 KiB889674

mkspans.cH A D22-Dec-19942.2 KiB7338

t4.hH A D22-Dec-199411.1 KiB286240

tif_apple.cH A D22-Dec-19946 KiB257180

tif_atari.cH A D22-Dec-19945.1 KiB244179

tif_aux.cH A D22-Dec-19946 KiB205151

tif_ccittrle.cH A D22-Dec-19942.1 KiB6215

tif_close.cH A D22-Dec-19941.8 KiB5016

tif_compress.cH A D22-Dec-19944.4 KiB157112

tif_dir.cH A D22-Dec-199428.8 KiB1,117910

tif_dirinfo.cH A D22-Dec-199412.9 KiB306254

tif_dirread.cH A D22-Dec-199434.8 KiB1,274917

tif_dirwrite.cH A D22-Dec-199423.5 KiB876672

tif_dumpmode.cH A D22-Dec-19943 KiB11255

tif_error.cH A D22-Dec-19941.7 KiB5018

tif_fax3.cH A D23-Dec-199430.2 KiB1,169850

tif_fax3.hH A D22-Dec-19942.8 KiB7132

tif_fax4.cH A D22-Dec-19943.2 KiB11360

tif_flush.cH A D22-Dec-19941.9 KiB6125

tif_getimage.cH A D22-Dec-199427.4 KiB1,161924

tif_jpeg.cH A D22-Dec-19941.4 KiB385

tif_lzw.cH A D22-Dec-199432.4 KiB1,270924

tif_msdos.cH A D22-Dec-19944 KiB180123

tif_next.cH A D22-Dec-19943.6 KiB13981

tif_open.cH A D22-Dec-19948.6 KiB373249

tif_packbits.cH A D22-Dec-19946.3 KiB258177

tif_print.cH A D22-Dec-199418 KiB629579

tif_read.cH A D22-Dec-199416.4 KiB584411

tif_strip.cH A D22-Dec-19943.5 KiB11555

tif_swab.cH A D22-Dec-19946.6 KiB191137

tif_thunder.cH A D22-Dec-19944.7 KiB15195

tif_tile.cH A D22-Dec-19945.4 KiB191119

tif_unix.cH A D22-Dec-19944.4 KiB206148

tif_version.cH A D22-Dec-19941.5 KiB3811

tif_vms.cH A D22-Dec-19947.2 KiB302194

tif_warning.cH A D22-Dec-19941.7 KiB5018

tif_write.cH A D22-Dec-199417.2 KiB570354

tiff.alphaH A D22-Dec-199417 21

tiff.hH A D22-Dec-199414.2 KiB290199

tiffcomp.hH A D19-Jan-19953.1 KiB12059

tiffconf.hH A D22-Dec-19943.5 KiB9925

tiffio.hH A D22-Dec-19948.1 KiB201129

tiffiop.hH A D22-Dec-199414.9 KiB423348

README

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