20#ifndef _KIS_PNG_CONVERTER_H_
21#define _KIS_PNG_CONVERTER_H_
25#include <tqvaluevector.h>
29#include <kis_progress_subject.h>
32#include "kis_global.h"
33#include "kis_annotation.h"
40enum KisImageBuilder_Result {
41 KisImageBuilder_RESULT_FAILURE = -400,
42 KisImageBuilder_RESULT_NOT_EXIST = -300,
43 KisImageBuilder_RESULT_NOT_LOCAL = -200,
44 KisImageBuilder_RESULT_BAD_FETCH = -100,
45 KisImageBuilder_RESULT_INVALID_ARG = -50,
46 KisImageBuilder_RESULT_OK = 0,
47 KisImageBuilder_RESULT_PROGRESS = 1,
48 KisImageBuilder_RESULT_EMPTY = 100,
49 KisImageBuilder_RESULT_BUSY = 150,
50 KisImageBuilder_RESULT_NO_URI = 200,
51 KisImageBuilder_RESULT_UNSUPPORTED = 300,
52 KisImageBuilder_RESULT_INTR = 400,
53 KisImageBuilder_RESULT_PATH = 500,
54 KisImageBuilder_RESULT_UNSUPPORTED_COLORSPACE = 600
57class KisPNGConverter :
public KisProgressSubject {
61 KisPNGConverter(KisDoc *doc, KisUndoAdapter *adapter);
62 virtual ~KisPNGConverter();
64 KisImageBuilder_Result buildImage(
const KURL& uri);
65 KisImageBuilder_Result buildFile(
const KURL& uri, KisPaintLayerSP layer, vKisAnnotationSP_it annotationsStart, vKisAnnotationSP_it annotationsEnd,
int compression,
bool interlace,
bool alpha);
70 virtual void cancel();
72 KisImageBuilder_Result decode(
const KURL& uri);
73 void progress(png_structp png_ptr, png_uint_32 row_number,
int pass);
75 png_uint_32 m_max_row;
78 KisUndoAdapter *m_adapter;