TonicTones
|
00001 // OpenExrLoader.h 00002 // 00003 // Copyright 2010 Jérémy Laumon <jeremy.laumon@gmail.com> 00004 // 00005 // This program is free software; you can redistribute it and/or modify 00006 // it under the terms of the GNU General Public License as published by 00007 // the Free Software Foundation; either version 2 of the License, or 00008 // (at your option) any later version. 00009 // 00010 // This program is distributed in the hope that it will be useful, 00011 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00013 // GNU General Public License for more details. 00014 // 00015 // You should have received a copy of the GNU General Public License 00016 // along with this program; if not, write to the Free Software 00017 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 00018 // MA 02110-1301, USA. 00019 00020 #ifndef OPENEXRLOADER_H 00021 #define OPENEXRLAODER_H 00022 00023 #include <QtGui> 00024 #include <ImageLoader.h> 00025 #include <ImfRgbaFile.h> 00026 00027 class OpenExrLoader : public ImageLoader 00028 { 00029 public: 00030 OpenExrLoader(); 00031 00032 virtual void setFileName(const QString& fileName); 00033 virtual bool openFile(); 00034 virtual QSize getSize(); 00035 virtual Color* getData(); 00036 virtual HdrImage::ColorSpace getColorSpace(); 00037 virtual QString name() const; 00038 00039 private: 00040 Imf::RgbaInputFile* file; 00041 QString fileName; 00042 int width; 00043 int height; 00044 Imath::Box2i dw; 00045 }; 00046 00047 class OpenExrLoaderFactory : public QObject, public ImageLoaderFactory 00048 { 00049 Q_OBJECT 00050 Q_INTERFACES(ImageLoaderFactory) 00051 00052 public: 00053 virtual QStringList extensions() const; 00054 virtual ImageLoaderPtr createLoader(const QString& fileName) const; 00055 }; 00056 00057 #endif