TiffIO 1.0.6
mail: Jean-Dominique <dot> Gascuel <at> imag.fr
TiffIO is a plugin that add TIFF images read/write capabilities to the Qt's
QImage class. Adding the generated plugin in the Qt's tree enable any Qt
application to manipulate TIFF images.
TiffIO come with a self-test
suite, and have been compiled and used successfully on a variety of
windows and unixes platforms.
All TIFF operations are based on libtiff 3.7.1, this plugin is just a wrapper
that enable to use it transparently from the QImage class, and the
QImageFormatPlugin architecture defined by Qt.
Current support for reading .tif into a QImage :
-
Images created on any architecture (big endians or little endians)
-
Uncompressed, or compressed images (mainly lossless LZW and ZIP, FaxG4, etc.).
-
Various color schemes (RGB, RGBA, LAB, LUV, CYMK, CIEXY, ...)
-
8 and 16 bits per components RGB and RGBA images (automatically rounded to 8
bits images, as required by Qt).
-
8 bits per components for the other true color schemes.
-
Bitmap (1-bit images), loaded as a QImage bitmap (depth=1), with a colortable.
-
Gray level images from 1 to 16 bits (always loaded as 8 bits images, with a
allGray() linear color table).
-
Paletted images with up to 256 RGB colors (defined with up to 16bits
per components, and truncated to 8 bits because of Qt).
-
Accepts multi-layered images (eg. from Photoshop).
-
Maximum image size from Qt and libtiff : 64k*64k ?
Current support for writting a QImage :
-
Always use LZW compression and big endians architecture.
-
Bitmaps (depth=1) as one-chanel TIFF, with BPS= 1, and either MINISBLACK or
MINISBLACK mode.
-
Gray images (depth= 8 bit/pixel) are one-chanel TIFF, in MINISBLACK mode.
-
Other 1 or 8 bit/pixel images are saved as PALETTE images, with up to 256 RGB
colors.
-
True color images (24 or 32 bit/pixels) are saved as 3x8 bits RGB images.
What is not supported at the time :
-
JPEG compression on WIN32 (I have to figure out how to use 3rdparty/jpeg in the
Qt architecture).
-
Transparency (alpha channel), except for reading 4 channels images.
Status
I am using TiffIO on Win32/Qt 3.2.3, ``every days'', and I am not aware of any
bugs. The self-test suite (just compile and execute the test.pro project)
enable a quick checking of the plugin consistency for a given platform.
The plugin have beed tested on Solaris, Irix, Tru64, AIX, Linux, HP-UX, and
Windows XP (SP1 & SP2).
I you find some bugs, send e-mails to Jean-Dominique.Gascuel at imag.fr.
History
-
2004-11-08 : Creation
-
2004-11-22 / 1.0.2:
-
FIX a minor bug about the regexp to recognize TIFF formats.
-
2004-12-17 / 1.0.3:
-
FIX
Add "TIFF" as recognized format (as well as TIF).
-
FIX RGBA/ABGR color inversion on win32 platforms.
-
2005-01-14 / 1.0.4:
-
Upgrade to libtiff 3.7.1, because of security alert.
-
FIX
libtiff 3.7.1 not to crash when displaying warnings or error messages.
-
FIX libtiff 3.7.1 to have readable error message when reading
unsupported pixel formats (eg. CYMK 16 bits).
-
2005-02-01 / 1.0.5:
-
NEW
self-test program and examples files.
-
FIX compiler issues on HU-UX and AIX, thanks to Till Oliver Knoll.
-
2005-03-22 / 1.0.6:
-
NEW Added support (and self-test) for bitmaps i/o, and FaxG4 reading.
Source download
Pre-compiled download
None at that time: because there is too many combination of versions of Qt,
versions of compiler, and systems flavors...
Installation
Pre-requisite : have Qt installed, and the QTDIR environement variable
correctly defined.
- On unix :
-
qmake TiffIO.pro
make
make install
- On MSVC++ .NET :
-
Generate the .vcproj with the IDE Qt icon, or with the command:
qmake -tp vc TiffIO.pro
-
Build the project.
-
Exit any Qt application (including Designer or Assistant), because they lock
the $QTDIR/plugin/imageformats
directory.
-
Copy the plugin (TiffIO.dll) into the $QTDIR/plugins/imageformats/ directory.
Testing
To run the self-test program, use the test.pro and run the generated
executable. It should end saying all the images checked ok. The corresponding
cases are in the Example/ subdirectory.
Files
TiffIO.cpp : The source itself.
License_CeCILL* : The license. The official french GPL.
rules.pri : Include file for qmake, with compilation rules.
TiffIO.pri : Include file for qmake, with all files needed to compile.
TiffIO.pro : The qmake file to generate an optimised plugin.
TiffIO_DBG.pro : The qmake file to generate a debug version of the plugin.
libtiff/* : The LibTIFF-3.7.0/libtiff sources and Copyright.