Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_png_converter.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2005, 2007 Cyrille Berger <cberger@cberger.net>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6
7#ifndef _KIS_PNG_CONVERTER_H_
8#define _KIS_PNG_CONVERTER_H_
9
10#include <png.h>
11
12#include <QColor>
13
14#include "kis_types.h"
15#include "kis_global.h"
16#include "kis_annotation.h"
17#include <kritaui_export.h>
19
20class KoStore;
21class KisDocument;
22class KoColorSpace;
23
24
25namespace KisMetaData
26{
27class Filter;
28class Store;
29}
30
33 : compression(0)
34 , interlace(false)
35 , alpha(true)
36 , exif(true)
37 , iptc(true)
38 , xmp(true)
39 , tryToSaveAsIndexed(true)
40 , saveSRGBProfile(false)
41 , forceSRGB(false)
42 , storeMetaData(false)
43 , storeAuthor(false)
44 , saveAsHDR(false)
45 , transparencyFillColor(Qt::white)
46 , downsample(false)
47 {}
48
51 bool alpha;
52 bool exif;
53 bool iptc;
54 bool xmp;
63 bool downsample; // Converts to 8 bit on export
64};
65
69// XXX_PROGRESS (pass KoUpdater to the png converter)
70class KRITAUI_EXPORT KisPNGConverter : public QObject
71{
72 Q_OBJECT
73public:
79 KisPNGConverter(KisDocument *doc, bool batchMode = false);
80 ~KisPNGConverter() override;
81public:
87 KisImportExportErrorCode buildImage(const QString &filename);
92 KisImportExportErrorCode buildImage(QIODevice* iod);
105 KisImportExportErrorCode buildFile(const QString &filename, const QRect &imageRect, const qreal xRes, const qreal yRes, KisPaintDeviceSP device, vKisAnnotationSP_it annotationsStart, vKisAnnotationSP_it annotationsEnd, KisPNGOptions options, KisMetaData::Store* metaData);
106 KisImportExportErrorCode buildFile(QIODevice*, const QRect &imageRect, const qreal xRes, const qreal yRes, KisPaintDeviceSP device, vKisAnnotationSP_it annotationsStart, vKisAnnotationSP_it annotationsEnd, KisPNGOptions options, KisMetaData::Store* metaData);
110 KisImageSP image();
111
116 static bool saveDeviceToStore(const QString &filename, const QRect &imageRect, const qreal xRes, const qreal yRes, KisPaintDeviceSP dev, KoStore *store, KisMetaData::Store* metaData = 0);
117
118 static bool isColorSpaceSupported(const KoColorSpace *cs);
119
120public Q_SLOTS:
121 virtual void cancel();
122private:
123 void progress(png_structp png_ptr, png_uint_32 row_number, int pass);
124private:
125 png_uint_32 m_max_row;
128 bool m_stop;
130 QString m_path;
131};
132
133#endif
KisDocument * m_doc
This file is part of the Krita application in calligra.
vKisAnnotationSP::iterator vKisAnnotationSP_it
Definition kis_types.h:181
QList< const KisMetaData::Filter * > filters
QColor transparencyFillColor