1$Header: /usr/people/sam/tiff/RCS/CHANGES-v3.0,v 1.5 1992/03/31 11:31:03 sam Exp $ 2 3TIFF Software "Release" 3.00 (changes since 2.4.2 release) 4---------------------------------------------------------- 5Changes in libtiff: 6 o the mkg3states program has been made more portable 7 o global library data structures can now be compiled as const 8 (this is important for building shared libraries) 9 o the file machdep.h is no longer needed and has been purged 10 o the format of the include file generated by mkg3states 11 has been altered so that applications can access the 12 Group 3 and Group 4 compression machinery more easily 13 (see tools/fax2tiff and contrib/fax2ps for examples) 14 o a new -c option has been added to mkg3states to generate 15 const data structures 16 o the function prototyping macros now fail at compile time 17 if the library is configured to not use prototypes and 18 not use varargs 19 o two new functions, TIFFGetFieldDefaulted and TIFFVGetFieldDefaulted, 20 for getting either a tag's value or a default value 21 (if one exists) have been added 22 o a new function TIFFReadRGBAImage has been added to read 23 an entire image into memory and return it in a common 24 format (packed into 32-bit pixels) 25 o function prototype inconsistencies for TIFFMapFileContents 26 and TIFFUnmapFileContents have been fixed 27 o the directory handling code has been broken up into 28 4 separate files: 29 tif_dir.c routines for getting & setting tag values 30 tif_dirinfo.c information about known tags 31 tif_dirread.c directory reading support 32 tif_dirwrite.c directory writing support 33 o the directory handling code has been substantially reworked 34 to eliminate many special cases and add more general reading 35 and writing support routines; this is mainly for supporting 36 the 6.0 tags 37 o the code that deduces a value for StripByteCounts when the 38 tag is not present has been improved slightly 39 o the directory reading code is now more careful about checking 40 count fields and tag definitions (when known) 41 o support has been added for the color information tags that are 42 to appear in TIFF 6.0: WhitePoint, PrimaryChromaticities, 43 ReferenceBlackWhite, and TransferFunction 44 o support has been added for the JPEG tags that are to appear 45 in TIFF 6.0 (but still no compression/decompression code yet): 46 JPEGProc, JPEGRestartInterval, JPEGQTables, JPEGACTables, 47 JPEGDCTables 48 o support has been added for the CMYK tags that are to appear 49 in TIFF 6.0: InkSet, InkNames, DotRange, TargetPrinter 50 o support has been added for the YCbCr tags that are to appear 51 in TIFF 6.0: YCbCrCoefficients, YCbCrSubsampling, YCbCrPositioning 52 o support has been added for some 6.0 tags that replace SGI-private 53 tags previously supported by the library: ExtraSamples, SampleFormat 54 o the reading and writing of packed sampled YCbCr data by strip 55 or tile works correctly (i.e. buffer sizes are calculated 56 according to the sampling factors and the Y...YCbCr packing) 57 o it is no longer necessary to call TIFFFlushData before a 58 call to TIFFWriteDirectory; this is now handled automatically; 59 old code that did this will still work as the library is 60 now more intelligent about doing end-of-strip work only once 61 per strip 62 o the values for certain tags are now checked when the tag's 63 value is set; e.g. FillOrder may only be FILLORDER_LSB2MSB 64 or FILLORDER_MSB2LSB 65 o old tags obsoleted by changes in TIFF 6.0 have been removed: 66 ColorResponseUnit, ColorResponseCurves, GrayResponseUnit, 67 GrayResponseCurve 68 o a bug whereby the library could leak memory if directories 69 were read in a non-sequential order has been fixed 70 o a bug in the Group 3 2D/Group 4 decoding+encoding routines 71 whereby the reference scanline was not reset to white at the 72 start of each strip after the first has been fixed 73 o bugs in the Group 3 2D/Group 4 decoding routine logic for 74 several (slightly obscure) cases were fixed 75 o a bug in the LZW encoding routine that could result in invalid 76 codes being generated was fixed (this only happened in a 77 low probability situation where the encoding process was 78 considered "poor" and the library attempted to reset its 79 encoding state to improve the compression performance) 80 o a new routine, TIFFCurrentDirectory has been added; it 81 returns the index of the current directory -- suitable for 82 passing to TIFFSetDirectory 83 o TIFFPrintDirectory has been updated to reflect the changes 84 in the tags supported by the library 85 o an obscure case in TIFFReadEncodedStrip where an error could 86 occur without a diagnostic has been corrected 87 o the private Picio and SGI RLE compression codes have been deleted 88 (along with the associated code) 89 o the JPEG compression code has been renumbered to reflect the 90 value that it will have in TIFF 6.0 91 o support has been added for the the HalftoneHints tag that 92 is to appear in TIFF 6.0 93 o support has been added for using the library under VMS 94 o the bit reversal routine TIFFReverseBits has been made faster 95 o a bug in the TIFFWriteTile routine where the tile size might 96 be used before it's calculated has been fixed 97 o some portability problems with 16-bit machines such as the 98 Macintosh have been fixed 99 o the library now treats RATIONAL values as the ratio of two 100 unsigned 32-bit quantities; it used to treat them as the ratio 101 of two *signed* values 102 o the library now supports all the new 6.0 tag data types except DOUBLE 103 o the SUBFILE_COMPAT configuration define has been removed 104 (compatibility for SHORT SubfileType tags is always included). 105 o a new global variable, TIFFVersion, has been added -- it is a 106 string giving the version and copyright information for the library 107 108(Note, since the 2.5 BETA version the following user-visible 109 modifications have been made: 110 o the ReferenceBlackWhite tag changed from LONG to RATIONAL 111 with a corresponding change in the parameters to TIFFGetField 112 and TIFFSetField; LONG values may still be read, but only 113 RATIONAL values are now written 114 o the SGI-specific Matteing and DataType tags have been replaced 115 by the new ExtraSamples and SampleFormat tags; the library will 116 accept the old tags, but only generate the new tags 117 o several bugs in the handling of the JPEG tags have been fixed 118 o a bug in the Group 3 2D and Group 4 decoding routines was fixed 119 o Group 3 2d tag bits are no longer included in the EOL 120 byte-aligning logic: that is, EOL codes are consistently aligned 121 to byte boundaries and any 2d tag bits are placed in the byte 122 that follows 123 o the writing of the TileByteCounts and TileOffsets tags has been 124 corrected 125 o the library now treats RATIONAL values as the ratio of two 126 unsigned 32-bit quantities; it used to treat them as the ratio 127 of two *signed* values 128) 129(Note, since the 3.0 BETA version the following user-visible 130 modifications have been made: 131 o a bug that caused RTC to be written at the end of each 132 Group 4-encoded strip has been fixed 133 o support for the DotRange tag was fixed 134 o the PhotometricInterpretation, Orientation, and ResolutionUnit 135 tags no longer may be modified once data is written (for the 136 Group 3 compression algorithm) 137 o portability problems with the IEEE floating point conversion 138 code have been fixed 139 o the PackBits encoding algorithm now breaks strips and tiles 140 up into row-sized units to avoid problems caused by encoding by 141 strip/tile and then decoding by scanline 142) 143 144Changes in the tools: 145 o a new tool for converting PBM+ files, ppm2tiff, has been added 146 o a new tool for converting an RGB, grayscale, or bilevel image 147 to a sampled YCbCr image, rgb2ycbcr, has been added 148 o a new tool for splitting multi-image files into multiple single-image 149 files, tiffsplit, has been added 150 o the fax2tiff utility has been rewritten to use the library 151 decoding routines; because of this, it can now decode Group 4 152 data as well as Group 3 data 153 o all references to obsolete tags such as ColorResponseCurves 154 were deleted 155 o the picio2tiff utility was purged for lack of use 156 o the pixargt utility was purged for lack of use 157 o a bug in ras2tiff that caused the default value of RowsPerStrip 158 to be large was fixed 159 o tiffgt (SGI version) now continues in the face of decoding 160 errors unless a -s flag is specified; support for displaying 161 YCbCr data has been added; also, the -v (verbose) 162 flag has been changed to alter the window title strip rather 163 than print to the terminal; finally, a bug that caused certain 164 kinds of images larger than the screen to not be displayed 165 properly was fixed 166 o the PostScript generated by tiff2ps has been changed 167 slightly to conform to the latest Adobe document conventions; 168 also, several bugs were fixed and support was added for converting 169 CMYK images 170 o a bug in tiffcmp that caused it to dump core was fixed 171 o tiffcp has been enhanced so that it can be used to generate a 172 multipage file from multiple source files; it now checks the 173 colormap to see if it is an 8-bit colormap and, if so, coerces 174 it to be 16-bit in the resultant file; it copies more tags; 175 and it copies the most common data organization more efficiently 176 o tiffdump has been updated to reflect the new tags added to the 177 library for TIFF 6.0 178 o tiffdump is now more resilient in the face of bad tag types 179 and read errors; also, a longstanding bug whereby 2 SHORT 180 values packed into an offset field were printed out of order 181 has been fixed 182 o tiffinfo has new -l and -m options to specify the FillOrder 183 of the input file as LSB-to-MSB and MSB-to-LSB, respectively 184 o tiffinfo now reads data by strip and tile (e.g. for the -D option) 185 o tiffcmp can now compare 1, 2, and 4 bit data 186 o a public domain version of getopt is now included with the tools 187 o the tools have been ported to VMS 188 189Changes in the documentation: 190 o the section 3 manual pages have been renamed to reflect full 191 function names and a Makefile now exists for creating links 192 when multiple functions are described in a single manual page 193 (NOTE that this means that many file names are now much longer 194 than 14 characters.) 195 o a draft copy of the TIFF 6.0 spec is in PostScript form 196 o the obsolete 5.0spec has been removed 197 198Changes in the contrib software: 199 o a new program, fax2ps, was contributed by Sam Leffler; it 200 converts bilevel TIFF images to a compressed PostScript 201 that is typically much faster to print than the PostScript 202 generated by tiff2ps 203 o a vms area contains scripts and data files for building the 204 library and tools under the VMS operating system 205 o an xv area contains patches to add TIFF support to version 206 2.00 of the XV program (xv versions >=2.10 include this support) 207