Krita Source Code Documentation
Loading...
Searching...
No Matches
KisHeightMapExport Class Reference

#include <kis_heightmap_export.h>

+ Inheritance diagram for KisHeightMapExport:

Public Member Functions

KisImportExportErrorCode convert (KisDocument *document, QIODevice *io, KisPropertiesConfigurationSP configuration=0) override
 
KisConfigWidgetcreateConfigurationWidget (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/export filter
 
KisPropertiesConfigurationSP defaultConfiguration (const QByteArray &from="", const QByteArray &to="") const override
 defaultConfiguration defines the default settings for the given import export filter
 
void initializeCapabilities () override
 
 KisHeightMapExport (QObject *parent, const QVariantList &)
 
 ~KisHeightMapExport () override
 
- Public Member Functions inherited from KisImportExportFilter
virtual QMap< QString, KisExportCheckBase * > exportChecks ()
 generate and return the list of capabilities of this export filter. The list
 
virtual bool exportSupportsGuides () const
 exportSupportsGuides Because guides are in the document and not the image, checking for guides cannot be made an exportCheck.
 
KisPropertiesConfigurationSP lastSavedConfiguration (const QByteArray &from="", const QByteArray &to="") const
 lastSavedConfiguration return the last saved configuration for this filter
 
 Private ()
 
void setBatchMode (bool batchmode)
 
void setFilename (const QString &filename)
 
void setImportUserFeedBackInterface (KisImportUserFeedbackInterface *interface)
 
void setMimeType (const QString &mime)
 
void setRealFilename (const QString &filename)
 
void setUpdater (QPointer< KoUpdater > updater)
 
virtual bool supportsIO () const
 Override and return false for the filters that use a library that cannot handle file handles, only file names.
 
QPointer< KoUpdaterupdater ()
 
virtual QString verify (const QString &fileName) const
 Verify whether the given file is correct and readable.
 
 ~KisImportExportFilter () override
 
 ~Private ()
 

Additional Inherited Members

- Public Attributes inherited from KisImportExportFilter
bool batchmode
 
QMap< QString, KisExportCheckBase * > capabilities
 
QString filename
 
KisImportUserFeedbackInterfaceimportUserFeedBackInterface {nullptr}
 
QByteArray mime
 
QString realFilename
 
QPointer< KoUpdaterupdater
 
- Static Public Attributes inherited from KisImportExportFilter
static const QString CICPPrimariesTag = "CICPCompatiblePrimaries"
 
static const QString CICPTransferCharacteristicsTag = "CICPCompatibleTransferFunction"
 
static const QString ColorDepthIDTag = "ColorDepthID"
 
static const QString ColorModelIDTag = "ColorModelID"
 
static const QString HDRTag = "HDRSupported"
 
static const QString ImageContainsTransparencyTag = "ImageContainsTransparency"
 
static const QString sRGBTag = "sRGB"
 
- Protected Member Functions inherited from KisImportExportFilter
void addCapability (KisExportCheckBase *capability)
 
void addSupportedColorModels (QList< QPair< KoID, KoID > > supportedColorModels, const QString &name, KisExportCheckBase::Level level=KisExportCheckBase::PARTIALLY)
 
bool batchMode () const
 
QString filename () const
 
KisImportUserFeedbackInterfaceimportUserFeedBackInterface () const
 
 KisImportExportFilter (QObject *parent=0)
 
QByteArray mimeType () const
 
QString realFilename () const
 
void setProgress (int value)
 
QString verifyZiPBasedFiles (const QString &fileName, const QStringList &filesToCheck) const
 

Detailed Description

Definition at line 16 of file kis_heightmap_export.h.

Constructor & Destructor Documentation

◆ KisHeightMapExport()

KisHeightMapExport::KisHeightMapExport ( QObject * parent,
const QVariantList &  )

Definition at line 50 of file kis_heightmap_export.cpp.

50 : KisImportExportFilter(parent)
51{
52}
KisImportExportFilter(QObject *parent=0)

◆ ~KisHeightMapExport()

KisHeightMapExport::~KisHeightMapExport ( )
override

Definition at line 54 of file kis_heightmap_export.cpp.

55{
56}

Member Function Documentation

◆ convert()

KisImportExportErrorCode KisHeightMapExport::convert ( KisDocument * document,
QIODevice * io,
KisPropertiesConfigurationSP configuration = 0 )
overridevirtual

The filter chain calls this method to perform the actual conversion. The passed mimetypes should be a pair of those you specified in your .desktop file. You have to implement this method to make the filter work.

Returns
The error status, see the #ConversionStatus enum. KisImportExportFilter::OK means that everything is alright.

Implements KisImportExportFilter.

Definition at line 98 of file kis_heightmap_export.cpp.

99{
100 KIS_ASSERT_RECOVER_RETURN_VALUE(mimeType() == "image/x-r16" || mimeType() == "image/x-r8" || mimeType() == "image/x-r32", ImportExportCodes::FileFormatIncorrect);
101
102 KisImageSP image = document->savingImage();
103 QDataStream::ByteOrder bo = configuration->getInt("endianness", 1) == 0 ? QDataStream::BigEndian : QDataStream::LittleEndian;
104
105 KisPaintDeviceSP pd = new KisPaintDevice(*image->projection());
106
107 QDataStream s(io);
108 s.setByteOrder(bo);
109 // needed for 32bit float data
110 s.setFloatingPointPrecision(QDataStream::SinglePrecision);
111
112 KoID target_co_model = GrayAColorModelID;
114 KIS_ASSERT(!target_co_depth.id().isNull());
115
116 if (pd->colorSpace()->colorModelId() != target_co_model || pd->colorSpace()->colorDepthId() != target_co_depth) {
117 pd = new KisPaintDevice(*pd.data());
118 pd->convertTo(KoColorSpaceRegistry::instance()->colorSpace(target_co_model.id(), target_co_depth.id()));
119 }
120
121 if (target_co_depth == Float32BitsColorDepthID) {
122 writeData<float>(pd, image->bounds(), s);
123 }
124 else if (target_co_depth == Integer16BitsColorDepthID) {
125 writeData<quint16>(pd, image->bounds(), s);
126 }
127 else if (target_co_depth == Integer8BitsColorDepthID) {
128 writeData<quint8>(pd, image->bounds(), s);
129 }
130 else {
133 }
135}
const KoID Float32BitsColorDepthID("F32", ki18n("32-bit float/channel"))
const KoID GrayAColorModelID("GRAYA", ki18n("Grayscale/Alpha"))
const KoID Integer8BitsColorDepthID("U8", ki18n("8-bit integer/channel"))
const KoID Integer16BitsColorDepthID("U16", ki18n("16-bit integer/channel"))
KisPaintDeviceSP projection() const
QRect bounds() const override
const KoColorSpace * colorSpace() const
void convertTo(const KoColorSpace *dstColorSpace, KoColorConversionTransformation::Intent renderingIntent=KoColorConversionTransformation::internalRenderingIntent(), KoColorConversionTransformation::ConversionFlags conversionFlags=KoColorConversionTransformation::internalConversionFlags(), KUndo2Command *parentCommand=nullptr, KoUpdater *progressUpdater=nullptr)
virtual KoID colorModelId() const =0
virtual KoID colorDepthId() const =0
Definition KoID.h:30
QString id() const
Definition KoID.cpp:63
#define KIS_ASSERT_RECOVER_RETURN_VALUE(cond, val)
Definition kis_assert.h:85
#define KIS_ASSERT(cond)
Definition kis_assert.h:33
KoID mimeTypeToKoID(const class QByteArray &mimeType)
static KoColorSpaceRegistry * instance()

References KisImage::bounds(), KoColorSpace::colorDepthId(), KoColorSpace::colorModelId(), KisPaintDevice::colorSpace(), KisPaintDevice::convertTo(), KisSharedPtr< T >::data(), ImportExportCodes::FileFormatIncorrect, Float32BitsColorDepthID, GrayAColorModelID, KoID::id(), KoColorSpaceRegistry::instance(), Integer16BitsColorDepthID, Integer8BitsColorDepthID, ImportExportCodes::InternalError, KIS_ASSERT, KIS_ASSERT_RECOVER_RETURN_VALUE, KisImportExportFilter::mimeType(), KisHeightmapUtils::mimeTypeToKoID(), ImportExportCodes::OK, and KisImage::projection().

◆ createConfigurationWidget()

KisConfigWidget * KisHeightMapExport::createConfigurationWidget ( QWidget * parent,
const QByteArray & from = "",
const QByteArray & to = "" ) const
overridevirtual

createConfigurationWidget creates a widget that can be used to define the settings for a given import/export filter

Parameters
parentthe owner of the widget; the caller is responsible for deleting
fromThe mimetype of the source file/document
toThe mimetype of the destination file/document
Returns
the widget

Reimplemented from KisImportExportFilter.

Definition at line 67 of file kis_heightmap_export.cpp.

68{
69 Q_UNUSED(from);
70 Q_UNUSED(to);
71 bool export_mode = true;
72 KisWdgOptionsHeightmap* wdg = new KisWdgOptionsHeightmap(parent, export_mode);
73 return wdg;
74}

◆ defaultConfiguration()

KisPropertiesConfigurationSP KisHeightMapExport::defaultConfiguration ( const QByteArray & from = "",
const QByteArray & to = "" ) const
overridevirtual

defaultConfiguration defines the default settings for the given import export filter

Parameters
fromThe mimetype of the source file/document
toThe mimetype of the destination file/document
Returns
a serializable KisPropertiesConfiguration object

Reimplemented from KisImportExportFilter.

Definition at line 58 of file kis_heightmap_export.cpp.

59{
60 Q_UNUSED(from);
61 Q_UNUSED(to);
63 cfg->setProperty("endianness", 0);
64 return cfg;
65}

◆ initializeCapabilities()

void KisHeightMapExport::initializeCapabilities ( )
overridevirtual

Reimplemented from KisImportExportFilter.

Definition at line 76 of file kis_heightmap_export.cpp.

77{
78 if (mimeType() == "image/x-r8") {
79 QList<QPair<KoID, KoID> > supportedColorModels;
80 supportedColorModels << QPair<KoID, KoID>()
81 << QPair<KoID, KoID>(GrayAColorModelID, Integer8BitsColorDepthID);
82 addSupportedColorModels(supportedColorModels, "R8 Heightmap");
83 }
84 else if (mimeType() == "image/x-r16") {
85 QList<QPair<KoID, KoID> > supportedColorModels;
86 supportedColorModels << QPair<KoID, KoID>()
87 << QPair<KoID, KoID>(GrayAColorModelID, Integer16BitsColorDepthID);
88 addSupportedColorModels(supportedColorModels, "R16 Heightmap");
89 }
90 else if (mimeType() == "image/x-r32") {
91 QList<QPair<KoID, KoID> > supportedColorModels;
92 supportedColorModels << QPair<KoID, KoID>()
93 << QPair<KoID, KoID>(GrayAColorModelID, Float32BitsColorDepthID);
94 addSupportedColorModels(supportedColorModels, "R32 Heightmap");
95 }
96}
void addSupportedColorModels(QList< QPair< KoID, KoID > > supportedColorModels, const QString &name, KisExportCheckBase::Level level=KisExportCheckBase::PARTIALLY)

References KisImportExportFilter::addSupportedColorModels(), Float32BitsColorDepthID, GrayAColorModelID, Integer16BitsColorDepthID, Integer8BitsColorDepthID, and KisImportExportFilter::mimeType().


The documentation for this class was generated from the following files: