From ce4a32fe52ef09d8f5ff1dd22c001110902b60a2 Mon Sep 17 00:00:00 2001 From: toma Date: Wed, 25 Nov 2009 17:56:58 +0000 Subject: Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdelibs@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- kimgio/g3r.cpp | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 kimgio/g3r.cpp (limited to 'kimgio/g3r.cpp') diff --git a/kimgio/g3r.cpp b/kimgio/g3r.cpp new file mode 100644 index 000000000..d67aa2da6 --- /dev/null +++ b/kimgio/g3r.cpp @@ -0,0 +1,53 @@ +// This library is distributed under the conditions of the GNU LGPL. + +#include "config.h" + +#ifdef HAVE_LIBTIFF + +#include + +#include +#include + +#include "g3r.h" + +KDE_EXPORT void kimgio_g3_read( QImageIO *io ) +{ + // This won't work if io is not a QFile ! + TIFF *tiff = TIFFOpen(QFile::encodeName(io->fileName()), "r"); + if (!tiff) + return; + + uint32 width, height; + tsize_t scanlength; + + if( TIFFGetField( tiff, TIFFTAG_IMAGEWIDTH, &width ) != 1 + || TIFFGetField( tiff, TIFFTAG_IMAGELENGTH, &height ) != 1 ) + return; + scanlength = TIFFScanlineSize(tiff); + + QImage image(width, height, 1, 0, QImage::BigEndian); + + if (image.isNull() || scanlength != image.bytesPerLine()) + { + TIFFClose(tiff); + return; + } + + for (uint32 y=0; y < height; y++) + TIFFReadScanline(tiff, image.scanLine(y), y); + + TIFFClose(tiff); + + io->setImage(image); + io->setStatus(0); +} + + +KDE_EXPORT void kimgio_g3_write(QImageIO *) +{ + // TODO: stub +} + + +#endif -- cgit v1.2.3