summaryrefslogtreecommitdiffstats
path: root/kfile-plugins/tiff/kfile_tiff.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'kfile-plugins/tiff/kfile_tiff.cpp')
-rw-r--r--kfile-plugins/tiff/kfile_tiff.cpp299
1 files changed, 0 insertions, 299 deletions
diff --git a/kfile-plugins/tiff/kfile_tiff.cpp b/kfile-plugins/tiff/kfile_tiff.cpp
deleted file mode 100644
index ce55e5b3..00000000
--- a/kfile-plugins/tiff/kfile_tiff.cpp
+++ /dev/null
@@ -1,299 +0,0 @@
-/* This file is part of the KDE project
- * Copyright (C) 2002 Nadeem Hasan <[email protected]>
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public
- * License as published by the Free Software Foundation version 2.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; see the file COPYING. If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- *
- */
-
-#include "kfile_tiff.h"
-
-#include <kgenericfactory.h>
-#include <kdebug.h>
-
-#include <tqstringlist.h>
-#include <tqfile.h>
-#include <tqdatetime.h>
-#include <tqregexp.h>
-
-#include <tiff.h>
-#include <tiffio.h>
-
-typedef KGenericFactory<KTiffPlugin> TiffFactory;
-
-K_EXPORT_COMPONENT_FACTORY(kfile_tiff, TiffFactory("kfile_tiff"))
-
-KTiffPlugin::KTiffPlugin(TQObject *parent, const char *name,
- const TQStringList &args) : KFilePlugin(parent, name, args)
-{
- kdDebug(7034) << "TIFF file meta info plugin" << endl;
- KFileMimeTypeInfo* info = addMimeTypeInfo( "image/tiff" );
-
- KFileMimeTypeInfo::GroupInfo* group =
- addGroupInfo(info, "General", i18n("General"));
-
- KFileMimeTypeInfo::ItemInfo* item;
- item = addItemInfo(group, "Description", i18n("Description"),
- TQVariant::String);
- setHint(item, KFileMimeTypeInfo::Description);
- item = addItemInfo(group, "Copyright", i18n("Copyright"),
- TQVariant::String);
- item = addItemInfo(group, "ColorMode", i18n("Color Mode"),
- TQVariant::String);
- item = addItemInfo(group, "Dimensions", i18n("Dimensions"),
- TQVariant::Size);
- setHint(item, KFileMimeTypeInfo::Size);
- setUnit(item, KFileMimeTypeInfo::Pixels);
- item = addItemInfo(group, "Resolution", i18n("Resolution"),
- TQVariant::Size);
- setUnit(item, KFileMimeTypeInfo::DotsPerInch);
- item = addItemInfo(group, "BitDepth", i18n("Bit Depth"),
- TQVariant::Int);
- setUnit(item, KFileMimeTypeInfo::BitsPerPixel);
- item = addItemInfo(group, "Compression", i18n("Compression"),
- TQVariant::String);
- item = addItemInfo(group, "Software", i18n("Software"),
- TQVariant::String);
- item = addItemInfo(group, "DateTime", i18n("Date/Time"),
- TQVariant::DateTime);
- item = addItemInfo(group, "Artist", i18n("Artist"),
- TQVariant::String);
- setHint(item, KFileMimeTypeInfo::Author);
- item = addItemInfo(group, "FaxPages", i18n("Fax Pages"),
- TQVariant::Int);
-
- group = addGroupInfo(info, "Scanner", i18n("Scanner"));
-
- item = addItemInfo(group, "Make", i18n("Make"), TQVariant::String);
- item = addItemInfo(group, "Model", i18n("Model"), TQVariant::String);
-
- m_colorMode.setAutoDelete(true);
- m_imageCompression.setAutoDelete(true);
-
- m_colorMode.insert(PHOTOMETRIC_MINISWHITE,
- new TQString(I18N_NOOP("Monochrome")));
- m_colorMode.insert(PHOTOMETRIC_MINISBLACK,
- new TQString(I18N_NOOP("Monochrome")));
- m_colorMode.insert(PHOTOMETRIC_RGB,
- new TQString(I18N_NOOP("RGB")));
- m_colorMode.insert(PHOTOMETRIC_PALETTE,
- new TQString(I18N_NOOP("Palette color")));
- m_colorMode.insert(PHOTOMETRIC_MASK,
- new TQString(I18N_NOOP("Transparency mask")));
- m_colorMode.insert(PHOTOMETRIC_SEPARATED,
- new TQString(I18N_NOOP("Color separations")));
- m_colorMode.insert(PHOTOMETRIC_YCBCR,
- new TQString(I18N_NOOP("YCbCr")));
- m_colorMode.insert(PHOTOMETRIC_CIELAB,
- new TQString(I18N_NOOP("CIE Lab")));
-#ifdef PHOTOMETRIC_ITULAB
- m_colorMode.insert(PHOTOMETRIC_ITULAB,
- new TQString(I18N_NOOP("ITU Lab")));
-#endif
- m_colorMode.insert(PHOTOMETRIC_LOGL,
- new TQString(I18N_NOOP("LOGL")));
- m_colorMode.insert(PHOTOMETRIC_LOGLUV,
- new TQString(I18N_NOOP("LOGLUV")));
-
- m_imageCompression.insert(COMPRESSION_NONE,
- new TQString(I18N_NOOP("None")));
- m_imageCompression.insert(COMPRESSION_CCITTRLE,
- new TQString(I18N_NOOP("RLE")));
- m_imageCompression.insert(COMPRESSION_CCITTFAX3,
- new TQString(I18N_NOOP("G3 Fax")));
- m_imageCompression.insert(COMPRESSION_CCITTFAX4,
- new TQString(I18N_NOOP("G4 Fax")));
- m_imageCompression.insert(COMPRESSION_LZW,
- new TQString(I18N_NOOP("LZW")));
- m_imageCompression.insert(COMPRESSION_OJPEG,
- new TQString(I18N_NOOP("JPEG")));
- m_imageCompression.insert(COMPRESSION_JPEG,
- new TQString(I18N_NOOP("JPEG DCT")));
-#ifdef COMPRESSION_ADOBE_DEFLATE
- m_imageCompression.insert(COMPRESSION_ADOBE_DEFLATE,
- new TQString(I18N_NOOP("Adobe Deflate")));
-#endif
- m_imageCompression.insert(COMPRESSION_NEXT,
- new TQString(I18N_NOOP("NeXT 2-bit RLE")));
- m_imageCompression.insert(COMPRESSION_CCITTRLEW,
- new TQString(I18N_NOOP("RLE Word")));
- m_imageCompression.insert(COMPRESSION_PACKBITS,
- new TQString(I18N_NOOP("Packbits")));
- m_imageCompression.insert(COMPRESSION_THUNDERSCAN,
- new TQString(I18N_NOOP("Thunderscan RLE")));
- m_imageCompression.insert(COMPRESSION_IT8CTPAD,
- new TQString(I18N_NOOP("IT8 CT w/padding")));
- m_imageCompression.insert(COMPRESSION_IT8LW,
- new TQString(I18N_NOOP("IT8 linework RLE")));
- m_imageCompression.insert(COMPRESSION_IT8MP,
- new TQString(I18N_NOOP("IT8 monochrome")));
- m_imageCompression.insert(COMPRESSION_IT8BL,
- new TQString(I18N_NOOP("IT8 binary lineart")));
- m_imageCompression.insert(COMPRESSION_PIXARFILM,
- new TQString(I18N_NOOP("Pixar 10-bit LZW")));
- m_imageCompression.insert(COMPRESSION_PIXARLOG,
- new TQString(I18N_NOOP("Pixar 11-bit ZIP")));
- m_imageCompression.insert(COMPRESSION_DEFLATE,
- new TQString(I18N_NOOP("Pixar deflate")));
- m_imageCompression.insert(COMPRESSION_DCS,
- new TQString(I18N_NOOP("Kodak DCS")));
- m_imageCompression.insert(COMPRESSION_JBIG,
- new TQString(I18N_NOOP("ISO JBIG")));
- m_imageCompression.insert(COMPRESSION_SGILOG,
- new TQString(I18N_NOOP("SGI log luminance RLE")));
- m_imageCompression.insert(COMPRESSION_SGILOG24,
- new TQString(I18N_NOOP("SGI log 24-bit packed")));
-}
-
-TQDateTime KTiffPlugin::tiffDate(const TQString& s) const
-{
- TQDateTime dt;
- TQRegExp rxDate("^([0-9]{4}):([0-9]{2}):([0-9]{2})\\s"
- "([0-9]{2}):([0-9]{2}):([0-9]{2})$");
-
- if (rxDate.search(s) != -1)
- {
- int year = rxDate.cap(1).toInt();
- int month = rxDate.cap(2).toInt();
- int day = rxDate.cap(3).toInt();
- int hour = rxDate.cap(4).toInt();
- int min = rxDate.cap(5).toInt();
- int sec = rxDate.cap(6).toInt();
-
- TQDate d = TQDate(year, month, day);
- TQTime t = TQTime(hour, min, sec);
-
- if (d.isValid() && t.isValid())
- {
- dt.setDate(d);
- dt.setTime(t);
- }
- }
-
- return dt;
-}
-
-bool KTiffPlugin::readInfo(KFileMetaInfo& info, uint)
-{
- TIFF *tiff = TIFFOpen(TQFile::encodeName(info.path()), "r");
- if (!tiff)
- return false;
-
- uint32 imageLength=0, imageWidth=0;
- uint16 bitsPerSample=0, imageCompression=0, colorMode=0, samplesPerPixel=0,
- imageAlpha=0, imageResUnit=0, dummy=0, faxPages=0;
- float imageXResolution=0, imageYResolution=0;
- char *description=0, *copyright=0, *software=0, *datetime=0, *artist=0,
- *scannerMake=0, *scannerModel=0;
-
- TIFFGetField(tiff, TIFFTAG_IMAGELENGTH, &imageLength);
- TIFFGetField(tiff, TIFFTAG_IMAGEWIDTH, &imageWidth);
- TIFFGetFieldDefaulted(tiff, TIFFTAG_BITSPERSAMPLE, &bitsPerSample);
- TIFFGetFieldDefaulted(tiff, TIFFTAG_SAMPLESPERPIXEL, &samplesPerPixel);
- TIFFGetField(tiff, TIFFTAG_PHOTOMETRIC, &colorMode);
- TIFFGetFieldDefaulted(tiff, TIFFTAG_COMPRESSION, &imageCompression);
- TIFFGetField(tiff, TIFFTAG_MATTEING, &imageAlpha);
- TIFFGetField(tiff, TIFFTAG_XRESOLUTION, &imageXResolution);
- TIFFGetField(tiff, TIFFTAG_YRESOLUTION, &imageYResolution);
- TIFFGetFieldDefaulted(tiff, TIFFTAG_RESOLUTIONUNIT, &imageResUnit);
- TIFFGetField(tiff, TIFFTAG_IMAGEDESCRIPTION, &description);
- TIFFGetField(tiff, TIFFTAG_SOFTWARE, &software);
- TIFFGetField(tiff, TIFFTAG_COPYRIGHT, &copyright);
- TIFFGetField(tiff, TIFFTAG_DATETIME, &datetime);
- TIFFGetField(tiff, TIFFTAG_ARTIST, &artist);
- TIFFGetField(tiff, TIFFTAG_PAGENUMBER, &dummy, &faxPages);
- TIFFGetField(tiff, TIFFTAG_MAKE, &scannerMake);
- TIFFGetField(tiff, TIFFTAG_MODEL, &scannerModel);
-
- kdDebug(7034) << "Description: " << description << endl;
- kdDebug(7034) << "Width: " << imageWidth << endl;
- kdDebug(7034) << "Height: " << imageLength << endl;
- kdDebug(7034) << "BitDepth: " << bitsPerSample << endl;
- kdDebug(7034) << "ColorMode: " << colorMode << endl;
- kdDebug(7034) << "Compression: " << imageCompression << endl;
- kdDebug(7034) << "SamplesPerPixel: " << samplesPerPixel << endl;
- kdDebug(7034) << "ImageAlpha: " << imageAlpha << endl;
- kdDebug(7034) << "XResolution: " << imageXResolution << endl;
- kdDebug(7034) << "YResolution: " << imageYResolution << endl;
- kdDebug(7034) << "ResolutionUnit: " << imageResUnit << endl;
- kdDebug(7034) << "FaxPages: " << faxPages << endl;
- kdDebug(7034) << "DateTime: " << datetime << endl;
- kdDebug(7034) << "Copyright: " << copyright << endl;
- kdDebug(7034) << "Software: " << software << endl;
- kdDebug(7034) << "Artist: " << artist << endl;
- kdDebug(7034) << "Make: " << scannerMake << endl;
- kdDebug(7034) << "Model: " << scannerModel << endl;
-
- if (imageResUnit == RESUNIT_CENTIMETER)
- {
- imageXResolution *= 2.54;
- imageYResolution *= 2.54;
- }
- else if (imageResUnit == RESUNIT_NONE)
- {
- imageXResolution = 0;
- imageYResolution = 0;
- }
-
- int imageBpp = bitsPerSample*samplesPerPixel;
- if (imageAlpha && colorMode==PHOTOMETRIC_RGB)
- m_colorMode.replace(PHOTOMETRIC_RGB, new TQString(I18N_NOOP("RGBA")));
-
- KFileMetaInfoGroup group = appendGroup(info, "General");
- if (description)
- appendItem(group, "Description", TQString(description));
- appendItem(group, "Dimensions", TQSize(imageWidth, imageLength));
- appendItem(group, "BitDepth", imageBpp);
- if (imageXResolution>0 && imageYResolution>0)
- appendItem(group, "Resolution", TQSize(
- static_cast<int>(imageXResolution),
- static_cast<int>(imageYResolution)));
- if (m_colorMode[colorMode])
- appendItem(group, "ColorMode", *m_colorMode[colorMode]);
- if (m_imageCompression[imageCompression])
- appendItem(group, "Compression", *m_imageCompression[imageCompression]);
- if (datetime)
- {
- TQDateTime dt = tiffDate(TQString(datetime));
- if (dt.isValid())
- appendItem(group, "DateTime", dt);
- }
- if (copyright)
- appendItem(group, "Copyright", TQString(copyright));
- if (software)
- appendItem(group, "Software", TQString(software));
- if (artist)
- appendItem(group, "Artist", TQString(artist));
-
- if (faxPages>0 && (imageCompression==COMPRESSION_CCITTFAX3 ||
- imageCompression==COMPRESSION_CCITTFAX4))
- {
- appendItem(group, "FaxPages", faxPages);
- }
-
- if (scannerMake || scannerModel)
- {
- group = appendGroup(info, "Scanner");
- if (scannerMake)
- appendItem(group, "Make", TQString(scannerMake));
- if (scannerModel)
- appendItem(group, "Model", TQString(scannerModel));
- }
-
- TIFFClose(tiff);
-
- return true;
-}
-
-#include "kfile_tiff.moc"