INTRODUCTION
-
The Silicon Graphics Image Format Library (IFL) 1.3.1 provides support
for opening, reading, writing and creating image files in a format
independent manner. IFL 1.3.1 includes support for the TIFF, GIF, PNG,
JFIF(JPEG), SGI, BMP, PBM, PGM, PPM, XPM, XBM, FIT and Raw formats on all
platforms. On IRIX, support for PhotoCD, NITF, USGS DOQ, SGI movie
file, QuickTime, Alias|WaveFront, SOFTIMAGE and YUV file formats is
also included.
-
IFL software consists of a primary library that provides the format
independent interface, and the header files for compiling new software
using these libraries. Documentation consists of online man pages for
all object classes and supporting routines.
CHANGES AND ADDITIONS
-
This chapter lists the changes and additions to the Image Format
Library since the 1.1 release.
New formats added
-
Support for BMP, NITF, XBM, XPM, SGI movie, QuickTime movie and old
style DOQ files has been added.
New file format database generation
-
Modifications to the ifl_database are now affected through the ifldbgen
program. To add new database entries, the new entry should be written
to a separate file, and that file placed in the /usr/lib/ifl/database
directory. Running the /usr/lib/ifl/ifldbgen program will assemble the
new ifl_database, writing it to /usr/lib/ifl/ifl_database. See the IFL
developer manual page for more details.
Freeware libraries broken out
-
In previous versions of IFL on Irix, some of the included freeware
libraries were combined into the IFL library with a symlink from the
freeware library name to the IFL library. With this release of IFL,
these libraries are now stand alone. These libraries include libjpeg.so
and libtiff.so. On WIN32 the freeware libraries are hidden.
GIF support expanded
-
Support animated and transparent GIFs was missing the previous
releases. These features were added in release 1.2.
C API added to Windows version
-
Support for the C API has been added to IFL for Windows. Applications
must link against cifl.lib in addition to ifl.lib when using the C API.
Names of .DLLs and .LIBs changed to protect the innocent
-
This change only applies to IFL for Windows.
Unknown to the IFL engineering team, another product (CosmoWorlds)
has been shipping it's own version of the IFL DLL's which are not
compatible with this official version. To avoid this problem we
have renamed all of the IFL DLLs and LIBS to have a '0' suffix.
These DLLs are in fact binary compatible with the previous official
version without the suffix. In the future, if a binary incompatible
change is made, the suffix will be incremented. If you don't care about
CosmoWorlds and want the bug fixes in this version for a product that
is linked against the older DLL name, just copy the new DLLs over the
version without the suffix. New and re-released programs that use IFL
should be changed to use the new names.
Default install directory changed for IFL for windows
-
The default install directory used to be
"C:/Program Files/Silicon Graphics/Image Format Library/".
This has been changed to "C:/Program Files/Silicon Graphics/IFL 1.3.1/" so that
multiple versions can be concurrently installed.
BUG FIXES
-
This chapter lists the bugs in version 1.1 that have been fixed in
version 1.3.1 of the Image Format Library.
Small setTile request on iflJFIFFile causes program abort
-
Attempting to set a tile that is smaller than the entire image on an
empty JFIF file would result in a JPEG library error.
iflLut::getOrigin and iflLut::getChan return bogus results
-
When requesting the origin or channel for an invalid channel (i.e.,
equal to the number of channels), these functions would return a bogus
value instead of NULL.
YUV documentation did not specify file limitations
-
The iflYUV man page did not specify the required creation method. This
has been added with this release.
iflJFIFFile leaks memory
-
When opening a new JFIF file, the iflJFIFFile object would leak memory.
No init if iflLut::setDomain with min==max
-
When calling iflLut::setDomain with min == max, the scale and bias
values were not initialized. This could cause problems for single bit
palette images.
Colormap generated in correct format for TIFF files
-
In previous versions the colormap could be written to a TIFF file in an
incorrect format (not scaled to the full 16-bit range expected). This
is now fixed and a warning will be issued when reading files with
colormaps in the wrong format.
Cannot read FIT files > 4.2GB
-
Prior to version 1.2 the FIT file reader could not read files >
4.2GB (32 bit limitation). This limitation is no longer present in this
release.
GIF support expanded
-
Support for animated and transparent GIFs was missing prior to release
1.2. These features are included in this release.
iflRaw does not recognize non-integral range
-
iflRaw did not recognize non-integral range when specified in the file
name.
iflTIFF complains about unknown tags
-
When an unknown tag was encountered, iflTIFF would produce a rather
annoying warning message. This feature has been removed.
iflRaw files dataOffset member not initialized
-
When an iflRaw file was created, the dataOffset member was not
initialized. This could cause the writes to the file at random offsets.
All calls to exit() were replaced with calls to iflError()
-
There were a few places in the library where exit() was called
directly. These have been replaced by calls to iflError. The only calls
to exit() that remain are in the supplied (and overrideable) iflError
handlers.
PPM format could not handle getPage on a newly created file
-
This problem has been corrected.
The YUV format didn't allow creating all formats
-
The createFile method now chooses the default format based on the image
size.
KNOWN PROBLEMS AND WORKAROUNDS
-
This chapter lists the known problems in version 1.3.1 of the Image
Format Library and, where known, ways to work around them.
Output to an image file in SGI format
-
Output to an image file in Silicon Graphics' classic .rgb
format does not support arbitrary min and max values set. Use TIFF
format if you wish to set arbitrary min and max pixel values.