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

#include <kis_wdg_fastcolortransfer.h>

+ Inheritance diagram for KisWdgFastColorTransfer:

Public Member Functions

KisPropertiesConfigurationSP configuration () const override
 
 KisWdgFastColorTransfer (QWidget *parent)
 
void setConfiguration (const KisPropertiesConfigurationSP) override
 
const Ui_WdgFastColorTransfer * widget () const
 
 ~KisWdgFastColorTransfer () override
 
- Public Member Functions inherited from KisConfigWidget
virtual KoCanvasResourcesInterfaceSP canvasResourcesInterface () const
 
virtual void setCanvasResourcesInterface (KoCanvasResourcesInterfaceSP canvasResourcesInterface)
 
virtual void setView (KisViewManager *view)
 
 ~KisConfigWidget () override
 

Private Attributes

Ui_WdgFastColorTransfer * m_widget
 

Additional Inherited Members

- Signals inherited from KisConfigWidget
void sigConfigurationItemChanged ()
 
void sigConfigurationUpdated ()
 
void sigDropLockedConfig (KisPropertiesConfigurationSP p)
 
void sigSaveLockedConfig (KisPropertiesConfigurationSP p)
 
- Protected Member Functions inherited from KisConfigWidget
 KisConfigWidget (QWidget *parent=0, Qt::WindowFlags f=Qt::WindowFlags(), int delay=200)
 

Detailed Description

Constructor & Destructor Documentation

◆ KisWdgFastColorTransfer()

KisWdgFastColorTransfer::KisWdgFastColorTransfer ( QWidget * parent)

Definition at line 28 of file kis_wdg_fastcolortransfer.cpp.

28 : KisConfigWidget(parent)
29{
30 m_widget = new Ui_WdgFastColorTransfer();
31 m_widget->setupUi(this);
33 connect(m_widget->fileNameURLRequester, SIGNAL(textChanged(QString)), this, SIGNAL(sigConfigurationItemChanged()));
34}
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
void sigConfigurationItemChanged()
KisConfigWidget(QWidget *parent=0, Qt::WindowFlags f=Qt::WindowFlags(), int delay=200)
static QStringList supportedMimeTypes(Direction direction)
Ui_WdgFastColorTransfer * m_widget

References connect(), KisImportExportManager::Import, m_widget, KisConfigWidget::sigConfigurationItemChanged(), and KisImportExportManager::supportedMimeTypes().

◆ ~KisWdgFastColorTransfer()

KisWdgFastColorTransfer::~KisWdgFastColorTransfer ( )
override

Definition at line 37 of file kis_wdg_fastcolortransfer.cpp.

38{
39 delete m_widget;
40}

References m_widget.

Member Function Documentation

◆ configuration()

KisPropertiesConfigurationSP KisWdgFastColorTransfer::configuration ( ) const
overridevirtual
Returns
the configuration

Implements KisConfigWidget.

Definition at line 51 of file kis_wdg_fastcolortransfer.cpp.

52{
54 QString fileName = this->widget()->fileNameURLRequester->fileName();
55
56 if (fileName.isEmpty()) return config;
57
59
60 dbgPlugins << "Use as reference file : " << fileName;
61
63
64 KisImportExportManager manager(d);
65 KisImportExportErrorCode status = manager.importDocument(fileName, QString());
66 dbgPlugins << "import returned status" << status.errorMessage();
67 KisImageWSP importedImage = d->image();
68
69 if (importedImage) {
70 ref = importedImage->projection();
71 }
72 if (!ref) {
73 dbgPlugins << "No reference image was specified.";
74 delete d;
75 return config;
76 }
77
78 // Convert ref to LAB
80 if (!labCS) {
81 dbgPlugins << "The LAB colorspace is not available.";
82 delete d;
83 return config;
84 }
85
86 dbgPlugins << "convert ref to lab";
88
89 // Compute the means and sigmas of ref
90 double meanL_ref = 0., meanA_ref = 0., meanB_ref = 0.;
91 double sigmaL_ref = 0., sigmaA_ref = 0., sigmaB_ref = 0.;
92
93 KisSequentialConstIterator refIt(ref, importedImage->bounds());
94 while (refIt.nextPixel()) {
95 const quint16* data = reinterpret_cast<const quint16*>(refIt.oldRawData());
96
97 quint32 L = data[0];
98 quint32 A = data[1];
99 quint32 B = data[2];
100
101 meanL_ref += L;
102 meanA_ref += A;
103 meanB_ref += B;
104
105 sigmaL_ref += L * L;
106 sigmaA_ref += A * A;
107 sigmaB_ref += B * B;
108
109 }
110
111 double totalSize = 1. / (importedImage->width() * importedImage->height());
112
113 meanL_ref *= totalSize;
114 meanA_ref *= totalSize;
115 meanB_ref *= totalSize;
116 sigmaL_ref *= totalSize;
117 sigmaA_ref *= totalSize;
118 sigmaB_ref *= totalSize;
119
120 dbgPlugins << totalSize << "" << meanL_ref << "" << meanA_ref << "" << meanB_ref << "" << sigmaL_ref << "" << sigmaA_ref << "" << sigmaB_ref;
121
122 config->setProperty("filename", fileName);
123 config->setProperty("meanL", meanL_ref);
124 config->setProperty("meanA", meanA_ref);
125 config->setProperty("meanB", meanB_ref);
126 config->setProperty("sigmaL", sigmaL_ref);
127 config->setProperty("sigmaA", sigmaA_ref);
128 config->setProperty("sigmaB", sigmaB_ref);
129
130 delete d;
131
132 return config;
133}
static KisResourcesInterfaceSP instance()
KisPaintDeviceSP projection() const
qint32 width() const
qint32 height() const
QRect bounds() const override
The class managing all the filters.
void convertTo(const KoColorSpace *dstColorSpace, KoColorConversionTransformation::Intent renderingIntent=KoColorConversionTransformation::internalRenderingIntent(), KoColorConversionTransformation::ConversionFlags conversionFlags=KoColorConversionTransformation::internalConversionFlags(), KUndo2Command *parentCommand=nullptr, KoUpdater *progressUpdater=nullptr)
static KisPart * instance()
Definition KisPart.cpp:131
KisDocument * createDocument() const
Definition KisPart.cpp:230
const Ui_WdgFastColorTransfer * widget() const
#define dbgPlugins
Definition kis_debug.h:51
const KoColorSpace * lab16(const QString &profileName=QString())
static KoColorSpaceRegistry * instance()

References A, B, KisImage::bounds(), KisPaintDevice::convertTo(), KisPart::createDocument(), dbgPlugins, KisImportExportErrorCode::errorMessage(), KisImage::height(), KisImportExportManager::importDocument(), KoColorSpaceRegistry::instance(), KisGlobalResourcesInterface::instance(), KisPart::instance(), KoColorConversionTransformation::internalConversionFlags(), KoColorConversionTransformation::internalRenderingIntent(), KoColorSpaceRegistry::lab16(), KisSequentialIteratorBase< IteratorPolicy, SourcePolicy, ProgressPolicy >::nextPixel(), KisSequentialIteratorBase< IteratorPolicy, SourcePolicy, ProgressPolicy >::oldRawData(), KisImage::projection(), widget(), and KisImage::width().

◆ setConfiguration()

void KisWdgFastColorTransfer::setConfiguration ( const KisPropertiesConfigurationSP config)
overridevirtual
Parameters
configthe configuration for this configuration widget.

Implements KisConfigWidget.

Definition at line 42 of file kis_wdg_fastcolortransfer.cpp.

43{
44 QVariant value;
45 if (config->getProperty("filename", value)) {
46 widget()->fileNameURLRequester->setFileName(value.toString());
47 }
48
49}
float value(const T *src, size_t ch)

References value(), and widget().

◆ widget()

const Ui_WdgFastColorTransfer * KisWdgFastColorTransfer::widget ( ) const
inline

Definition at line 25 of file kis_wdg_fastcolortransfer.h.

25 {
26 return m_widget;
27 }

References m_widget.

Member Data Documentation

◆ m_widget

Ui_WdgFastColorTransfer* KisWdgFastColorTransfer::m_widget
private

Definition at line 30 of file kis_wdg_fastcolortransfer.h.


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