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

#include <colorspaceconversion.h>

+ Inheritance diagram for ColorSpaceConversion:

Public Member Functions

 ColorSpaceConversion (QObject *parent, const QVariantList &)
 
 ~ColorSpaceConversion () override
 
- Public Member Functions inherited from KisActionPlugin
 KisActionPlugin (QObject *parent=0)
 
 ~KisActionPlugin () override
 

Private Slots

void slotImageColorSpaceConversion ()
 
void slotLayerColorSpaceConversion ()
 
void slotUnifyLayersColorSpace ()
 

Additional Inherited Members

- Protected Member Functions inherited from KisActionPlugin
void addAction (const QString &name, KisAction *action)
 
void addOperation (KisOperation *operation)
 
void addUIFactory (KisOperationUIFactory *factory)
 
KisActioncreateAction (const QString &name)
 
QPointer< KisViewManagerviewManager () const
 

Detailed Description

Dialog for converting between color models.

Definition at line 19 of file colorspaceconversion.h.

Constructor & Destructor Documentation

◆ ColorSpaceConversion()

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

Definition at line 40 of file colorspaceconversion.cc.

41 : KisActionPlugin(parent)
42{
43 KisAction *action = viewManager()->actionManager()->createAction("imagecolorspaceconversion");
44 connect(action, SIGNAL(triggered()), this, SLOT(slotImageColorSpaceConversion()));
45
46 action = viewManager()->actionManager()->createAction("layercolorspaceconversion");
47 connect(action, SIGNAL(triggered()), this, SLOT(slotLayerColorSpaceConversion()));
48
49 action = viewManager()->actionManager()->createAction("unifylayerscolorspace");
50 connect(action, SIGNAL(triggered()), this, SLOT(slotUnifyLayersColorSpace()));
51}
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
QPointer< KisViewManager > viewManager() const
KisActionPlugin(QObject *parent=0)

References KisAction::actionManager, connect(), and KisActionManager::createAction().

◆ ~ColorSpaceConversion()

ColorSpaceConversion::~ColorSpaceConversion ( )
override

Definition at line 53 of file colorspaceconversion.cc.

54{
55}

Member Function Documentation

◆ slotImageColorSpaceConversion

void ColorSpaceConversion::slotImageColorSpaceConversion ( )
privateslot

Definition at line 57 of file colorspaceconversion.cc.

58{
59 KisImageSP image = viewManager()->image().toStrongRef();
60 if (!image) return;
61
62 KisColorSpaceConversionDialog * dlgColorSpaceConversion = new KisColorSpaceConversionDialog(viewManager()->mainWindowAsQWidget(), "ColorSpaceConversion");
63 bool allowLCMSOptimization = KisConfig(true).allowLCMSOptimization();
64 dlgColorSpaceConversion->m_page->chkAllowLCMSOptimization->setChecked(allowLCMSOptimization);
65 Q_CHECK_PTR(dlgColorSpaceConversion);
66
67 dlgColorSpaceConversion->setCaption(i18n("Convert All Layers From %1", image->colorSpace()->name()));
68 dlgColorSpaceConversion->setInitialColorSpace(image->colorSpace(), image);
69
70 if (dlgColorSpaceConversion->exec() == QDialog::Accepted) {
71
72 const KoColorSpace * cs = dlgColorSpaceConversion->colorSpace();
73 if (cs) {
74 image->convertImageColorSpace(cs,
75 dlgColorSpaceConversion->conversionIntent(),
76 dlgColorSpaceConversion->conversionFlags());
77 }
78 }
79 delete dlgColorSpaceConversion;
80}
KoColorConversionTransformation::Intent conversionIntent() const
void setInitialColorSpace(const KoColorSpace *cs, KisImageSP entireImage)
KoColorConversionTransformation::ConversionFlags conversionFlags() const
bool allowLCMSOptimization(bool defaultValue=false) const
const KoColorSpace * colorSpace() const
void convertImageColorSpace(const KoColorSpace *dstColorSpace, KoColorConversionTransformation::Intent renderingIntent, KoColorConversionTransformation::ConversionFlags conversionFlags)
virtual void setCaption(const QString &caption)
Definition KoDialog.cpp:498

References KisConfig::allowLCMSOptimization(), KisImage::colorSpace(), KisColorSpaceConversionDialog::colorSpace(), KisColorSpaceConversionDialog::conversionFlags(), KisColorSpaceConversionDialog::conversionIntent(), KisImage::convertImageColorSpace(), KisColorSpaceConversionDialog::m_page, KoColorSpace::name, KoDialog::setCaption(), KisColorSpaceConversionDialog::setInitialColorSpace(), and KisActionPlugin::viewManager().

◆ slotLayerColorSpaceConversion

void ColorSpaceConversion::slotLayerColorSpaceConversion ( )
privateslot

Definition at line 82 of file colorspaceconversion.cc.

83{
84 KisImageSP image = viewManager()->image().toStrongRef();
85 if (!image) return;
86
87 KisLayerSP layer = viewManager()->activeLayer();
88 if (!layer) return;
89
90 KisColorSpaceConversionDialog * dlgColorSpaceConversion = new KisColorSpaceConversionDialog(viewManager()->mainWindowAsQWidget(), "ColorSpaceConversion");
91 Q_CHECK_PTR(dlgColorSpaceConversion);
92
93 dlgColorSpaceConversion->setCaption(i18n("Convert Current Layer From %1", layer->colorSpace()->name()));
94 dlgColorSpaceConversion->setInitialColorSpace(layer->colorSpace(), 0);
95
96 if (dlgColorSpaceConversion->exec() == QDialog::Accepted) {
97 const KoColorSpace * cs = dlgColorSpaceConversion->m_page->colorSpaceSelector->currentColorSpace();
98 if (cs) {
99 KoColorConversionTransformation::ConversionFlags conversionFlags = KoColorConversionTransformation::HighQuality;
100 if (dlgColorSpaceConversion->m_page->chkBlackpointCompensation->isChecked()) conversionFlags |= KoColorConversionTransformation::BlackpointCompensation;
101 if (!dlgColorSpaceConversion->m_page->chkAllowLCMSOptimization->isChecked()) conversionFlags |= KoColorConversionTransformation::NoOptimization;
102 image->convertLayerColorSpace(layer, cs, (KoColorConversionTransformation::Intent)dlgColorSpaceConversion->m_intentButtonGroup.checkedId(), conversionFlags);
103 }
104 }
105 delete dlgColorSpaceConversion;
106}
void convertLayerColorSpace(KisNodeSP node, const KoColorSpace *dstColorSpace, KoColorConversionTransformation::Intent renderingIntent, KoColorConversionTransformation::ConversionFlags conversionFlags)
const KoColorSpace * colorSpace() const override
returns the image's colorSpace or null, if there is no image
Definition kis_layer.cc:225

References KoColorConversionTransformation::BlackpointCompensation, KisLayer::colorSpace(), KisImage::convertLayerColorSpace(), KoColorConversionTransformation::HighQuality, KisColorSpaceConversionDialog::m_intentButtonGroup, KisColorSpaceConversionDialog::m_page, KoColorSpace::name, KoColorConversionTransformation::NoOptimization, KoDialog::setCaption(), KisColorSpaceConversionDialog::setInitialColorSpace(), and KisActionPlugin::viewManager().

◆ slotUnifyLayersColorSpace

void ColorSpaceConversion::slotUnifyLayersColorSpace ( )
privateslot

Definition at line 108 of file colorspaceconversion.cc.

109{
110 KisImageSP image = viewManager()->image().toStrongRef();
111 if (!image) return;
112 image->unifyLayersColorSpace();
113}
void unifyLayersColorSpace()

References KisImage::unifyLayersColorSpace(), and KisActionPlugin::viewManager().


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