Krita Source Code Documentation
Loading...
Searching...
No Matches
exr_export.cc
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2010 Cyrille Berger <cberger@cberger.net>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6
7#include "exr_export.h"
8
9#include <QCheckBox>
10#include <QSlider>
11#include <QApplication>
12
13#include <kpluginfactory.h>
14
19
21#include <kis_config.h>
22#include <KisDocument.h>
23#include <kis_image.h>
24#include <kis_group_layer.h>
25#include <kis_paint_device.h>
26#include <kis_paint_layer.h>
27
28#include "exr_converter.h"
29
30
32
33K_PLUGIN_FACTORY_WITH_JSON(ExportFactory, "krita_exr_export.json", registerPlugin<EXRExport>();)
34
35EXRExport::EXRExport(QObject *parent, const QVariantList &) : KisImportExportFilter(parent)
36{
37}
38
42
43KisPropertiesConfigurationSP EXRExport::defaultConfiguration(const QByteArray &/*from*/, const QByteArray &/*to*/) const
44{
46 cfg->setProperty("flatten", false);
47 return cfg;
48}
49
50KisConfigWidget *EXRExport::createConfigurationWidget(QWidget *parent, const QByteArray &/*from*/, const QByteArray &/*to*/) const
51{
52 return new KisWdgOptionsExr(parent);
53}
54
56{
57 Q_ASSERT(document);
58 Q_ASSERT(configuration);
59
60 KisImageSP image = document->savingImage();
61 Q_ASSERT(image);
62
63 EXRConverter exrConverter(document, !batchMode());
64
66
67 if (configuration && configuration->getBool("flatten")) {
68 res = exrConverter.buildFile(filename(), image->rootLayer(), true);
69 }
70 else {
71 res = exrConverter.buildFile(filename(), image->rootLayer());
72 }
73
74 if (!exrConverter.errorMessage().isNull()) {
75 document->setErrorMessage(exrConverter.errorMessage());
76 }
77
78
79 dbgFile << " Result =" << res;
80 return res;
81}
82
84{
85 addCapability(KisExportCheckRegistry::instance()->get("NodeTypeCheck/KisGroupLayer")->create(KisExportCheckBase::SUPPORTED));
89
90 QList<QPair<KoID, KoID> > supportedColorModels;
91 supportedColorModels << QPair<KoID, KoID>()
92 << QPair<KoID, KoID>(RGBAColorModelID, Float16BitsColorDepthID)
93 << QPair<KoID, KoID>(RGBAColorModelID, Float32BitsColorDepthID)
94 << QPair<KoID, KoID>(GrayAColorModelID, Float16BitsColorDepthID)
95 << QPair<KoID, KoID>(GrayAColorModelID, Float32BitsColorDepthID)
96 << QPair<KoID, KoID>(GrayColorModelID, Float16BitsColorDepthID)
97 << QPair<KoID, KoID>(GrayColorModelID, Float32BitsColorDepthID)
98 << QPair<KoID, KoID>(XYZAColorModelID, Float16BitsColorDepthID)
99 << QPair<KoID, KoID>(XYZAColorModelID, Float32BitsColorDepthID);
100 addSupportedColorModels(supportedColorModels, "EXR");
101}
102
103
104
105
107{
108 chkFlatten->setChecked(cfg->getBool("flatten", false));
109}
110
112{
114 cfg->setProperty("flatten", chkFlatten->isChecked());
115 return cfg;
116}
117
118#include <exr_export.moc>
119
VertexDescriptor get(PredecessorMap const &m, VertexDescriptor v)
const KoID Float32BitsColorDepthID("F32", ki18n("32-bit float/channel"))
const KoID GrayAColorModelID("GRAYA", ki18n("Grayscale/Alpha"))
const KoID XYZAColorModelID("XYZA", ki18n("XYZ/Alpha"))
const KoID Float16BitsColorDepthID("F16", ki18n("16-bit float/channel"))
const KoID RGBAColorModelID("RGBA", ki18n("RGB/Alpha"))
const KoID GrayColorModelID("GRAY", ki18n("Grayscale (without transparency)"))
KisImportExportErrorCode buildFile(const QString &filename, KisPaintLayerSP layer)
QString errorMessage() const
EXRExport(QObject *parent, const QVariantList &)
Definition exr_export.cc:35
~EXRExport() override
Definition exr_export.cc:39
void initializeCapabilities() override
Definition exr_export.cc:83
KisConfigWidget * createConfigurationWidget(QWidget *parent, const QByteArray &from="", const QByteArray &to="") const override
createConfigurationWidget creates a widget that can be used to define the settings for a given import...
Definition exr_export.cc:50
KisPropertiesConfigurationSP defaultConfiguration(const QByteArray &from="", const QByteArray &to="") const override
defaultConfiguration defines the default settings for the given import export filter
Definition exr_export.cc:43
KisImportExportErrorCode convert(KisDocument *document, QIODevice *io, KisPropertiesConfigurationSP configuration=0) override
Definition exr_export.cc:55
static KisExportCheckRegistry * instance()
KisGroupLayerSP rootLayer() const
The base class for import and export filters.
void addSupportedColorModels(QList< QPair< KoID, KoID > > supportedColorModels, const QString &name, KisExportCheckBase::Level level=KisExportCheckBase::PARTIALLY)
void addCapability(KisExportCheckBase *capability)
KisPropertiesConfigurationSP configuration() const override
void setConfiguration(const KisPropertiesConfigurationSP cfg) override
K_PLUGIN_FACTORY_WITH_JSON(KritaASCCDLFactory, "kritaasccdl.json", registerPlugin< KritaASCCDL >();) KritaASCCDL
#define dbgFile
Definition kis_debug.h:53
KisNodeWSP parent
Definition kis_node.cpp:86