KImgIO
g3r.cpp
Go to the documentation of this file.00001
00002
00003 #include "config.h"
00004
00005 #ifdef HAVE_LIBTIFF
00006
00007 #include <tiffio.h>
00008
00009 #include <qimage.h>
00010 #include <qfile.h>
00011
00012 #include "g3r.h"
00013
00014 KDE_EXPORT void kimgio_g3_read( QImageIO *io )
00015 {
00016
00017 TIFF *tiff = TIFFOpen(QFile::encodeName(io->fileName()), "r");
00018 if (!tiff)
00019 return;
00020
00021 uint32 width, height;
00022 tsize_t scanlength;
00023
00024 if( TIFFGetField( tiff, TIFFTAG_IMAGEWIDTH, &width ) != 1
00025 || TIFFGetField( tiff, TIFFTAG_IMAGELENGTH, &height ) != 1 )
00026 return;
00027 scanlength = TIFFScanlineSize(tiff);
00028
00029 QImage image(width, height, 1, 0, QImage::BigEndian);
00030
00031 if (image.isNull() || scanlength != image.bytesPerLine())
00032 {
00033 TIFFClose(tiff);
00034 return;
00035 }
00036
00037 for (uint32 y=0; y < height; y++)
00038 TIFFReadScanline(tiff, image.scanLine(y), y);
00039
00040 TIFFClose(tiff);
00041
00042 io->setImage(image);
00043 io->setStatus(0);
00044 }
00045
00046
00047 KDE_EXPORT void kimgio_g3_write(QImageIO *)
00048 {
00049
00050 }
00051
00052
00053 #endif