$Header: /usr/people/sam/tiff/RCS/CHANGES-v3.3,v 1.5 1994/09/28 01:46:46 sam Exp $ TIFF Software 3.3beta016 (changes since 3.2beta) ------------------------------------------------ General changes: o the application interfaces have been overhauled to promote portability; a new set of typedefs are defined in tiff.h and tiffio.h and used in the library interfaces; see intro(3T) and libtiff/README for detailed information o the programs in the tools directory are more uniform in their options and usage: compression is uniformly specified with a -c option, planar configuration with -p, fill order with -f, etc. Changes in libtiff: o the internal types used by the library have been reworked for portability to 64-bit architectures (as well as 16-bit machines) o the library now builds properly on DEC Alpha and MIPS R8000 systems with compilers that use 64-bit longs o the library no longer restricts the number of samples/pixel to <= 4 o the ExtraSamples tag is now fully supported; uses of the old Matteing tag should eliminated o TIFFGetFieldDefaulted now correctly handles the TransferFunction, ReferenceBlackWhite, and ExtraSamples, tags o ExtraSamples tags incorrectly written with a BYTE type are now accepted for compatiblity with Adobe Photoshop v2.5 (the 6.0 spec requires SHORTs) o strip chopping is now done for appropriately structured tiled images o a minor memory leak in the directory writing logic was plugged o RATIONAL and SRATIONAL values are written with more care to avoid loss of precision o strip sizes and numbers are now long rather than int o strip decoding routines now increment the row number as they go so that diagnostic messages are more meaningful o the YCbCR to RGB conversion algorithms have been improved o a bug was fixed in the YCbCr to RGB conversion algorithm o TIFFPrintDirectory no longer displays the Matteing; instead showing the ExtraSamples information o TIFFSetWriteOffset is a new function that is useful for overwriting image data (added for overwriting retransmitted facsimile pages) o TIFFIsByteSwapped is a new function that can be used to decide whether or not to byteswap >8-bit data o Island Graphics-specific tags are defined in tiff.h (but no support is otherwise included) o the VMS support code handles bogus files written with fixed records o the Macintosh support code no longer tries to seek off the end of a file o the unused file machdep.h was removed o a new file tiffconf.h now has the default configuration #defines (useful on systems that don't have make) o lots of fixes and changes for using the library under Windows 3.1 on machines with 16-bit segmented addresses (yech!) o the Group 3 state+action tables are now written as a single array to increase locality (the old-style tables can be generated by supplying a -o option to mkg3states) o the codes in the Group 3 action tables have been reordered to optimize the decoder performance o memcpy, memset, and memcmp are now encapsulated inside _TIFFmempcy, _TIFFmemset, and _TIFFmemcpy, respectively (so that systems w/ backward memory architectures can handle pointer arithmetic requirements) o malloc, realloc, and free are now enapsulated inside _TIFFmalloc, _TIFFrealloc, and _TIFFfree so that system-specific memory allocation requirements can be used o the default error and warning handlers now defined in a system-specific way so that, for example, Windows apps can popup an dialogue box o the library now returns 16-bit and 32-bit data in the native host CPU byte order o the library check for incorrect SampleFormat tag values has changed to reflect a late change to the TIFF 6.0 spec (the tag values were reordered) o support has been added for the non-standard, but widely used tag #330 (SubIFD); this tag is valuable mostly for including thumbnail-style images o a new library interface, TIFFSetSubDirectory, was added for selecting a directory according to a 32-bit file offset (especially useful for SubIFD support) o a new library interface, TIFFUnlinkDirectory, was added for removing an IFD from the maiing list chained off the TIFF header (it cannot currently be used to unlink an IFD accessed via a SubIFD tag) o the strip chopping support now handles files separate PlanarConfiguration o it is now possible to append to a TIFF with byte order opposite to the native host CPU byte order (this was previously an error) o the library will now write RowsPerStrip as a SHORT if possible (it used to always write it as a LONG) o the Group 3 2D/Group 4 decoder has been sped up through a variety of changes (some changes also speed up Group 3 1D decoding, but not as noticeably) o a bug in the PackBits decoder that caused the decoder to sometimes not recognize that there was insufficient encoded data has been corrected o TIFFPrintDirectory now prints ASCII strings with embedded unprintable or otherwise graphic-oriented characters using C-style escapes o TIFFReadTile, TIFFReadRawTile, and TIFFReadEncodedTile now properly check any user-supplied byte count o TIFFNumberOfStrips and TIFFNumberOfTiles now return the proper value when the image has PlanarConfig separate o support for the Atari was contributed o several Makefiles were added for building the library on new platforms Changes in the tools: o all uses of bzero and bcmp have been replaced by the more common mem* requivalent functions o all programs now have main return a value for compatibility with strict ANSI C compilers o ppm2tiff.c has a new -resolution option to specify the image resolution in dot/inch o thumbnail.c is a new sample program that creates 8-bit greyscale thumbnail sketches from fax images and stores them using the SubIFD tag support o sgigt.c has an improved YCbCr to RGB conversion algorithm; it also does a better job of recognizing images that it cannot handle o sgisgt.c now selects a default PhotometricInterpretation based on the compression algorithm (CCITT compression algorithms also specify that MinIsWhite is the default photometric) o tiffgt (sgigt.c), tiffdump, and tiffinfo have a new -o option for specifying a directory by file offset (useful mainly with the SubIFD tag support) o sgisv.c now saves separated data correctly o tiff2ps.c has many changes: the -a option forces all images in a TIFF to be converted as PostScript (not EPS), the -h and -w options are now interpreted as the width and height to use for the printed area, a new -2 option causes PostScript Level II to be generated o tiffcmp.c has been updated to handle ExtraSamples tags o tiffcp.c now handles tiled images (thanks to JT Conklin); new -l and -w options can be used to specify the dimensions of tiles in output image; -s and -t options can be used to select a specific data organization for the resultant image o a bug in the handling of packed SHORT and BYTE tag values was fixed (again) in tiffdump.c o tiffdump has a new -h option to get hex display of numbers; it also prints the file offset of the next directory together with the current directory IFD offset Changes in the contrib software: o the fax2ps program is now more robust in decoding images with errors in the encoded data o the patches for xv 2.something were removed (just get the latest xv)