Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_gif_import.cpp
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2018 Boudewijn Rempt <boud@valdyas.org>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6
7#include "kis_gif_import.h"
8
9#include <QCheckBox>
10#include <QBuffer>
11#include <QSlider>
12#include <QApplication>
13
14#include <kpluginfactory.h>
15
16#include <KoColorSpace.h>
18
19#include <kis_transaction.h>
20#include <kis_paint_device.h>
21#include <kis_image.h>
22#include <kis_paint_layer.h>
23#include <kis_node.h>
24#include <kis_group_layer.h>
25#include <KisDocument.h>
27
28#include "qgiflibhandler.h"
29
30K_PLUGIN_FACTORY_WITH_JSON(KisGIFImportFactory, "krita_gif_import.json", registerPlugin<KisGIFImport>();)
31
32KisGIFImport::KisGIFImport(QObject *parent, const QVariantList &)
33 : KisImportExportFilter(parent)
34{
35}
36
40
42{
43 Q_UNUSED(configuration);
44
45 QImage img;
46 bool result = false;
47 QGIFLibHandler handler;
48
49
50 handler.setDevice(io);
51
52 if (!io->isReadable()) {
54 }
55
56 if (handler.canRead()) {
57 result = handler.read(&img);
58 } else {
59 // handler.canRead() checks for the flag in the file; if it can't read it, maybe the format is incorrect
61 }
62
63 if (result == false) {
65 }
66
67 const KoColorSpace *colorSpace = KoColorSpaceRegistry::instance()->rgb8();
68 KisImageSP image = new KisImage(document->createUndoStore(), img.width(), img.height(), colorSpace, "imported from gif");
69
70 KisPaintLayerSP layer = new KisPaintLayer(image, image->nextLayerName(), 255);
71 layer->paintDevice()->convertFromQImage(img, 0, 0, 0);
72 image->addNode(layer.data(), image->rootLayer().data());
73
74 document->setCurrentImage(image);
76
77}
78
79#include "kis_gif_import.moc"
80
KisImportExportErrorCode convert(KisDocument *document, QIODevice *io, KisPropertiesConfigurationSP configuration=0) override
KisGIFImport(QObject *parent, const QVariantList &)
~KisGIFImport() override
KisGroupLayerSP rootLayer() const
QString nextLayerName(const QString &baseName="") const
Definition kis_image.cc:715
The base class for import and export filters.
void convertFromQImage(const QImage &image, const KoColorProfile *profile, qint32 offsetX=0, qint32 offsetY=0)
bool read(QImage *image) override
bool canRead() const override
K_PLUGIN_FACTORY_WITH_JSON(KritaASCCDLFactory, "kritaasccdl.json", registerPlugin< KritaASCCDL >();) KritaASCCDL
bool addNode(KisNodeSP node, KisNodeSP parent=KisNodeSP(), KisNodeAdditionFlags flags=KisNodeAdditionFlag::None)
KisPaintDeviceSP paintDevice
static KoColorSpaceRegistry * instance()
const KoColorSpace * rgb8(const QString &profileName=QString())