File indexing completed on 2024-06-16 04:16:54
0001 /* 0002 * SPDX-FileCopyrightText: 2018 Boudewijn Rempt <boud@valdyas.org> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #include "kis_gif_export.h" 0008 0009 #include <QCheckBox> 0010 #include <QSlider> 0011 0012 #include <kpluginfactory.h> 0013 #include <QFileInfo> 0014 #include <QApplication> 0015 #include <KoColorModelStandardIds.h> 0016 #include <KisExportCheckRegistry.h> 0017 #include <KisImportExportManager.h> 0018 #include <kis_paint_device.h> 0019 #include <KisDocument.h> 0020 #include <kis_image.h> 0021 #include <kis_paint_layer.h> 0022 0023 #include "qgiflibhandler.h" 0024 0025 K_PLUGIN_FACTORY_WITH_JSON(KisGIFExportFactory, "krita_gif_export.json", registerPlugin<KisGIFExport>();) 0026 0027 KisGIFExport::KisGIFExport(QObject *parent, const QVariantList &) : KisImportExportFilter(parent) 0028 { 0029 } 0030 0031 KisGIFExport::~KisGIFExport() 0032 { 0033 } 0034 0035 KisImportExportErrorCode KisGIFExport::convert(KisDocument *document, QIODevice *io, KisPropertiesConfigurationSP configuration) 0036 { 0037 Q_UNUSED(configuration); 0038 QRect rc = document->savingImage()->bounds(); 0039 QImage image = document->savingImage()->projection()->convertToQImage(0, 0, 0, rc.width(), rc.height(), KoColorConversionTransformation::internalRenderingIntent(), KoColorConversionTransformation::internalConversionFlags()); 0040 0041 QGIFLibHandler handler; 0042 handler.setDevice(io); 0043 bool result = handler.write(image); 0044 if (!result) { 0045 KIS_ASSERT_RECOVER_RETURN_VALUE(true, ImportExportCodes::InternalError); 0046 return ImportExportCodes::InternalError; 0047 } 0048 return ImportExportCodes::OK; 0049 } 0050 0051 void KisGIFExport::initializeCapabilities() 0052 { 0053 0054 QList<QPair<KoID, KoID> > supportedColorModels; 0055 supportedColorModels << QPair<KoID, KoID>() 0056 << QPair<KoID, KoID>(RGBAColorModelID, Integer8BitsColorDepthID); 0057 addSupportedColorModels(supportedColorModels, "GIF"); 0058 } 0059 0060 0061 0062 #include "kis_gif_export.moc" 0063