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>
18
#include <
KisImportExportErrorCode.h
>
19
20
class
KoStore
;
21
class
KisDocument
;
22
class
KoColorSpace
;
23
24
25
namespace
KisMetaData
26
{
27
class
Filter
;
28
class
Store
;
29
}
30
31
struct
KisPNGOptions
{
32
KisPNGOptions
()
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
49
int
compression
;
50
bool
interlace
;
51
bool
alpha
;
52
bool
exif
;
53
bool
iptc
;
54
bool
xmp
;
55
bool
tryToSaveAsIndexed
;
56
bool
saveSRGBProfile
;
57
bool
forceSRGB
;
58
bool
storeMetaData
;
59
bool
storeAuthor
;
60
bool
saveAsHDR
;
61
QList<const KisMetaData::Filter*>
filters
;
62
QColor
transparencyFillColor
;
63
bool
downsample
;
// Converts to 8 bit on export
64
};
65
69
// XXX_PROGRESS (pass KoUpdater to the png converter)
70
class
KRITAUI_EXPORT
KisPNGConverter
:
public
QObject
71
{
72
Q_OBJECT
73
public
:
79
KisPNGConverter
(
KisDocument
*doc,
bool
batchMode =
false
);
80
~KisPNGConverter
()
override
;
81
public
:
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
120
public
Q_SLOTS:
121
virtual
void
cancel();
122
private
:
123
void
progress(png_structp png_ptr, png_uint_32 row_number,
int
pass);
124
private
:
125
png_uint_32
m_max_row
;
126
KisImageSP
m_image
;
127
KisDocument
*
m_doc
;
128
bool
m_stop
;
129
bool
m_batchMode
;
130
QString
m_path
;
131
};
132
133
#endif
KisImportExportErrorCode.h
Filter
Definition
Filter.h:31
KisDocument
Definition
KisDocument.cpp:295
KisImportExportErrorCode
Definition
KisImportExportErrorCode.h:110
KisMetaData::Store
Definition
kis_meta_data_store.h:27
KisPNGConverter
Definition
kis_png_converter.h:71
KisPNGConverter::m_image
KisImageSP m_image
Definition
kis_png_converter.h:126
KisPNGConverter::m_max_row
png_uint_32 m_max_row
Definition
kis_png_converter.h:125
KisPNGConverter::m_path
QString m_path
Definition
kis_png_converter.h:130
KisPNGConverter::m_doc
KisDocument * m_doc
Definition
kis_png_converter.h:127
KisPNGConverter::m_batchMode
bool m_batchMode
Definition
kis_png_converter.h:129
KisPNGConverter::m_stop
bool m_stop
Definition
kis_png_converter.h:128
KisSharedPtr< KisPaintDevice >
KoColorSpace
Definition
KoColorSpace.h:78
KoStore
Definition
KoStore.h:26
QList
Definition
KisQStringListFwd.h:16
kis_annotation.h
This file is part of the Krita application in calligra.
kis_global.h
kis_types.h
vKisAnnotationSP_it
vKisAnnotationSP::iterator vKisAnnotationSP_it
Definition
kis_types.h:181
KisMetaData
Definition
kis_image.h:47
KisPNGOptions
Definition
kis_png_converter.h:31
KisPNGOptions::downsample
bool downsample
Definition
kis_png_converter.h:63
KisPNGOptions::iptc
bool iptc
Definition
kis_png_converter.h:53
KisPNGOptions::filters
QList< const KisMetaData::Filter * > filters
Definition
kis_png_converter.h:61
KisPNGOptions::saveSRGBProfile
bool saveSRGBProfile
Definition
kis_png_converter.h:56
KisPNGOptions::compression
int compression
Definition
kis_png_converter.h:49
KisPNGOptions::forceSRGB
bool forceSRGB
Definition
kis_png_converter.h:57
KisPNGOptions::exif
bool exif
Definition
kis_png_converter.h:52
KisPNGOptions::saveAsHDR
bool saveAsHDR
Definition
kis_png_converter.h:60
KisPNGOptions::alpha
bool alpha
Definition
kis_png_converter.h:51
KisPNGOptions::interlace
bool interlace
Definition
kis_png_converter.h:50
KisPNGOptions::storeMetaData
bool storeMetaData
Definition
kis_png_converter.h:58
KisPNGOptions::xmp
bool xmp
Definition
kis_png_converter.h:54
KisPNGOptions::tryToSaveAsIndexed
bool tryToSaveAsIndexed
Definition
kis_png_converter.h:55
KisPNGOptions::transparencyFillColor
QColor transparencyFillColor
Definition
kis_png_converter.h:62
KisPNGOptions::KisPNGOptions
KisPNGOptions()
Definition
kis_png_converter.h:32
KisPNGOptions::storeAuthor
bool storeAuthor
Definition
kis_png_converter.h:59
Store
Definition
kis_meta_data_store.cc:26
libs
ui
kis_png_converter.h
Generated at
2025-11-04 02:30:02+01:00
from
Krita
branch
master
, commit
c9dde2e79561a8aea4a7e8d9ac99c98a7bac9e52