diff options
Diffstat (limited to 'tiff/html/v3.6.0.html')
-rwxr-xr-x | tiff/html/v3.6.0.html | 434 |
1 files changed, 434 insertions, 0 deletions
diff --git a/tiff/html/v3.6.0.html b/tiff/html/v3.6.0.html new file mode 100755 index 0000000..4d65197 --- /dev/null +++ b/tiff/html/v3.6.0.html @@ -0,0 +1,434 @@ +<HTML> +<HEAD> +<TITLE> +Changes in TIFF v3.6.0 +</TITLE> +</HEAD> + +<BODY BGCOLOR=white> +<FONT FACE="Helvetica, Arial, Sans"> +<FONT FACE="Helvetica, Arial, Sans"> + +<BASEFONT SIZE=4> +<B><FONT SIZE=+3>T</FONT>IFF <FONT SIZE=+2>C</FONT>HANGE <FONT SIZE=+2>I</FONT>NFORMATION</B> +<BASEFONT SIZE=3> + +<UL> +<HR SIZE=4 WIDTH=65% ALIGN=left> +<B>Current Version</B>: v3.6.0<BR> +<B>Previous Version</B>: <A HREF=v3.5.7.html>v3.5.7</a><BR> +<B>Master FTP Site</B>: <A HREF="ftp://ftp.remotesensing.org/pub/libtiff"> +ftp.remotesensing.org</a>, directory pub/libtiff</A><BR> +<B>Master HTTP Site</B>: <A HREF="http://www.remotesensing.org/libtiff"> +http://www.remotesensing.org/libtiff</a> +<HR SIZE=4 WIDTH=65% ALIGN=left> +</UL> + +<P> +This document describes the changes made to the software between the +<I>previous</I> and <I>current</I> versions (see above). +If you don't find something listed here, then it was not done in this +timeframe, or it was not considered important enough to be mentioned. +The following information is located here: +<UL> +<LI><A HREF="#hightlights">Major Changes</A> +<LI><A HREF="#configure">Changes in the software configuration</A> +<LI><A HREF="#libtiff">Changes in libtiff</A> +<LI><A HREF="#tools">Changes in the tools</A> +<LI><A HREF="#contrib">Changes in the contrib area</A> +<LI><A HREF="#lzwkit">Changes in the LZW compression kit</A> +</UL> +<p> +<P><HR WIDTH=65% ALIGN=left> + +<!---------------------------------------------------------------------------> + +<A NAME="highlights"><B><FONT SIZE=+3>M</FONT>AJOR CHANGES:</B></A> + +<ul> + <li> New utility <a href=./man/raw2tiff.1.html>raw2tiff</a> +for converting raw rasters into TIFF files. + <li> Lots of new <a href=./man/tiff2ps.1.html>tiff2ps</a> options. + <li> Lots of new <a href=./man/fax2tiff.1.html>fax2tiff</a> options. + <li> Lots of bug fixes for LZW, JPEG and OJPEG compression. +</ul> + +<h3>Custom Tag Support</h3> + +The approach to extending libtiff with custom tags has changed radically. +Previously, all internally supported TIFF tags had a place in the +private TIFFDirectory structure within libtiff to hold the values (if read), +and a "field number" (ie. FIELD_SUBFILETYPE) used to identify that tag. +However, every time a new tag was added to the core, the size of the +TIFFDirectory structure would changing, breaking any dynamically linked +software that used the private data structures.<p> + +Also, any tag not recognised +by libtiff would not be read and accessable to applications without some +fairly complicated work on the applications part to pre-register the tags +as exemplified by the support for "Geo"TIFF tags by libgeotiff layered on +libtiff. <p> + +Amoung other things this approach required the extension code +to access the private libtiff structures ... which made the higher level +non-libtiff code be locked into a specific version of libtiff at compile time. +This caused no end of bug reports!<p> + +The new approach is for libtiff to read all tags from TIFF files. Those that +aren't recognised as "core tags" (those having an associated FIELD_ value, +and place for storage in the TIFFDirectory structure) are now read into a +dynamic list of extra tags (td_customValues in TIFFDirectory). When a new +tag code is encountered for the first time in a given TIFF file, a new +anonymous tag definition is created for the tag in the tag definition list. +The type, and some other metadata is worked out from the instance encountered. +These fields are known as "custom tags". <p> + +Custom tags can be set and fetched normally using TIFFSetField() and +TIFFGetField(), and appear pretty much like normal tags to application code. +However, they have no impact on internal libtiff processing (such as +compression). Some utilities, such as tiffcp will now copy these custom +tags to the new output files. <p> + +As well as the internal work with custom tags, new C API entry points +were added so that extension libraries, such as libgeotiff, could +define new tags more easily without accessing internal data structures. +Because tag handling of extension tags is done via the "custom fields" +mechanism as well, the definition provided externally mostly serves to provide +a meaningful name for the tag. + +The addition of "custom tags" and the altered approach to extending libtiff +with externally defined tags is the primary reason for the shift to the +3.6.x version number from 3.5.x.<p> + +<P><HR WIDTH=65% ALIGN=left> +<!---------------------------------------------------------------------------> + +<A NAME="configure"><B><FONT SIZE=+3>C</FONT>HANGES IN THE SOFTWARE CONFIGURATION:</B></A> + +<UL> +<li> configure, config.site: Fix for large files (>2GiB) support. New +option in the config.site: LARGEFILE="yes". Should be enougth for the large +files I/O. + +<li> configure: Set -DPIXARLOG_SUPPORT option along with -DZIP_SUPPORT. + +<li> html/Makefile.in: Updated to use groffhtml for generating html pages +from man pages. + +<li> configure, libtiff/Makefile.in: Added SCO OpenServer 5.0.6 support +from John H. DuBois III. + +<li> libtiff/{Makefile.vc, libtiff.def}: Missed declarations added. + +<li> libtiff/Makefile.in, tools/Makefile.in: Shared library will not be +stripped when installing, utility binaries will do be stripped. As per bug 93. + +<li> man/Makefile.in: Patch DESTDIR handling as per bug 95. + +<li> configure: OpenBSD changes for Sparc64 and DSO version as per bug 96. + +<li> config.site/configure: added support for OJPEG=yes option to enable +OJPEG support from config.site. + +<li> config.guess, config.sub: Updated from ftp.gnu.org/pub/config. + +<li> configure: Modify CheckForBigEndian so it can work in a cross +compiled situation. + +<li> configure, libtiff/Makefile.in: Changes for building on MacOS 10.1 +as per bug 94. + +<li> html/Makefile.in: added missing images per bug 92. + +<li> port/Makefile.in: fixed clean target per bug 92. +</UL> + +<P><HR WIDTH=65% ALIGN=left> + +<!---------------------------------------------------------------------------> + +<A NAME="libtiff"><B><FONT SIZE=+3>C</FONT>HANGES IN LIBTIFF:</B></A> + +<UL> + +<li> libtiff/tif_getimage.c: New function <A +HREF="./man/TIFFReadRGBAImage.3t.html">TIFFReadRGBAImageOriented()</A> +implemented to retrieve raster array with user-specified origin position. + +<li> libtiff/tif_fax3.c: Fix wrong line numbering. + +<li> libtiff/tif_dirread.c: Check field counter against number of fields. + +<li> Store a list of opened IFD to prevent directory looping. + +<li> libtiff/tif_jpeg.c: modified segment_height calculation to always +be a full height tile for tiled images. Also changed error to just +be a warning. + +<li> libtiff/tif_lzw.c: fixed so that decoder state isn't allocated till +LZWSetupDecode(). Needed to read LZW files in "r+" mode. + +<li> libtiff/tif_dir.c: fixed up the tif_postdecode settings responsible +for byte swapping complex image data. + +<li> libtiff/tif_open.c: Removed error if opening a compressed file +in update mode bug (198). + +<li> libtiff/tif_write.c: TIFFWriteCheck() now fails if the image is +a pre-existing compressed image. That is, image writing to pre-existing +compressed images is not allowed. + +<li> html/man/*.html: Web pages regenerated from man pages. + +<li> libtiff/tif_jpeg.c: Hack to ensure that "boolean" is defined properly +on Windows so as to avoid the structure size mismatch error from libjpeg +(bug 188). + +<li> libtiff/tiff.h: #ifdef USING_VISUALAGE around previous Visual Age +AIX porting hack as it screwed up gcc. (bug 39) + +<li> libtiff/tiff.h: added COMPRESSION_JP2000 (34712) for LEAD tools +custom compression. + +<li> libtiff/tif_dirread.c: Another fix for the fetching SBYTE arrays +by the TIFFFetchByteArray() function. (bug 52) + +<li> libtiff/tif_dirread.c: Expand v[2] to v[4] in TIFFFetchShortPair() +as per bug 196. + +<li> libtiff/tif_lzw.c: Additional consistency checking added in +LZWDecode() and LZWDecodeCompat() fixing bugs 190 and 100. + +<li> libtiff/tif_lzw.c: Added check for valid code lengths in LZWDecode() +and LZWDecodeCompat(). Fixes bug 115. + +<li> tif_getimage.c: Ensure that TIFFRGBAImageBegin() returns the +return code from the underlying pick function as per bug 177. + +<li> libtiff/{tif_jpeg.c,tif_strip.c,tif_print.c}: Hacked tif_jpeg.c to +fetch TIFFTAG_YCBCRSUBSAMPLING from the jpeg data stream if it isn't +present in the tiff tags as per bug 168. + +<li> libtiff/tif_jpeg.c: Fixed problem with setting of nrows in +JPEGDecode() as per bug 129. + +<li> libtiff/tif_read.c, libtiff/tif_write.c: TIFFReadScanline() and +TIFFWriteScanline() now set tif_row explicitly in case the codec has +fooled with the value as per bug 129. + +<li> libtiff/tif_ojpeg.c: Major upgrade from Scott. Details in bug 156. + +<li> libtiff/tif_open.c: Pointers to custom procedures +in TIFFClientOpen() are checked to be not NULL-pointers. + +<li> libtiff/tif_lzw.c: Assertions in LZWDecode and LZWDecodeCompat +replaced by warnings. Now libtiff should read corrupted LZW-compressed +files by skipping bad strips as per bug 100. + +<li> libtiff/: tif_dirwrite.c, tif_write.c, tiffio.h: +<a href=./man/TIFFWriteDirectory.3t.html>TIFFCheckpointDirectory()</a> +routine added as per bug 124. The +<a href=./man/TIFFWriteDirectory.3t.html>TIFFWriteDirectory</a> +man page discusses this new function as well as the related +<a href=./man/TIFFWriteDirectory.3t.html>TIFFRewriteDirectory()</a>. + +<li> libtiff/: tif_codec.c, tif_compress.c, tiffiop.h, tif_getimage.c: +Introduced +additional members tif->tif_decodestatus and tif->tif_encodestatus +for correct handling of unconfigured codecs (we should not try to read +data or to define data size without correct codecs). See bug 119. + +<li> tif_dirread.c: avoid div-by-zero if rowbytes is zero in chop func as +per bug 111. + +<li> libtiff/: tiff.h, tif_dir.c, tif_dir.h, tif_dirinfo.c, tif_dirread.c, +tif_dirwrite.c: Dwight Kelly added get/put code for new tag XMLPACKET as +defined in Adobe XMP Technote. Added missing INKSET tag value from TIFF 6.0 +spec INKSET_MULTIINK (=2). Added missing tags from Adobe TIFF technotes: +CLIPPATH, XCLIPPATHUNITS, YCLIPPATHUNITS, OPIIMAGEID, OPIPROXY and +INDEXED. Added PHOTOMETRIC tag value from TIFF technote 4 ICCLAB (=9). + +<li> libtiff/tif_getimage.c: Additional check for supported codecs added in +TIFFRGBAImageOK, TIFFReadRGBAImage, TIFFReadRGBAStrip and TIFFReadRGBATile now +use TIFFRGBAImageOK before reading a per bug 110. + +<li> libtiff/: tif_dir.c, tif_dir.h, tif_dirinfo.c, tif_dirread.c, +tif_dirwrite.c: Added routine +<a href=./man/TIFFDataWidth.3t.html>TIFFDataWidth</a> for determining +TIFFDataType sizes instead of working with tiffDataWidth array +directly as per bug 109. + +<li>libtiff/: tif_dirinfo.c, tif_dirwrite.c: Added possibility to +read broken TIFFs with LONG type used for TIFFTAG_COMPRESSION, +TIFFTAG_BITSPERSAMPLE, TIFFTAG_PHOTOMETRIC as per bug 99. + +<li> libtiff/{tiff.h,tif_fax3.c}: Add support for __arch64__ as per bug 94. + +<li> libtiff/tif_read.c: Fixed TIFFReadEncodedStrip() to fail if the +decodestrip function returns anything not greater than zero as per bug 97. + +<li> libtiff/tif_jpeg.c: fixed computation of segment_width for +tiles files to avoid error about it not matching the +cinfo.d.image_width values ("JPEGPreDecode: Improper JPEG strip/tile +size.") for ITIFF files. Apparently the problem was incorporated since +3.5.5, presumably during the OJPEG/JPEG work recently. + +<li> libtiff/tif_getimage.c: If DEFAULT_EXTRASAMPLE_AS_ALPHA is 1 +(defined in tiffconf.h - 1 by default) then the RGBA interface +will assume that a fourth extra sample is ASSOCALPHA if the +EXTRASAMPLE value isn't set for it. This changes the behaviour of +the library, but makes it work better with RGBA files produced by +lots of applications that don't mark the alpha values properly. +As per bugs 93 and 65. + +<li> libtiff/tif_jpeg.c: allow jpeg data stream sampling values to +override those from tiff directory. This makes this work with +ImageGear generated files. + +</UL> + +<P><HR WIDTH=65% ALIGN=left> + +<!--------------------------------------------------------------------------> + +<A NAME="tools"><B><FONT SIZE=+3>C</FONT>HANGES IN THE TOOLS:</B></A> + +<UL> + +<li> <a href=./man/tiff2ps.1.html>tiff2ps</a>: Added page size setting +when creating PS Level 2. + +<li> <a href=./man/tiff2ps.1.html>tiff2ps</a>: Fixed PS comment emitted when +FlateDecode is being used. + +<li> <a href=./man/tiffsplit.1.html>tiffsplit</a>: increased the maximum +number of pages that can be split. + +<li> <a href=./man/raw2tiff.1.html>raw2tiff</a>: Added option `-p' to +explicitly select color space of input image data. + +<li> <a href=./man/tiffmedian.1.html>tiffmedian</a>: Suppiort for large +(> 2GB) images. + +<li> <a href=./man/ppm2tiff.1.html>ppm2tiff</a>: Fixed possible endless loop. + +<li> <a href=./man/tiff2rgba.1.html>tiff2rgba</a>: Switched to use +<A HREF="./man/TIFFReadRGBAImage.3t.html">TIFFReadRGBAImageOriented()</A> +instead of <A HREF="./man/TIFFReadRGBAImage.3t.html">TIFFReadRGBAImage()</A>. + +<li> <a href=./man/tiffcmp.1.html>tiffcmp</a>: Fixed problem with unused data +comparing (bug 349). `-z' option now can be used to set the number of reported +different bytes. + +<li> <a href=./man/tiffcp.1.html>tiffcp</a>: Added possibility to specify +value -1 to -r option to get the entire image as one strip (bug 343). + +<li> <a href=./man/tiffcp.1.html>tiffcp</a>: Set the correct RowsPerStrip +and PageNumber values (bug 343). + +<li> <a href=./man/fax2tiff.1.html>fax2tiff</a>: Page numbering fixed (bug +341). + +<li> <a href=./man/ppm2tiff.1.html>ppm2tiff</a>: PPM header parser improved: +now able to skip comments. + +<li> <a href=./man/tiff2ps.1.html>tiff2ps</a>: Force deadzone printing when +EPS output specified (bug 325). + +<li> <a href=./man/tiff2ps.1.html>tiff2ps</a>: Add ability to generate +PS Level 3. It basically allows one to use the /flateDecode filter for ZIP +compressed TIFF images. Patch supplied by Tom Kacvinsky (bug 328). + +<li> <a href=./man/tiffcp.1.html>tiffcp</a>: Fixed problem with colorspace +conversion for JPEG encoded images (bugs 23 and 275) + +<li> <a href=./man/fax2tiff.1.html>fax2tiff</a>: Applied patch from +Julien Gaulmin. More switches for fax2tiff tool for better control +of input and output (bugs 272 and 293). + +<li> <a href=./man/raw2tiff.1.html>raw2tiff</a>: +New utility for turning raw raster images into TIFF files +written by Andrey Kiselev. + +<li> <a href=./man/tiff2ps.1.html>tiff2ps</a>: +Sebastian Eken provided patches (bug 200) to add new these new +switches: + <ul> + <li> <b>-b #</b>: for a bottom margin of # inches + <li> <b>-c</b>: center image + <li> <b>-l #</b>: for a left margin of # inches + <li> <b>-r</b>: rotate the image by 180 degrees + </ul> + +Also, new features merged with code for shrinking/overlapping. + +<li> <a href=./man/tiff2ps.1.html>tiff2ps</a>: Don't emit BeginData/EndData +DSC comments since we are unable to properly include the amount to skip +as per bug 80. + +<li> <a href=./man/tiff2ps.1.html>tiff2ps</a>: Added workaround for some +software that may crash when last strip of image contains fewer number +of scanlines than specified by the `/Height' variable as per bug 164. + +<li> <a href=./man/tiff2ps.1.html>tiff2ps</a>: Patch from John Williams to add new +functionality for tiff2ps utility splitting long images in several pages as +per bug 142. New switches: + <ul> + <li> <b>-H #</b>: split image if height is more than # inches + <li> <b>-L #</b>: overLap split images by # inches + </ul> + +<li> <a href=./man/tiff2ps.1.html>tiff2ps</a>: New commandline +switches to override resolution units obtained from the input file per bug 131: + <ul> + <li> <b>-x</b>: override resolution units as centimeters + <li> <b>-y</b>: override resolution units as inches + </ul> + +<li> <a href=./man/fax2tiff.1.html>fax2tiff</a>: Updated to reflect +latest changes in libtiff per bug 125. + +<li> tiff2ps: Division by zero fixed as per bug 88. + +<li> <a href=./man/tiffcp.1.html>tiffcp<a>: +Added support for 'Orientation' tag. + +<li> <a href=./man/tiffdump.1.html>tiffdump</a>: +include TIFFTAG_JPEGTABLES in tag list. + +<li> tiffset: fix bug in error reporting. + +</UL> + +<P><HR WIDTH=65% ALIGN=left> + +<!---------------------------------------------------------------------------> + +<A NAME="contrib"><B><FONT SIZE=+3>C</FONT>HANGES IN THE CONTRIB AREA:</B></A> +<UL> + +<li> Fixed distribution to include contrib/addtiffo/tif_ovrcache.{c,h}. +<li> libtiff/contrib/win95: renamed to contrib/win_dib. Added new +Tiffile.cpp example of converting TIFF files into a DIB on Win32 as per +bug 143. + +</UL> + +<!---------------------------------------------------------------------------> + +<A NAME="lzwkit"><B><FONT SIZE=+3>C</FONT>HANGES IN THE LZW COMPRESSION +KIT:</B></A> +<UL> + +<li> LZW compression kit synchronized with actual libtiff version. + +</UL> + +<A HREF="index.html"><IMG SRC="images/back.gif"></A> TIFF home page.<BR> + +<HR> + +Last updated $Date: 2003-10-04 11:38:17 $. + +</BODY> +</HTML> |