• Main Page
  • Classes
  • Files
  • File List
  • File Members

quillimagefilter.h

Go to the documentation of this file.
00001 /****************************************************************************
00002 **
00003 ** Copyright (C) 2009-10 Nokia Corporation and/or its subsidiary(-ies).
00004 ** Contact: Alexander Bokovoy <alexander.bokovoy@nokia.com>
00005 **
00006 ** This file is part of the Quill Image Filters package.
00007 **
00008 ** Commercial Usage
00009 ** Licensees holding valid Qt Commercial licenses may use this file in
00010 ** accordance with the Qt Commercial License Agreement provided with the
00011 ** Software or, alternatively, in accordance with the terms contained in
00012 ** a written agreement between you and Nokia.
00013 **
00014 ** GNU Lesser General Public License Usage
00015 ** Alternatively, this file may be used under the terms of the GNU Lesser
00016 ** General Public License version 2.1 as published by the Free Software
00017 ** Foundation and appearing in the file LICENSE.LGPL included in the
00018 ** packaging of this file.  Please review the following information to
00019 ** ensure the GNU Lesser General Public License version 2.1 requirements
00020 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
00021 **
00022 ** In addition, as a special exception, Nokia gives you certain
00023 ** additional rights. These rights are described in the Nokia Qt LGPL
00024 ** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
00025 ** package.
00026 **
00027 ** GNU General Public License Usage
00028 ** Alternatively, this file may be used under the terms of the GNU
00029 ** General Public License version 3.0 as published by the Free Software
00030 ** Foundation and appearing in the file LICENSE.GPL included in the
00031 ** packaging of this file.  Please review the following information to
00032 ** ensure the GNU General Public License version 3.0 requirements will be
00033 ** met: http://www.gnu.org/copyleft/gpl.html.
00034 **
00035 ** If you are unsure which license is appropriate for your use, please
00036 ** contact the sales department at qt-sales@nokia.com.
00037 **
00038 ****************************************************************************/
00039 
00081 #ifndef __QUILL_IMAGE_FILTER_GENERIC_H__
00082 #define __QUILL_IMAGE_FILTER_GENERIC_H__
00083 
00084 #include <QVariant>
00085 #include <QLatin1String>
00086 #include <QStringList>
00087 
00088 #include "quillimage.h"
00089 
00090 class QIODevice;
00091 class QuillImageFilterInterface;
00092 class QuillImageFilterImplementation;
00093 class QuillImageFilterPrivate;
00094 
00095 class QuillImageFilter
00096 {
00097 public:
00098     typedef QString QuillFilterOption;
00099 
00100     static const QLatin1String FileName;
00101     static const QLatin1String FileFormat;
00102     static const QLatin1String Timestamp;
00103 
00104     static const QLatin1String Name_AutoContrast;
00105     static const QLatin1String Name_BrightnessContrast;
00106     static const QLatin1String Name_Crop;
00107     static const QLatin1String Name_Load;
00108     static const QLatin1String Name_Overlay;
00109     static const QLatin1String Name_Save;
00110     static const QLatin1String Name_ScaleCrop;
00111     static const QLatin1String Name_Flip;
00112     static const QLatin1String Name_FreeRotate;
00113     static const QLatin1String Name_Gaussian;
00114     static const QLatin1String Name_Lanczos;
00115     static const QLatin1String Name_Levels;
00116     static const QLatin1String Name_AutoLevels;
00117     static const QLatin1String Name_RedEyeReduction;
00118     static const QLatin1String Name_RedEyeDetection;
00119     static const QLatin1String Name_Rotate;
00120     static const QLatin1String Name_Scale;
00121 
00122     static const QLatin1String Name_AutoContrast_deprecated;
00123     static const QLatin1String Name_BrightnessContrast_deprecated;
00124     static const QLatin1String Name_Crop_deprecated;
00125     static const QLatin1String Name_Load_deprecated;
00126     static const QLatin1String Name_Overlay_deprecated;
00127     static const QLatin1String Name_Save_deprecated;
00128     static const QLatin1String Name_ScaleCrop_deprecated;
00129     static const QLatin1String Name_Flip_deprecated;
00130     static const QLatin1String Name_FreeRotate_deprecated;
00131     static const QLatin1String Name_Gaussian_deprecated;
00132     static const QLatin1String Name_Lanczos_deprecated;
00133     static const QLatin1String Name_Levels_deprecated;
00134     static const QLatin1String Name_AutoLevels_deprecated;
00135     static const QLatin1String Name_RedEyeReduction_deprecated;
00136     static const QLatin1String Name_RedEyeDetection_deprecated;
00137     static const QLatin1String Name_Rotate_deprecated;
00138     static const QLatin1String Name_Scale_deprecated;
00139 
00140 
00144     static const QLatin1String DisableUndo;
00148     static const QLatin1String DisablePreview;
00152     static const QLatin1String SizeAfter;
00157     static const QLatin1String Brightness;
00162     static const QLatin1String Contrast;
00166     static const QLatin1String Red;
00170     static const QLatin1String Green;
00174     static const QLatin1String Blue;
00178     static const QLatin1String RedMax;
00182     static const QLatin1String GreenMax;
00186     static const QLatin1String BlueMax;
00190     static const QLatin1String Angle;
00194     static const QLatin1String CropRectangle;
00198     static const QLatin1String Center;
00202     static const QLatin1String Radius;
00206     static const QLatin1String Horizontal;
00210     static const QLatin1String Background;
00214     static const QLatin1String TileCount;
00218     static const QLatin1String SelectionArea;
00222     static const QLatin1String RawExifData;
00226     static const QLatin1String MimeType;
00230     static const QLatin1String BackgroundColor;
00234     static const QLatin1String IgnoreExifOrientation;
00235 
00236 
00237     enum QuillFilterRole {
00245         Role_Undefined = 0,
00249         Role_Load,
00253         Role_Save,
00257         Role_Overlay,
00261         Role_PreviewScale
00262     };
00263 
00264     enum ImageFilterError{
00265         UnspecifiedError = -1,
00266         NoError = 0,
00267         FileNotFoundError,
00268         UnsupportedFormatError,
00269         InvalidDataError,
00270         FileCanNotOpenError,
00271         CanceledError
00272     };
00273 
00274 public:
00275 
00280     QuillImageFilter();
00281 
00288     QuillImageFilter(const QString &name);
00289 
00296     QuillImageFilter(QuillFilterRole role);
00297 
00302     virtual ~QuillImageFilter();
00303 
00308     bool isValid();
00309 
00317     QVariant option(const QString &filterOption) const;
00318 
00326     bool setOption(const QString &filterOption, const QVariant &value);
00327 
00334     bool supportsOption(const QString &filterOption) const;
00335 
00340     const QStringList supportedOptions() const;
00341 
00346     virtual QuillImage apply(const QuillImage &image) const;
00347 
00353     QSize newFullImageSize(const QSize &fullImageSize) const;
00354 
00360     QRect newArea(const QSize &fullImageSize, const QRect &area) const;
00361 
00365     const QString name() const;
00366 
00374     QuillFilterRole role() const;
00375 
00379     QIODevice* iODevice() const;
00380 
00387     void setIODevice(QIODevice* iODevice);
00388 
00400     void cancel();
00401 
00404     QuillImageFilter::ImageFilterError error() const;
00405 
00406  protected:
00407     QuillImageFilterImplementation *handler() const;
00408 
00409     void setHandler(QuillImageFilterImplementation *handler);
00410 
00411     void setValid(bool valid);
00412 
00413  private:
00414     QuillImageFilterPrivate *priv;
00415 };
00416 
00417 
00418 #endif // __QUILL_IMAGE_FILTER_GENERIC_H__

Generated on Wed Jun 1 2011 13:17:23 for quillimagefilter by  doxygen 1.7.1