Krita Source Code Documentation
Loading...
Searching...
No Matches
ora_converter.cpp
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2007 Cyrille Berger <cberger@cberger.net>
3 *
4 * SPDX-License-Identifier: LGPL-2.0-or-later
5 */
6
7#include "ora_converter.h"
8
9#include <QApplication>
10
11
12#include <KoStore.h>
13#include <KoStoreDevice.h>
15#include <KisDocument.h>
16#include <kis_group_layer.h>
17#include <kis_image.h>
20#include <kis_paint_layer.h>
21#include "kis_png_converter.h"
24
26 : m_doc(doc)
27 , m_stop(false)
28{
29}
30
34
36{
37 KoStore* store = KoStore::createStore(io, KoStore::Read, "image/openraster", KoStore::Zip);
38 if (!store) {
39 delete store;
41 }
42
43 KisOpenRasterLoadContext olc(store);
45 orslv.loadImage();
46 m_image = orslv.image();
47
48 qDebug() << "m_image" << m_image;
49
50 if (!m_image) {
51 delete store;
53 }
54
55 m_activeNodes = orslv.activeNodes();
56 delete store;
57
59}
60
65
70
72{
73
74 // Open file for writing
75 KoStore* store = KoStore::createStore(io, KoStore::Write, "image/openraster", KoStore::Zip);
76 if (!store) {
77 delete store;
79 }
80
81 KisOpenRasterSaveContext osc(store);
83
84 image->rootLayer()->accept(orssv);
85
86 if (store->open("Thumbnails/thumbnail.png")) {
87 QSize previewSize = image->bounds().size();
88 previewSize.scale(QSize(256,256), Qt::KeepAspectRatio);
89
90 QImage preview = image->convertToQImage(previewSize, 0);
91
92 KoStoreDevice io(store);
93 if (io.open(QIODevice::WriteOnly)) {
94 preview.save(&io, "PNG");
95 }
96 io.close();
97 store->close();
98 }
99
101 KisPNGConverter::saveDeviceToStore("mergedimage.png", image->bounds(), image->xRes(), image->yRes(), dev, store);
102
103 delete store;
105}
106
107
109{
110 m_stop = true;
111}
112
113
KisUndoStore * createUndoStore()
QImage convertToQImage(qint32 x1, qint32 y1, qint32 width, qint32 height, const KoColorProfile *profile)
KisGroupLayerSP rootLayer() const
KisPaintDeviceSP projection() const
double xRes() const
double yRes() const
QRect bounds() const override
static bool saveDeviceToStore(const QString &filename, const QRect &imageRect, const qreal xRes, const qreal yRes, KisPaintDeviceSP dev, KoStore *store, KisMetaData::Store *metaData=0)
saveDeviceToStore saves the given paint device to the KoStore. If the device is not 8 bits sRGB,...
void close() override
bool open(OpenMode m) override
bool close()
Definition KoStore.cpp:156
@ Read
Definition KoStore.h:29
@ Write
Definition KoStore.h:29
@ Zip
Definition KoStore.h:30
static KoStore * createStore(const QString &fileName, Mode mode, const QByteArray &appIdentification=QByteArray(), Backend backend=Auto, bool writeMimetype=true)
Definition KoStore.cpp:39
bool open(const QString &name)
Definition KoStore.cpp:109
OraConverter(KisDocument *doc)
vKisNodeSP activeNodes()
vKisNodeSP m_activeNodes
KisImportExportErrorCode buildFile(QIODevice *io, KisImageSP image, vKisNodeSP activeNodes)
KisDocument * m_doc
KisImportExportErrorCode buildImage(QIODevice *io)
KisImageSP m_image
virtual void cancel()
KisImageSP image()
~OraConverter() override
bool accept(KisNodeVisitor &v) override