home *** CD-ROM | disk | FTP | other *** search
- $Header: /usr/people/sam/tiff/RCS/CHANGES-v3.0,v 1.5 92/03/31 11:31:03 sam Exp $
-
- TIFF Software "Release" 3.00 (changes since 2.4.2 release)
- ----------------------------------------------------------
- Changes in libtiff:
- o the mkg3states program has been made more portable
- o global library data structures can now be compiled as const
- (this is important for building shared libraries)
- o the file machdep.h is no longer needed and has been purged
- o the format of the include file generated by mkg3states
- has been altered so that applications can access the
- Group 3 and Group 4 compression machinery more easily
- (see tools/fax2tiff and contrib/fax2ps for examples)
- o a new -c option has been added to mkg3states to generate
- const data structures
- o the function prototyping macros now fail at compile time
- if the library is configured to not use prototypes and
- not use varargs
- o two new functions, TIFFGetFieldDefaulted and TIFFVGetFieldDefaulted,
- for getting either a tag's value or a default value
- (if one exists) have been added
- o a new function TIFFReadRGBAImage has been added to read
- an entire image into memory and return it in a common
- format (packed into 32-bit pixels)
- o function prototype inconsistencies for TIFFMapFileContents
- and TIFFUnmapFileContents have been fixed
- o the directory handling code has been broken up into
- 4 separate files:
- tif_dir.c routines for getting & setting tag values
- tif_dirinfo.c information about known tags
- tif_dirread.c directory reading support
- tif_dirwrite.c directory writing support
- o the directory handling code has been substantially reworked
- to eliminate many special cases and add more general reading
- and writing support routines; this is mainly for supporting
- the 6.0 tags
- o the code that deduces a value for StripByteCounts when the
- tag is not present has been improved slightly
- o the directory reading code is now more careful about checking
- count fields and tag definitions (when known)
- o support has been added for the color information tags that are
- to appear in TIFF 6.0: WhitePoint, PrimaryChromaticities,
- ReferenceBlackWhite, and TransferFunction
- o support has been added for the JPEG tags that are to appear
- in TIFF 6.0 (but still no compression/decompression code yet):
- JPEGProc, JPEGRestartInterval, JPEGQTables, JPEGACTables,
- JPEGDCTables
- o support has been added for the CMYK tags that are to appear
- in TIFF 6.0: InkSet, InkNames, DotRange, TargetPrinter
- o support has been added for the YCbCr tags that are to appear
- in TIFF 6.0: YCbCrCoefficients, YCbCrSubsampling, YCbCrPositioning
- o support has been added for some 6.0 tags that replace SGI-private
- tags previously supported by the library: ExtraSamples, SampleFormat
- o the reading and writing of packed sampled YCbCr data by strip
- or tile works correctly (i.e. buffer sizes are calculated
- according to the sampling factors and the Y...YCbCr packing)
- o it is no longer necessary to call TIFFFlushData before a
- call to TIFFWriteDirectory; this is now handled automatically;
- old code that did this will still work as the library is
- now more intelligent about doing end-of-strip work only once
- per strip
- o the values for certain tags are now checked when the tag's
- value is set; e.g. FillOrder may only be FILLORDER_LSB2MSB
- or FILLORDER_MSB2LSB
- o old tags obsoleted by changes in TIFF 6.0 have been removed:
- ColorResponseUnit, ColorResponseCurves, GrayResponseUnit,
- GrayResponseCurve
- o a bug whereby the library could leak memory if directories
- were read in a non-sequential order has been fixed
- o a bug in the Group 3 2D/Group 4 decoding+encoding routines
- whereby the reference scanline was not reset to white at the
- start of each strip after the first has been fixed
- o bugs in the Group 3 2D/Group 4 decoding routine logic for
- several (slightly obscure) cases were fixed
- o a bug in the LZW encoding routine that could result in invalid
- codes being generated was fixed (this only happened in a
- low probability situation where the encoding process was
- considered "poor" and the library attempted to reset its
- encoding state to improve the compression performance)
- o a new routine, TIFFCurrentDirectory has been added; it
- returns the index of the current directory -- suitable for
- passing to TIFFSetDirectory
- o TIFFPrintDirectory has been updated to reflect the changes
- in the tags supported by the library
- o an obscure case in TIFFReadEncodedStrip where an error could
- occur without a diagnostic has been corrected
- o the private Picio and SGI RLE compression codes have been deleted
- (along with the associated code)
- o the JPEG compression code has been renumbered to reflect the
- value that it will have in TIFF 6.0
- o support has been added for the the HalftoneHints tag that
- is to appear in TIFF 6.0
- o support has been added for using the library under VMS
- o the bit reversal routine TIFFReverseBits has been made faster
- o a bug in the TIFFWriteTile routine where the tile size might
- be used before it's calculated has been fixed
- o some portability problems with 16-bit machines such as the
- Macintosh have been fixed
- o the library now treats RATIONAL values as the ratio of two
- unsigned 32-bit quantities; it used to treat them as the ratio
- of two *signed* values
- o the library now supports all the new 6.0 tag data types except DOUBLE
- o the SUBFILE_COMPAT configuration define has been removed
- (compatibility for SHORT SubfileType tags is always included).
- o a new global variable, TIFFVersion, has been added -- it is a
- string giving the version and copyright information for the library
-
- (Note, since the 2.5 BETA version the following user-visible
- modifications have been made:
- o the ReferenceBlackWhite tag changed from LONG to RATIONAL
- with a corresponding change in the parameters to TIFFGetField
- and TIFFSetField; LONG values may still be read, but only
- RATIONAL values are now written
- o the SGI-specific Matteing and DataType tags have been replaced
- by the new ExtraSamples and SampleFormat tags; the library will
- accept the old tags, but only generate the new tags
- o several bugs in the handling of the JPEG tags have been fixed
- o a bug in the Group 3 2D and Group 4 decoding routines was fixed
- o Group 3 2d tag bits are no longer included in the EOL
- byte-aligning logic: that is, EOL codes are consistently aligned
- to byte boundaries and any 2d tag bits are placed in the byte
- that follows
- o the writing of the TileByteCounts and TileOffsets tags has been
- corrected
- o the library now treats RATIONAL values as the ratio of two
- unsigned 32-bit quantities; it used to treat them as the ratio
- of two *signed* values
- )
- (Note, since the 3.0 BETA version the following user-visible
- modifications have been made:
- o a bug that caused RTC to be written at the end of each
- Group 4-encoded strip has been fixed
- o support for the DotRange tag was fixed
- o the PhotometricInterpretation, Orientation, and ResolutionUnit
- tags no longer may be modified once data is written (for the
- Group 3 compression algorithm)
- o portability problems with the IEEE floating point conversion
- code have been fixed
- o the PackBits encoding algorithm now breaks strips and tiles
- up into row-sized units to avoid problems caused by encoding by
- strip/tile and then decoding by scanline
- )
-
- Changes in the tools:
- o a new tool for converting PBM+ files, ppm2tiff, has been added
- o a new tool for converting an RGB, grayscale, or bilevel image
- to a sampled YCbCr image, rgb2ycbcr, has been added
- o a new tool for splitting multi-image files into multiple single-image
- files, tiffsplit, has been added
- o the fax2tiff utility has been rewritten to use the library
- decoding routines; because of this, it can now decode Group 4
- data as well as Group 3 data
- o all references to obsolete tags such as ColorResponseCurves
- were deleted
- o the picio2tiff utility was purged for lack of use
- o the pixargt utility was purged for lack of use
- o a bug in ras2tiff that caused the default value of RowsPerStrip
- to be large was fixed
- o tiffgt (SGI version) now continues in the face of decoding
- errors unless a -s flag is specified; support for displaying
- YCbCr data has been added; also, the -v (verbose)
- flag has been changed to alter the window title strip rather
- than print to the terminal; finally, a bug that caused certain
- kinds of images larger than the screen to not be displayed
- properly was fixed
- o the PostScript generated by tiff2ps has been changed
- slightly to conform to the latest Adobe document conventions;
- also, several bugs were fixed and support was added for converting
- CMYK images
- o a bug in tiffcmp that caused it to dump core was fixed
- o tiffcp has been enhanced so that it can be used to generate a
- multipage file from multiple source files; it now checks the
- colormap to see if it is an 8-bit colormap and, if so, coerces
- it to be 16-bit in the resultant file; it copies more tags;
- and it copies the most common data organization more efficiently
- o tiffdump has been updated to reflect the new tags added to the
- library for TIFF 6.0
- o tiffdump is now more resilient in the face of bad tag types
- and read errors; also, a longstanding bug whereby 2 SHORT
- values packed into an offset field were printed out of order
- has been fixed
- o tiffinfo has new -l and -m options to specify the FillOrder
- of the input file as LSB-to-MSB and MSB-to-LSB, respectively
- o tiffinfo now reads data by strip and tile (e.g. for the -D option)
- o tiffcmp can now compare 1, 2, and 4 bit data
- o a public domain version of getopt is now included with the tools
- o the tools have been ported to VMS
-
- Changes in the documentation:
- o the section 3 manual pages have been renamed to reflect full
- function names and a Makefile now exists for creating links
- when multiple functions are described in a single manual page
- (NOTE that this means that many file names are now much longer
- than 14 characters.)
- o a draft copy of the TIFF 6.0 spec is in PostScript form
- o the obsolete 5.0spec has been removed
-
- Changes in the contrib software:
- o a new program, fax2ps, was contributed by Sam Leffler; it
- converts bilevel TIFF images to a compressed PostScript
- that is typically much faster to print than the PostScript
- generated by tiff2ps
- o a vms area contains scripts and data files for building the
- library and tools under the VMS operating system
- o an xv area contains patches to add TIFF support to version
- 2.00 of the XV program (xv versions >=2.10 include this support)
-