xref: /libtiff-4.0.7/html/v3.6.0.html (revision d4dd6ccc)
15c56f5e2SFrank Warmerdam<HTML>
25c56f5e2SFrank Warmerdam<HEAD>
35c56f5e2SFrank Warmerdam<TITLE>
45c56f5e2SFrank WarmerdamChanges in TIFF v3.6.0
55c56f5e2SFrank Warmerdam</TITLE>
65c56f5e2SFrank Warmerdam</HEAD>
75c56f5e2SFrank Warmerdam
85c56f5e2SFrank Warmerdam<BODY BGCOLOR=white>
95c56f5e2SFrank Warmerdam<FONT FACE="Helvetica, Arial, Sans">
105c56f5e2SFrank Warmerdam<FONT FACE="Helvetica, Arial, Sans">
115c56f5e2SFrank Warmerdam
125c56f5e2SFrank Warmerdam<BASEFONT SIZE=4>
135c56f5e2SFrank Warmerdam<B><FONT SIZE=+3>T</FONT>IFF <FONT SIZE=+2>C</FONT>HANGE <FONT SIZE=+2>I</FONT>NFORMATION</B>
145c56f5e2SFrank Warmerdam<BASEFONT SIZE=3>
155c56f5e2SFrank Warmerdam
165c56f5e2SFrank Warmerdam<UL>
175c56f5e2SFrank Warmerdam<HR SIZE=4 WIDTH=65% ALIGN=left>
185c56f5e2SFrank Warmerdam<B>Current Version</B>: v3.6.0<BR>
195c56f5e2SFrank Warmerdam<B>Previous Version</B>: <A HREF=v3.5.7.html>v3.5.7</a><BR>
20*d4dd6cccSBob Friesenhahn<B>Master FTP Site</B>: <A HREF="ftp://download.osgeo.org/libtiff">
21*d4dd6cccSBob Friesenhahndownload.osgeo.org</a>, directory pub/libtiff</A><BR>
22*d4dd6cccSBob Friesenhahn<B>Master HTTP Site</B>: <A HREF="http://www.simplesystems.org/libtiff/">
23*d4dd6cccSBob Friesenhahnhttp://www.simplesystems.org/libtiff/</a>
245c56f5e2SFrank Warmerdam<HR SIZE=4 WIDTH=65% ALIGN=left>
255c56f5e2SFrank Warmerdam</UL>
265c56f5e2SFrank Warmerdam
275c56f5e2SFrank Warmerdam<P>
285c56f5e2SFrank WarmerdamThis document describes the changes made to the software between the
295c56f5e2SFrank Warmerdam<I>previous</I> and <I>current</I> versions (see above).
305c56f5e2SFrank WarmerdamIf you don't find something listed here, then it was not done in this
315c56f5e2SFrank Warmerdamtimeframe, or it was not considered important enough to be mentioned.
325c56f5e2SFrank WarmerdamThe following information is located here:
335c56f5e2SFrank Warmerdam<UL>
345c56f5e2SFrank Warmerdam<LI><A HREF="#hightlights">Major Changes</A>
355c56f5e2SFrank Warmerdam<LI><A HREF="#configure">Changes in the software configuration</A>
365c56f5e2SFrank Warmerdam<LI><A HREF="#libtiff">Changes in libtiff</A>
375c56f5e2SFrank Warmerdam<LI><A HREF="#tools">Changes in the tools</A>
38d295e3e9SAndrey Kiselev<LI><A HREF="#contrib">Changes in the contrib area</A>
395c56f5e2SFrank Warmerdam<LI><A HREF="#lzwkit">Changes in the LZW compression kit</A>
405c56f5e2SFrank Warmerdam</UL>
415c56f5e2SFrank Warmerdam<p>
425c56f5e2SFrank Warmerdam<P><HR WIDTH=65% ALIGN=left>
435c56f5e2SFrank Warmerdam
445c56f5e2SFrank Warmerdam<!--------------------------------------------------------------------------->
455c56f5e2SFrank Warmerdam
465c56f5e2SFrank Warmerdam<A NAME="highlights"><B><FONT SIZE=+3>M</FONT>AJOR CHANGES:</B></A>
475c56f5e2SFrank Warmerdam
485c56f5e2SFrank Warmerdam<ul>
49b09a3813SAndrey Kiselev	<li> New utility <a href=./man/raw2tiff.1.html>raw2tiff</a>
50b09a3813SAndrey Kiselevfor converting raw rasters into TIFF files.
51b09a3813SAndrey Kiselev	<li> Lots of new <a href=./man/tiff2ps.1.html>tiff2ps</a> options.
524163e236SAndrey Kiselev	<li> Lots of new <a href=./man/fax2tiff.1.html>fax2tiff</a> options.
535c56f5e2SFrank Warmerdam	<li> Lots of bug fixes for LZW, JPEG and OJPEG compression.
545c56f5e2SFrank Warmerdam</ul>
555c56f5e2SFrank Warmerdam
565c56f5e2SFrank Warmerdam<h3>Custom Tag Support</h3>
575c56f5e2SFrank Warmerdam
585c56f5e2SFrank WarmerdamThe approach to extending libtiff with custom tags has changed radically.
595c56f5e2SFrank WarmerdamPreviously, all internally supported TIFF tags had a place in the
605c56f5e2SFrank Warmerdamprivate TIFFDirectory structure within libtiff to hold the values (if read),
615c56f5e2SFrank Warmerdamand a "field number" (ie. FIELD_SUBFILETYPE) used to identify that tag.
625c56f5e2SFrank WarmerdamHowever, every time a new tag was added to the core, the size of the
635c56f5e2SFrank WarmerdamTIFFDirectory structure would changing, breaking any dynamically linked
645c56f5e2SFrank Warmerdamsoftware that used the private data structures.<p>
655c56f5e2SFrank Warmerdam
665c56f5e2SFrank WarmerdamAlso, any tag not recognised
675c56f5e2SFrank Warmerdamby libtiff would not be read and accessable to applications without some
685c56f5e2SFrank Warmerdamfairly complicated work on the applications part to pre-register the tags
695c56f5e2SFrank Warmerdamas exemplified by the support for "Geo"TIFF tags by libgeotiff layered on
705c56f5e2SFrank Warmerdamlibtiff.  <p>
715c56f5e2SFrank Warmerdam
725c56f5e2SFrank WarmerdamAmoung other things this approach required the extension code
735c56f5e2SFrank Warmerdamto access the private libtiff structures ... which made the higher level
745c56f5e2SFrank Warmerdamnon-libtiff code be locked into a specific version of libtiff at compile time.
755c56f5e2SFrank WarmerdamThis caused no end of bug reports!<p>
765c56f5e2SFrank Warmerdam
775c56f5e2SFrank WarmerdamThe new approach is for libtiff to read all tags from TIFF files.  Those that
785c56f5e2SFrank Warmerdamaren't recognised as "core tags" (those having an associated FIELD_ value,
795c56f5e2SFrank Warmerdamand place for storage in the TIFFDirectory structure) are now read into a
805c56f5e2SFrank Warmerdamdynamic list of extra tags (td_customValues in TIFFDirectory).  When a new
815c56f5e2SFrank Warmerdamtag code is encountered for the first time in a given TIFF file, a new
825c56f5e2SFrank Warmerdamanonymous tag definition is created for the tag in the tag definition list.
835c56f5e2SFrank WarmerdamThe type, and some other metadata is worked out from the instance encountered.
845c56f5e2SFrank WarmerdamThese fields are known as "custom tags".  <p>
855c56f5e2SFrank Warmerdam
865c56f5e2SFrank WarmerdamCustom tags can be set and fetched normally using TIFFSetField() and
875c56f5e2SFrank WarmerdamTIFFGetField(), and appear pretty much like normal tags to application code.
885c56f5e2SFrank WarmerdamHowever, they have no impact on internal libtiff processing (such as
895c56f5e2SFrank Warmerdamcompression).  Some utilities, such as tiffcp will now copy these custom
905c56f5e2SFrank Warmerdamtags to the new output files. <p>
915c56f5e2SFrank Warmerdam
925c56f5e2SFrank WarmerdamAs well as the internal work with custom tags, new C API entry points
935c56f5e2SFrank Warmerdamwere added so that extension libraries, such as libgeotiff, could
945c56f5e2SFrank Warmerdamdefine new tags more easily without accessing internal data structures.
955c56f5e2SFrank WarmerdamBecause tag handling of extension tags is done via the "custom fields"
965c56f5e2SFrank Warmerdammechanism as well, the definition provided externally mostly serves to provide
975c56f5e2SFrank Warmerdama meaningful name for the tag.
985c56f5e2SFrank Warmerdam
995c56f5e2SFrank WarmerdamThe addition of "custom tags" and the altered approach to extending libtiff
1005c56f5e2SFrank Warmerdamwith externally defined tags is the primary reason for the shift to the
1015c56f5e2SFrank Warmerdam3.6.x version number from 3.5.x.<p>
1025c56f5e2SFrank Warmerdam
1035c56f5e2SFrank Warmerdam<P><HR WIDTH=65% ALIGN=left>
1045c56f5e2SFrank Warmerdam<!--------------------------------------------------------------------------->
1055c56f5e2SFrank Warmerdam
1065c56f5e2SFrank Warmerdam<A NAME="configure"><B><FONT SIZE=+3>C</FONT>HANGES IN THE SOFTWARE CONFIGURATION:</B></A>
1075c56f5e2SFrank Warmerdam
1085c56f5e2SFrank Warmerdam<UL>
1095c7b0ab0SAndrey Kiselev<li> configure, config.site: Fix for large files (>2GiB) support. New
1105c7b0ab0SAndrey Kiselevoption in the config.site: LARGEFILE="yes". Should be enougth for the large
1115c7b0ab0SAndrey Kiselevfiles I/O.
1125c7b0ab0SAndrey Kiselev
1135c56f5e2SFrank Warmerdam<li> configure: Set -DPIXARLOG_SUPPORT option along with -DZIP_SUPPORT.
1145c7b0ab0SAndrey Kiselev
1155c56f5e2SFrank Warmerdam<li> html/Makefile.in: Updated to use groffhtml for generating html pages
1165c56f5e2SFrank Warmerdamfrom man pages.
1175c7b0ab0SAndrey Kiselev
1185c56f5e2SFrank Warmerdam<li> configure, libtiff/Makefile.in: Added SCO OpenServer 5.0.6 support
1195c56f5e2SFrank Warmerdamfrom John H. DuBois III.
1205c7b0ab0SAndrey Kiselev
1215c56f5e2SFrank Warmerdam<li> libtiff/{Makefile.vc, libtiff.def}: Missed declarations added.
1225c56f5e2SFrank Warmerdam
1235c7b0ab0SAndrey Kiselev<li> libtiff/Makefile.in, tools/Makefile.in: Shared library will not be
1245c7b0ab0SAndrey Kiselevstripped when installing, utility binaries will do be stripped. As per bug 93.
1255c7b0ab0SAndrey Kiselev
1265c56f5e2SFrank Warmerdam<li> man/Makefile.in: Patch DESTDIR handling as per bug 95.
1275c56f5e2SFrank Warmerdam
1285c56f5e2SFrank Warmerdam<li> configure: OpenBSD changes for Sparc64 and DSO version as per bug 96.
1295c56f5e2SFrank Warmerdam
1305c56f5e2SFrank Warmerdam<li> config.site/configure: added support for OJPEG=yes option to enable
1315c56f5e2SFrank WarmerdamOJPEG support from config.site.
1325c56f5e2SFrank Warmerdam
1335c56f5e2SFrank Warmerdam<li> config.guess, config.sub: Updated from ftp.gnu.org/pub/config.
1345c56f5e2SFrank Warmerdam
1355c56f5e2SFrank Warmerdam<li> configure: Modify CheckForBigEndian so it can work in a cross
1365c56f5e2SFrank Warmerdamcompiled situation.
1375c56f5e2SFrank Warmerdam
1385c56f5e2SFrank Warmerdam<li> configure, libtiff/Makefile.in: Changes for building on MacOS 10.1
1395c56f5e2SFrank Warmerdamas per bug 94.
1405c56f5e2SFrank Warmerdam
1415c56f5e2SFrank Warmerdam<li> html/Makefile.in: added missing images per bug 92.
1425c56f5e2SFrank Warmerdam
1435c56f5e2SFrank Warmerdam<li> port/Makefile.in: fixed clean target per bug 92.
1445c56f5e2SFrank Warmerdam</UL>
1455c56f5e2SFrank Warmerdam
1465c56f5e2SFrank Warmerdam<P><HR WIDTH=65% ALIGN=left>
1475c56f5e2SFrank Warmerdam
1485c56f5e2SFrank Warmerdam<!--------------------------------------------------------------------------->
1495c56f5e2SFrank Warmerdam
1505c56f5e2SFrank Warmerdam<A NAME="libtiff"><B><FONT SIZE=+3>C</FONT>HANGES IN LIBTIFF:</B></A>
1515c56f5e2SFrank Warmerdam
1525c56f5e2SFrank Warmerdam<UL>
153c0cb42c2SAndrey Kiselev
154c0cb42c2SAndrey Kiselev<li> libtiff/tif_getimage.c: New function <A
155c0cb42c2SAndrey KiselevHREF="./man/TIFFReadRGBAImage.3t.html">TIFFReadRGBAImageOriented()</A>
156c0cb42c2SAndrey Kiselevimplemented to retrieve raster array with user-specified origin position.
157c0cb42c2SAndrey Kiselev
158c0cb42c2SAndrey Kiselev<li> libtiff/tif_fax3.c: Fix wrong line numbering.
159c0cb42c2SAndrey Kiselev
160c0cb42c2SAndrey Kiselev<li> libtiff/tif_dirread.c: Check field counter against number of fields.
161c0cb42c2SAndrey Kiselev
162c0cb42c2SAndrey Kiselev<li> Store a list of opened IFD to prevent directory looping.
163c0cb42c2SAndrey Kiselev
1645c7b0ab0SAndrey Kiselev<li> libtiff/tif_jpeg.c: modified segment_height calculation to always
1655c7b0ab0SAndrey Kiselevbe a full height tile for tiled images.  Also changed error to just
1665c7b0ab0SAndrey Kiselevbe a warning.
1675c7b0ab0SAndrey Kiselev
1685c7b0ab0SAndrey Kiselev<li> libtiff/tif_lzw.c: fixed so that decoder state isn't allocated till
1695c7b0ab0SAndrey KiselevLZWSetupDecode().  Needed to read LZW files in "r+" mode.
1705c7b0ab0SAndrey Kiselev
1715c7b0ab0SAndrey Kiselev<li> libtiff/tif_dir.c: fixed up the tif_postdecode settings responsible
1725c7b0ab0SAndrey Kiselevfor byte swapping complex image data.
1735c7b0ab0SAndrey Kiselev
1745c7b0ab0SAndrey Kiselev<li> libtiff/tif_open.c: Removed error if opening a compressed file
1755c7b0ab0SAndrey Kiselevin update mode bug (198).
1765c7b0ab0SAndrey Kiselev
1775c7b0ab0SAndrey Kiselev<li> libtiff/tif_write.c: TIFFWriteCheck() now fails if the image is
1785c7b0ab0SAndrey Kiseleva pre-existing compressed image.  That is, image writing to pre-existing
1795c7b0ab0SAndrey Kiselevcompressed images is not allowed.
1805c7b0ab0SAndrey Kiselev
1815c56f5e2SFrank Warmerdam<li> html/man/*.html: Web pages regenerated from man pages.
1825c7b0ab0SAndrey Kiselev
1835c56f5e2SFrank Warmerdam<li> libtiff/tif_jpeg.c: Hack to ensure that "boolean" is defined properly
1845c56f5e2SFrank Warmerdamon Windows so as to avoid the structure size mismatch error from libjpeg
1855c56f5e2SFrank Warmerdam(bug 188).
1865c7b0ab0SAndrey Kiselev
1875c56f5e2SFrank Warmerdam<li> libtiff/tiff.h: #ifdef USING_VISUALAGE around previous Visual Age
1885c56f5e2SFrank WarmerdamAIX porting hack as it screwed up gcc. (bug 39)
1895c7b0ab0SAndrey Kiselev
1905c56f5e2SFrank Warmerdam<li> libtiff/tiff.h: added COMPRESSION_JP2000 (34712) for LEAD tools
1915c56f5e2SFrank Warmerdamcustom compression.
1925c7b0ab0SAndrey Kiselev
1935c56f5e2SFrank Warmerdam<li> libtiff/tif_dirread.c: Another fix for the fetching SBYTE arrays
1945c56f5e2SFrank Warmerdamby the TIFFFetchByteArray() function. (bug 52)
1955c7b0ab0SAndrey Kiselev
1965c56f5e2SFrank Warmerdam<li> libtiff/tif_dirread.c: Expand v[2] to v[4] in TIFFFetchShortPair()
1975c56f5e2SFrank Warmerdamas per bug 196.
1985c7b0ab0SAndrey Kiselev
1995c56f5e2SFrank Warmerdam<li> libtiff/tif_lzw.c: Additional consistency checking added in
2005c56f5e2SFrank WarmerdamLZWDecode() and LZWDecodeCompat() fixing bugs 190 and 100.
2015c7b0ab0SAndrey Kiselev
2025c7b0ab0SAndrey Kiselev<li> libtiff/tif_lzw.c: Added check for valid code lengths in LZWDecode()
2035c7b0ab0SAndrey Kiselevand LZWDecodeCompat(). Fixes bug 115.
2045c7b0ab0SAndrey Kiselev
2055c56f5e2SFrank Warmerdam<li> tif_getimage.c: Ensure that TIFFRGBAImageBegin() returns the
2065c56f5e2SFrank Warmerdamreturn code from the underlying pick function as per bug 177.
2075c56f5e2SFrank Warmerdam
2085c56f5e2SFrank Warmerdam<li> libtiff/{tif_jpeg.c,tif_strip.c,tif_print.c}: Hacked tif_jpeg.c to
2095c56f5e2SFrank Warmerdamfetch TIFFTAG_YCBCRSUBSAMPLING from the jpeg data stream if it isn't
2105c56f5e2SFrank Warmerdampresent in the tiff tags as per bug 168.
2115c56f5e2SFrank Warmerdam
2125c56f5e2SFrank Warmerdam<li> libtiff/tif_jpeg.c: Fixed problem with setting of nrows in
2135c56f5e2SFrank WarmerdamJPEGDecode() as per bug 129.
2145c56f5e2SFrank Warmerdam
2155c56f5e2SFrank Warmerdam<li> libtiff/tif_read.c, libtiff/tif_write.c: TIFFReadScanline() and
2165c56f5e2SFrank WarmerdamTIFFWriteScanline() now set tif_row explicitly in case the codec has
2175c56f5e2SFrank Warmerdamfooled with the value as per bug 129.
2185c56f5e2SFrank Warmerdam
2195c56f5e2SFrank Warmerdam<li> libtiff/tif_ojpeg.c: Major upgrade from Scott.  Details in bug 156.
2205c56f5e2SFrank Warmerdam
2215c56f5e2SFrank Warmerdam<li>  libtiff/tif_open.c: Pointers to custom procedures
2225c56f5e2SFrank Warmerdamin TIFFClientOpen() are checked to be not NULL-pointers.
2235c56f5e2SFrank Warmerdam
2245c56f5e2SFrank Warmerdam<li> libtiff/tif_lzw.c: Assertions in LZWDecode and LZWDecodeCompat
2255c56f5e2SFrank Warmerdamreplaced by warnings. Now libtiff should read corrupted LZW-compressed
2265c56f5e2SFrank Warmerdamfiles by skipping bad strips as per bug 100.
2275c56f5e2SFrank Warmerdam
2285c56f5e2SFrank Warmerdam<li> libtiff/: tif_dirwrite.c, tif_write.c, tiffio.h:
229b09a3813SAndrey Kiselev<a href=./man/TIFFWriteDirectory.3t.html>TIFFCheckpointDirectory()</a>
230b09a3813SAndrey Kiselevroutine added as per bug 124.  The
231b09a3813SAndrey Kiselev<a href=./man/TIFFWriteDirectory.3t.html>TIFFWriteDirectory</a>
232b09a3813SAndrey Kiselevman page discusses this new function as well as the related
233b09a3813SAndrey Kiselev<a href=./man/TIFFWriteDirectory.3t.html>TIFFRewriteDirectory()</a>.
2345c56f5e2SFrank Warmerdam
2355c56f5e2SFrank Warmerdam<li> libtiff/: tif_codec.c, tif_compress.c, tiffiop.h, tif_getimage.c:
2365c56f5e2SFrank WarmerdamIntroduced
2375c56f5e2SFrank Warmerdamadditional members tif->tif_decodestatus and tif->tif_encodestatus
2385c56f5e2SFrank Warmerdamfor correct handling of unconfigured codecs (we should not try to read
2395c56f5e2SFrank Warmerdamdata or to define data size without correct codecs). See bug 119.
2405c56f5e2SFrank Warmerdam
2415c56f5e2SFrank Warmerdam<li> tif_dirread.c: avoid div-by-zero if rowbytes is zero in chop func as
2425c56f5e2SFrank Warmerdamper bug 111.
2435c56f5e2SFrank Warmerdam
2445c56f5e2SFrank Warmerdam<li> libtiff/: tiff.h, tif_dir.c, tif_dir.h, tif_dirinfo.c, tif_dirread.c,
2455c56f5e2SFrank Warmerdamtif_dirwrite.c: Dwight Kelly added get/put code for new tag XMLPACKET as
2465c56f5e2SFrank Warmerdamdefined in Adobe XMP Technote. Added missing INKSET tag value from TIFF 6.0
2475c56f5e2SFrank Warmerdamspec INKSET_MULTIINK (=2). Added missing tags from Adobe TIFF technotes:
2485c56f5e2SFrank WarmerdamCLIPPATH, XCLIPPATHUNITS, YCLIPPATHUNITS, OPIIMAGEID, OPIPROXY and
2495c56f5e2SFrank WarmerdamINDEXED. Added PHOTOMETRIC tag value from TIFF technote 4 ICCLAB (=9).
2505c56f5e2SFrank Warmerdam
2515c56f5e2SFrank Warmerdam<li> libtiff/tif_getimage.c: Additional check for supported codecs added in
2525c56f5e2SFrank WarmerdamTIFFRGBAImageOK, TIFFReadRGBAImage, TIFFReadRGBAStrip and TIFFReadRGBATile now
2535c56f5e2SFrank Warmerdamuse TIFFRGBAImageOK before reading a per bug 110.
2545c56f5e2SFrank Warmerdam
2555c56f5e2SFrank Warmerdam<li> libtiff/: tif_dir.c, tif_dir.h, tif_dirinfo.c, tif_dirread.c,
256b09a3813SAndrey Kiselevtif_dirwrite.c: Added routine
257b09a3813SAndrey Kiselev<a href=./man/TIFFDataWidth.3t.html>TIFFDataWidth</a> for determining
2585c56f5e2SFrank WarmerdamTIFFDataType sizes instead of working with tiffDataWidth array
2595c56f5e2SFrank Warmerdamdirectly as per bug 109.
2605c56f5e2SFrank Warmerdam
2615c56f5e2SFrank Warmerdam<li>libtiff/: tif_dirinfo.c, tif_dirwrite.c: Added possibility to
2625c56f5e2SFrank Warmerdamread broken TIFFs with LONG type used for TIFFTAG_COMPRESSION,
2635c56f5e2SFrank WarmerdamTIFFTAG_BITSPERSAMPLE, TIFFTAG_PHOTOMETRIC as per bug 99.
2645c56f5e2SFrank Warmerdam
2655c56f5e2SFrank Warmerdam<li> libtiff/{tiff.h,tif_fax3.c}: Add support for __arch64__ as per bug 94.
2665c56f5e2SFrank Warmerdam
2675c56f5e2SFrank Warmerdam<li> libtiff/tif_read.c: Fixed TIFFReadEncodedStrip() to fail if the
2685c56f5e2SFrank Warmerdamdecodestrip function returns anything not greater than zero as per bug 97.
2695c56f5e2SFrank Warmerdam
2705c56f5e2SFrank Warmerdam<li> libtiff/tif_jpeg.c: fixed computation of segment_width for
2715c56f5e2SFrank Warmerdamtiles files to avoid error about it not matching the
2725c56f5e2SFrank Warmerdamcinfo.d.image_width values ("JPEGPreDecode: Improper JPEG strip/tile
2735c56f5e2SFrank Warmerdamsize.") for ITIFF files.  Apparently the problem was incorporated since
2745c56f5e2SFrank Warmerdam3.5.5, presumably during the OJPEG/JPEG work recently.
2755c56f5e2SFrank Warmerdam
2765c56f5e2SFrank Warmerdam<li> libtiff/tif_getimage.c: If DEFAULT_EXTRASAMPLE_AS_ALPHA is 1
2775c56f5e2SFrank Warmerdam(defined in tiffconf.h - 1 by default) then the RGBA interface
2785c56f5e2SFrank Warmerdamwill assume that a fourth extra sample is ASSOCALPHA if the
2795c56f5e2SFrank WarmerdamEXTRASAMPLE value isn't set for it.  This changes the behaviour of
2805c56f5e2SFrank Warmerdamthe library, but makes it work better with RGBA files produced by
2815c56f5e2SFrank Warmerdamlots of applications that don't mark the alpha values properly.
2825c56f5e2SFrank WarmerdamAs per bugs 93 and 65.
2835c56f5e2SFrank Warmerdam
2845c56f5e2SFrank Warmerdam<li> libtiff/tif_jpeg.c: allow jpeg data stream sampling values to
2855c56f5e2SFrank Warmerdamoverride those from tiff directory.  This makes this work with
2865c56f5e2SFrank WarmerdamImageGear generated files.
2875c56f5e2SFrank Warmerdam
2885c56f5e2SFrank Warmerdam</UL>
2895c56f5e2SFrank Warmerdam
2905c56f5e2SFrank Warmerdam<P><HR WIDTH=65% ALIGN=left>
2915c56f5e2SFrank Warmerdam
2925c56f5e2SFrank Warmerdam<!-------------------------------------------------------------------------->
2935c56f5e2SFrank Warmerdam
2945c56f5e2SFrank Warmerdam<A NAME="tools"><B><FONT SIZE=+3>C</FONT>HANGES IN THE TOOLS:</B></A>
2955c56f5e2SFrank Warmerdam
2965c56f5e2SFrank Warmerdam<UL>
297c0cb42c2SAndrey Kiselev
298c0cb42c2SAndrey Kiselev<li> <a href=./man/tiff2ps.1.html>tiff2ps</a>: Added page size setting
299c0cb42c2SAndrey Kiselevwhen creating PS Level 2.
300c0cb42c2SAndrey Kiselev
301c0cb42c2SAndrey Kiselev<li> <a href=./man/tiff2ps.1.html>tiff2ps</a>: Fixed PS comment emitted when
302c0cb42c2SAndrey KiselevFlateDecode is being used.
303c0cb42c2SAndrey Kiselev
304c0cb42c2SAndrey Kiselev<li> <a href=./man/tiffsplit.1.html>tiffsplit</a>: increased the maximum
305c0cb42c2SAndrey Kiselevnumber of pages that can be split.
306c0cb42c2SAndrey Kiselev
307c0cb42c2SAndrey Kiselev<li> <a href=./man/raw2tiff.1.html>raw2tiff</a>: Added option `-p' to
308c0cb42c2SAndrey Kiselevexplicitly select color	space of input image data.
309c0cb42c2SAndrey Kiselev
310c0cb42c2SAndrey Kiselev<li> <a href=./man/tiffmedian.1.html>tiffmedian</a>: Suppiort for large
311c0cb42c2SAndrey Kiselev(> 2GB) images.
312c0cb42c2SAndrey Kiselev
313c0cb42c2SAndrey Kiselev<li> <a href=./man/ppm2tiff.1.html>ppm2tiff</a>: Fixed possible endless loop.
314c0cb42c2SAndrey Kiselev
315c0cb42c2SAndrey Kiselev<li> <a href=./man/tiff2rgba.1.html>tiff2rgba</a>: Switched to use
316c0cb42c2SAndrey Kiselev<A HREF="./man/TIFFReadRGBAImage.3t.html">TIFFReadRGBAImageOriented()</A>
317c0cb42c2SAndrey Kiselevinstead of <A HREF="./man/TIFFReadRGBAImage.3t.html">TIFFReadRGBAImage()</A>.
318c0cb42c2SAndrey Kiselev
3195c7b0ab0SAndrey Kiselev<li> <a href=./man/tiffcmp.1.html>tiffcmp</a>: Fixed problem with unused data
3205c7b0ab0SAndrey Kiselevcomparing (bug 349). `-z' option now can be used to set the number of reported
3215c7b0ab0SAndrey Kiselevdifferent bytes.
3225c7b0ab0SAndrey Kiselev
3235c7b0ab0SAndrey Kiselev<li> <a href=./man/tiffcp.1.html>tiffcp</a>: Added possibility to specify
3245c7b0ab0SAndrey Kiselevvalue -1 to -r option to get the entire image as one strip (bug 343).
3255c7b0ab0SAndrey Kiselev
3265c7b0ab0SAndrey Kiselev<li> <a href=./man/tiffcp.1.html>tiffcp</a>: Set the correct RowsPerStrip
3275c7b0ab0SAndrey Kiselevand PageNumber values (bug 343).
3285c7b0ab0SAndrey Kiselev
3295c7b0ab0SAndrey Kiselev<li> <a href=./man/fax2tiff.1.html>fax2tiff</a>: Page numbering fixed (bug
3305c7b0ab0SAndrey Kiselev341).
3315c7b0ab0SAndrey Kiselev
3325c7b0ab0SAndrey Kiselev<li> <a href=./man/ppm2tiff.1.html>ppm2tiff</a>: PPM header parser improved:
3335c7b0ab0SAndrey Kiselevnow able to skip comments.
3345c7b0ab0SAndrey Kiselev
3355c7b0ab0SAndrey Kiselev<li> <a href=./man/tiff2ps.1.html>tiff2ps</a>: Force deadzone printing when
3365c7b0ab0SAndrey KiselevEPS output specified (bug 325).
3375c7b0ab0SAndrey Kiselev
3385c7b0ab0SAndrey Kiselev<li> <a href=./man/tiff2ps.1.html>tiff2ps</a>: Add ability to generate
3395c7b0ab0SAndrey KiselevPS Level 3. It basically allows one to use the /flateDecode filter for ZIP
3405c7b0ab0SAndrey Kiselevcompressed TIFF images. Patch supplied by Tom Kacvinsky (bug 328).
3415c7b0ab0SAndrey Kiselev
3425c7b0ab0SAndrey Kiselev<li> <a href=./man/tiffcp.1.html>tiffcp</a>: Fixed problem with colorspace
3435c7b0ab0SAndrey Kiselevconversion for JPEG encoded images (bugs 23 and 275)
3445c7b0ab0SAndrey Kiselev
3455c7b0ab0SAndrey Kiselev<li> <a href=./man/fax2tiff.1.html>fax2tiff</a>: Applied patch from
3465c7b0ab0SAndrey KiselevJulien Gaulmin. More switches for fax2tiff tool for better control
3475c7b0ab0SAndrey Kiselevof input and output (bugs 272 and 293).
3485c56f5e2SFrank Warmerdam
349b09a3813SAndrey Kiselev<li> <a href=./man/raw2tiff.1.html>raw2tiff</a>:
350b09a3813SAndrey KiselevNew utility for turning raw raster images into TIFF files
3515c56f5e2SFrank Warmerdamwritten by Andrey Kiselev.
3525c56f5e2SFrank Warmerdam
353b09a3813SAndrey Kiselev<li> <a href=./man/tiff2ps.1.html>tiff2ps</a>:
354b09a3813SAndrey KiselevSebastian Eken provided patches (bug 200) to add new these new
3555c56f5e2SFrank Warmerdamswitches:
3565c56f5e2SFrank Warmerdam  <ul>
3575c56f5e2SFrank Warmerdam    <li> <b>-b #</b>: for a bottom margin of # inches
3585c56f5e2SFrank Warmerdam    <li> <b>-c</b>: center image
3595c56f5e2SFrank Warmerdam    <li> <b>-l #</b>: for a left margin of # inches
3605c56f5e2SFrank Warmerdam    <li> <b>-r</b>: rotate the image by 180 degrees
3615c56f5e2SFrank Warmerdam  </ul>
3625c56f5e2SFrank Warmerdam
3635c56f5e2SFrank WarmerdamAlso, new features merged with code for shrinking/overlapping.
3645c56f5e2SFrank Warmerdam
365b09a3813SAndrey Kiselev<li> <a href=./man/tiff2ps.1.html>tiff2ps</a>: Don't emit BeginData/EndData
366b09a3813SAndrey KiselevDSC comments since we are unable to properly include the amount to skip
367b09a3813SAndrey Kiselevas per bug 80.
3685c56f5e2SFrank Warmerdam
369b09a3813SAndrey Kiselev<li> <a href=./man/tiff2ps.1.html>tiff2ps</a>: Added workaround for some
370b09a3813SAndrey Kiselevsoftware that may crash when last strip of image contains fewer number
371b09a3813SAndrey Kiselevof scanlines than specified by the `/Height' variable as per bug 164.
3725c56f5e2SFrank Warmerdam
373b09a3813SAndrey Kiselev<li> <a href=./man/tiff2ps.1.html>tiff2ps</a>: Patch from John Williams to add new
3745c56f5e2SFrank Warmerdamfunctionality for tiff2ps utility splitting long images in several pages as
375b09a3813SAndrey Kiselevper bug 142. New switches:
376b09a3813SAndrey Kiselev	<ul>
377b09a3813SAndrey Kiselev		<li> <b>-H #</b>: split image if height is more than # inches
378b09a3813SAndrey Kiselev		<li> <b>-L #</b>: overLap split images by # inches
379b09a3813SAndrey Kiselev	</ul>
3805c56f5e2SFrank Warmerdam
381b09a3813SAndrey Kiselev<li>  <a href=./man/tiff2ps.1.html>tiff2ps</a>: New commandline
382b09a3813SAndrey Kiselevswitches to override resolution units obtained from the input file per bug 131:
383b09a3813SAndrey Kiselev	<ul>
384b09a3813SAndrey Kiselev		<li> <b>-x</b>: override resolution units as centimeters
385b09a3813SAndrey Kiselev		<li> <b>-y</b>: override resolution units as inches
386b09a3813SAndrey Kiselev	</ul>
3875c56f5e2SFrank Warmerdam
388b09a3813SAndrey Kiselev<li> <a href=./man/fax2tiff.1.html>fax2tiff</a>: Updated to reflect
389b09a3813SAndrey Kiselevlatest changes in libtiff per bug 125.
3905c56f5e2SFrank Warmerdam
391b09a3813SAndrey Kiselev<li> tiff2ps: Division by zero fixed as per bug 88.
3925c56f5e2SFrank Warmerdam
393b09a3813SAndrey Kiselev<li> <a href=./man/tiffcp.1.html>tiffcp<a>:
394b09a3813SAndrey KiselevAdded support for 'Orientation' tag.
3955c56f5e2SFrank Warmerdam
396b09a3813SAndrey Kiselev<li> <a href=./man/tiffdump.1.html>tiffdump</a>:
397b09a3813SAndrey Kiselevinclude TIFFTAG_JPEGTABLES in tag list.
3985c56f5e2SFrank Warmerdam
399b09a3813SAndrey Kiselev<li> tiffset: fix bug in error reporting.
4005c56f5e2SFrank Warmerdam
4015c56f5e2SFrank Warmerdam</UL>
4025c56f5e2SFrank Warmerdam
4035c56f5e2SFrank Warmerdam<P><HR WIDTH=65% ALIGN=left>
4045c56f5e2SFrank Warmerdam
4055c56f5e2SFrank Warmerdam<!--------------------------------------------------------------------------->
4065c56f5e2SFrank Warmerdam
4075c56f5e2SFrank Warmerdam<A NAME="contrib"><B><FONT SIZE=+3>C</FONT>HANGES IN THE CONTRIB AREA:</B></A>
4085c56f5e2SFrank Warmerdam<UL>
4095c56f5e2SFrank Warmerdam
4105c56f5e2SFrank Warmerdam<li> Fixed distribution to include contrib/addtiffo/tif_ovrcache.{c,h}.
4115c56f5e2SFrank Warmerdam<li> libtiff/contrib/win95: renamed to contrib/win_dib.  Added new
4125c56f5e2SFrank WarmerdamTiffile.cpp example of converting TIFF files into a DIB on Win32 as per
4135c56f5e2SFrank Warmerdambug 143.
4145c56f5e2SFrank Warmerdam
4155c56f5e2SFrank Warmerdam</UL>
4165c56f5e2SFrank Warmerdam
417d295e3e9SAndrey Kiselev<!--------------------------------------------------------------------------->
418d295e3e9SAndrey Kiselev
419d295e3e9SAndrey Kiselev<A NAME="lzwkit"><B><FONT SIZE=+3>C</FONT>HANGES IN THE LZW COMPRESSION
420d295e3e9SAndrey KiselevKIT:</B></A>
421d295e3e9SAndrey Kiselev<UL>
422d295e3e9SAndrey Kiselev
423d295e3e9SAndrey Kiselev<li> LZW compression kit synchronized with actual libtiff version.
424d295e3e9SAndrey Kiselev
425d295e3e9SAndrey Kiselev</UL>
426d295e3e9SAndrey Kiselev
4275c56f5e2SFrank Warmerdam<A HREF="index.html"><IMG SRC="images/back.gif"></A> TIFF home page.<BR>
4285c56f5e2SFrank Warmerdam
4295c56f5e2SFrank Warmerdam<HR>
4305c56f5e2SFrank Warmerdam
431*d4dd6cccSBob FriesenhahnLast updated $Date: 2016-09-25 20:05:45 $.
4325c56f5e2SFrank Warmerdam
4335c56f5e2SFrank Warmerdam</BODY>
4345c56f5e2SFrank Warmerdam</HTML>
435