filters
kis_jpeg_converter.h00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef _KIS_JPEG_CONVERTER_H_
00021 #define _KIS_JPEG_CONVERTER_H_
00022
00023 #include <stdio.h>
00024
00025 extern "C" {
00026 #include <jpeglib.h>
00027 }
00028
00029 #include <qvaluevector.h>
00030
00031 #include <kio/job.h>
00032
00033 #include <kis_progress_subject.h>
00034
00035 #include "kis_types.h"
00036 #include "kis_global.h"
00037 #include "kis_annotation.h"
00038 class KisDoc;
00039 class KisUndoAdapter;
00040 class KisExifInfo;
00041
00045 enum KisImageBuilder_Result {
00046 KisImageBuilder_RESULT_FAILURE = -400,
00047 KisImageBuilder_RESULT_NOT_EXIST = -300,
00048 KisImageBuilder_RESULT_NOT_LOCAL = -200,
00049 KisImageBuilder_RESULT_BAD_FETCH = -100,
00050 KisImageBuilder_RESULT_INVALID_ARG = -50,
00051 KisImageBuilder_RESULT_OK = 0,
00052 KisImageBuilder_RESULT_PROGRESS = 1,
00053 KisImageBuilder_RESULT_EMPTY = 100,
00054 KisImageBuilder_RESULT_BUSY = 150,
00055 KisImageBuilder_RESULT_NO_URI = 200,
00056 KisImageBuilder_RESULT_UNSUPPORTED = 300,
00057 KisImageBuilder_RESULT_INTR = 400,
00058 KisImageBuilder_RESULT_PATH = 500,
00059 KisImageBuilder_RESULT_UNSUPPORTED_COLORSPACE = 600
00060 };
00061
00062 struct KisJPEGOptions {
00063 int quality;
00064 bool progressive;
00065 };
00066
00067 class KisJPEGConverter : public KisProgressSubject {
00068 Q_OBJECT
00069 public:
00070 KisJPEGConverter(KisDoc *doc, KisUndoAdapter *adapter);
00071 virtual ~KisJPEGConverter();
00072 public:
00073 KisImageBuilder_Result buildImage(const KURL& uri);
00074 KisImageBuilder_Result buildFile(const KURL& uri, KisPaintLayerSP layer, vKisAnnotationSP_it annotationsStart, vKisAnnotationSP_it annotationsEnd, KisJPEGOptions options, KisExifInfo* exifInfo);
00077 KisImageSP image();
00078 public slots:
00079 virtual void cancel();
00080 private:
00081 KisImageBuilder_Result decode(const KURL& uri);
00082 private:
00083 KisImageSP m_img;
00084 KisDoc *m_doc;
00085 KisUndoAdapter *m_adapter;
00086 bool m_stop;
00087 KIO::TransferJob *m_job;
00088 };
00089
00090 #endif
|