ColorizeMask

Search for usage in LXR

ColorizeMask Class Reference

#include <ColorizeMask.h>

Inheritance diagram for ColorizeMask:

Public Slots

qreal cleanUpAmount () const
 
qreal edgeDetectionSize () const
 
bool editKeyStrokes () const
 
void initializeKeyStrokeColors (QList< ManagedColor * > colors, int transparentIndex=-1)
 
QByteArray keyStrokePixelData (ManagedColor *color, int x, int y, int w, int h) const
 
QList< ManagedColor * > keyStrokesColors () const
 
bool limitToDeviceBounds () const
 
void removeKeyStroke (ManagedColor *color)
 
void resetCache ()
 
void setCleanUpAmount (qreal value)
 
void setEdgeDetectionSize (qreal value)
 
void setEditKeyStrokes (bool enabled)
 
bool setKeyStrokePixelData (QByteArray value, ManagedColor *color, int x, int y, int w, int h)
 
void setLimitToDeviceBounds (bool value)
 
void setShowOutput (bool enabled)
 
void setUseEdgeDetection (bool value)
 
bool showOutput () const
 
int transparencyIndex () const
 
virtual QString type () const override
 
void updateMask (bool force=false)
 
bool useEdgeDetection () const
 
- Public Slots inherited from Node
bool addChildNode (Node *child, Node *above)
 
bool alphaLocked () const
 
bool animated () const
 
QString blendingMode () const
 
QRect bounds () const
 
QList< Channel * > channels () const
 
QList< Node * > childNodes () const
 
Nodeclone () const
 
bool collapsed () const
 
QString colorDepth () const
 
int colorLabel () const
 
QString colorModel () const
 
QString colorProfile () const
 
void cropNode (int x, int y, int w, int h)
 
Nodeduplicate ()
 
void enableAnimation () const
 
QList< Node * > findChildNodes (const QString &name=QString(), bool recursive=false, bool partialMatch=false, const QString &type=QString(), int colorLabelIndex=0) const
 
bool hasExtents ()
 
bool hasKeyframeAtTime (int frameNumber)
 
QIcon icon () const
 
int index () const
 
bool inheritAlpha () const
 
bool isPinnedToTimeline () const
 
QString layerStyleToAsl ()
 
bool locked () const
 
NodemergeDown ()
 
void move (int x, int y)
 
QString name () const
 
int opacity () const
 
NodeparentNode () const
 
QByteArray pixelData (int x, int y, int w, int h) const
 
QByteArray pixelDataAtTime (int x, int y, int w, int h, int time) const
 
QPoint position () const
 
QByteArray projectionPixelData (int x, int y, int w, int h) const
 
bool remove ()
 
bool removeChildNode (Node *child)
 
void rotateNode (double radians)
 
bool save (const QString &filename, double xRes, double yRes, const InfoObject &exportConfiguration, const QRect &exportRect=QRect())
 
void scaleNode (QPointF origin, int width, int height, QString strategy)
 
void setAlphaLocked (bool value)
 
void setBlendingMode (QString value)
 
void setChildNodes (QList< Node * > nodes)
 
void setCollapsed (bool collapsed)
 
void setColorLabel (int index)
 
bool setColorProfile (const QString &colorProfile)
 
bool setColorSpace (const QString &colorModel, const QString &colorDepth, const QString &colorProfile)
 
void setInheritAlpha (bool value)
 
bool setLayerStyleFromAsl (const QString &asl)
 
void setLocked (bool value)
 
void setName (QString name)
 
void setOpacity (int value)
 
void setPinnedToTimeline (bool pinned) const
 
bool setPixelData (QByteArray value, int x, int y, int w, int h)
 
void setVisible (bool visible)
 
void shearNode (double angleX, double angleY)
 
QImage thumbnail (int w, int h)
 
virtual QString type () const
 
QUuid uniqueId () const
 
bool visible () const
 

Public Member Functions

 ColorizeMask (KisImageSP image, KisColorizeMaskSP mask, QObject *parent=0)
 
 ColorizeMask (KisImageSP image, QString name, QObject *parent=0)
 
- Public Member Functions inherited from Node
bool operator!= (const Node &other) const
 
bool operator== (const Node &other) const
 
- Public Member Functions inherited from QObject
 QObject (QObject *parent)
 
bool blockSignals (bool block)
 
const QObjectListchildren () const const
 
QMetaObject::Connection connect (const QObject *sender, const char *signal, const char *method, Qt::ConnectionType type) const const
 
void deleteLater ()
 
void destroyed (QObject *obj)
 
bool disconnect (const char *signal, const QObject *receiver, const char *method) const const
 
bool disconnect (const QObject *receiver, const char *method) const const
 
void dumpObjectInfo ()
 
void dumpObjectInfo () const const
 
void dumpObjectTree ()
 
void dumpObjectTree () const const
 
QList< QByteArraydynamicPropertyNames () const const
 
virtual bool event (QEvent *e)
 
virtual bool eventFilter (QObject *watched, QEvent *event)
 
findChild (const QString &name, Qt::FindChildOptions options) const const
 
QList< T > findChildren (const QRegExp &regExp, Qt::FindChildOptions options) const const
 
QList< T > findChildren (const QRegularExpression &re, Qt::FindChildOptions options) const const
 
QList< T > findChildren (const QString &name, Qt::FindChildOptions options) const const
 
bool inherits (const char *className) const const
 
void installEventFilter (QObject *filterObj)
 
bool isWidgetType () const const
 
bool isWindowType () const const
 
void killTimer (int id)
 
virtual const QMetaObjectmetaObject () const const
 
void moveToThread (QThread *targetThread)
 
QString objectName () const const
 
void objectNameChanged (const QString &objectName)
 
QObjectparent () const const
 
QVariant property (const char *name) const const
 
 Q_CLASSINFO (Name, Value)
 
 Q_DISABLE_COPY (Class)
 
 Q_DISABLE_COPY_MOVE (Class)
 
 Q_DISABLE_MOVE (Class)
 
 Q_EMIT Q_EMIT
 
 Q_ENUM (...)
 
 Q_ENUM_NS (...)
 
 Q_ENUMS (...)
 
 Q_FLAG (...)
 
 Q_FLAG_NS (...)
 
 Q_FLAGS (...)
 
 Q_GADGET Q_GADGET
 
 Q_INTERFACES (...)
 
 Q_INVOKABLE Q_INVOKABLE
 
 Q_NAMESPACE Q_NAMESPACE
 
 Q_NAMESPACE_EXPORT (EXPORT_MACRO)
 
 Q_OBJECT Q_OBJECT
 
 Q_PROPERTY (...)
 
 Q_REVISION Q_REVISION
 
 Q_SET_OBJECT_NAME (Object)
 
 Q_SIGNAL Q_SIGNAL
 
 Q_SIGNALS Q_SIGNALS
 
 Q_SLOT Q_SLOT
 
 Q_SLOTS Q_SLOTS
 
qFindChild (const QObject *obj, const QString &name)
 
QList< T > qFindChildren (const QObject *obj, const QRegExp &regExp)
 
QList< T > qFindChildren (const QObject *obj, const QString &name)
 
qobject_cast (const QObject *object)
 
qobject_cast (QObject *object)
 
 QT_NO_NARROWING_CONVERSIONS_IN_CONNECT QT_NO_NARROWING_CONVERSIONS_IN_CONNECT
 
void removeEventFilter (QObject *obj)
 
void setObjectName (const QString &name)
 
void setParent (QObject *parent)
 
bool setProperty (const char *name, const QVariant &value)
 
bool signalsBlocked () const const
 
int startTimer (int interval, Qt::TimerType timerType)
 
int startTimer (std::chrono::milliseconds time, Qt::TimerType timerType)
 
QThreadthread () const const
 

Additional Inherited Members

- Properties inherited from QObject
 objectName
 
- Static Public Member Functions inherited from Node
static NodecreateNode (KisImageSP image, KisNodeSP node, QObject *parent=0)
 
- Static Public Member Functions inherited from QObject
QMetaObject::Connection connect (const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, const QObject *context, Functor functor, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, Functor functor)
 
bool disconnect (const QMetaObject::Connection &connection)
 
bool disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *method)
 
bool disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method)
 
bool disconnect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method)
 
QString tr (const char *sourceText, const char *disambiguation, int n)
 
QString trUtf8 (const char *sourceText, const char *disambiguation, int n)
 
- Public Attributes inherited from QObject
typedef QObjectList
 
- Protected Member Functions inherited from QObject
virtual void childEvent (QChildEvent *event)
 
virtual void connectNotify (const QMetaMethod &signal)
 
virtual void customEvent (QEvent *event)
 
virtual void disconnectNotify (const QMetaMethod &signal)
 
bool isSignalConnected (const QMetaMethod &signal) const const
 
int receivers (const char *signal) const const
 
QObjectsender () const const
 
int senderSignalIndex () const const
 
virtual void timerEvent (QTimerEvent *event)
 

Detailed Description

The ColorizeMask class A colorize mask is a mask type node that can be used to color in line art.

doc = Krita.instance().createDocument(10, 3, "Test", "RGBA", "U8", "", 120.0)
window.addView(doc)
root = doc.rootNode();
node = doc.createNode("layer", "paintLayer")
root.addChildNode(node, None)
nodeData = QByteArray.fromBase64(b"AAAAAAAAAAAAAAAAEQYMBhEGDP8RBgz/EQYMAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARBgz5EQYM/xEGDAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQYMAhEGDAkRBgwCAAAAAAAAAAAAAAAA");
node.setPixelData(nodeData,0,0,10,3)
cols = [ ManagedColor('RGBA','U8',''), ManagedColor('RGBA','U8','') ]
cols[0].setComponents([0.65490198135376, 0.345098048448563, 0.474509805440903, 1.0]);
cols[1].setComponents([0.52549022436142, 0.666666686534882, 1.0, 1.0]);
keys = [
QByteArray.fromBase64(b"/48AAAAAAAAAAAAAAAAAAAAAAACmCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"),
QByteArray.fromBase64(b"AAAAAAAAAACO9ocAAAAAAAAAAAAAAAAAAAAAAMD/uQAAAAAAAAAAAAAAAAAAAAAAGoMTAAAAAAAAAAAA")
]
mask = doc.createColorizeMask('c1')
node.addChildNode(mask,None)
mask.setEditKeyStrokes(True)
mask.setUseEdgeDetection(True)
mask.setEdgeDetectionSize(4.0)
mask.setCleanUpAmount(70.0)
mask.setLimitToDeviceBounds(True)
mask.initializeKeyStrokeColors(cols)
for col,key in zip(cols,keys):
mask.setKeyStrokePixelData(key,col,0,0,20,3)
mask.updateMask()
mask.setEditKeyStrokes(False);
mask.setShowOutput(True);

Definition at line 59 of file ColorizeMask.h.

Member Function Documentation

◆ cleanUpAmount

qreal ColorizeMask::cleanUpAmount ( ) const
slot

cleanUpAmount

Returns
a float value of 0.0 to 100.0 represening the cleanup amount where 0.0 is no cleanup is done and 100.00 is most aggressive.

Definition at line 194 of file ColorizeMask.cpp.

◆ edgeDetectionSize

qreal ColorizeMask::edgeDetectionSize ( ) const
slot

edgeDetectionSize

Returns
a float value of the edge detection size in pixels.

Definition at line 178 of file ColorizeMask.cpp.

◆ editKeyStrokes

bool ColorizeMask::editKeyStrokes ( ) const
slot

editKeyStrokes Edit keystrokes mode allows the user to modify keystrokes on the active Colorize Mask.

Returns
true if edit keystrokes mode is enabled, false if disabled.

Definition at line 270 of file ColorizeMask.cpp.

◆ initializeKeyStrokeColors

void ColorizeMask::initializeKeyStrokeColors ( QList< ManagedColor * >  colors,
int  transparentIndex = -1 
)
slot

initializeKeyStrokeColors Set the colors to use for the Colorize Mask's keystrokes.

Parameters
colorsa list of ManagedColor to use for the keystrokes.
transparentIndexindex of the color that should be marked as transparent.

This method is supposed to to initial initialization only!

It is necessary because the function also changes the color space and blending mode of the mask

TODO: inplement a proper API that modifies key strokes of a colorize mask without breaking undo history

Definition at line 51 of file ColorizeMask.cpp.

◆ keyStrokePixelData

QByteArray ColorizeMask::keyStrokePixelData ( ManagedColor color,
int  x,
int  y,
int  w,
int  h 
) const
slot

keyStrokePixelData reads the given rectangle from the keystroke image data and returns it as a byte array.

The pixel data starts top-left, and is ordered row-first.

Parameters
colora ManagedColor to get keystrokes pixeldata from.
xx position from where to start reading
yy position from where to start reading
wrow length to read
hnumber of rows to read
Returns
a QByteArray with the pixel data. The byte array may be empty.

Definition at line 104 of file ColorizeMask.cpp.

◆ keyStrokesColors

QList< ManagedColor * > ColorizeMask::keyStrokesColors ( ) const
slot

keyStrokesColors Colors used in the Colorize Mask's keystrokes.

Returns
a ManagedColor list containing the colors of keystrokes.

Definition at line 38 of file ColorizeMask.cpp.

◆ limitToDeviceBounds

bool ColorizeMask::limitToDeviceBounds ( ) const
slot

limitToDeviceBounds

Returns
true if limit bounds is enabled, false if disabled.

Definition at line 210 of file ColorizeMask.cpp.

◆ removeKeyStroke

void ColorizeMask::removeKeyStroke ( ManagedColor color)
slot

removeKeyStroke Remove a color from the Colorize Mask's keystrokes.

Parameters
colora ManagedColor to be removed from the keystrokes.

Definition at line 95 of file ColorizeMask.cpp.

◆ setCleanUpAmount

void ColorizeMask::setCleanUpAmount ( qreal  value)
slot

setCleanUpAmount This will attempt to handle messy strokes that overlap the line art where they shouldn't.

Parameters
valuea float value from 0.0 to 100.00 where 0.0 is no cleanup is done and 100.00 is most aggressive.

Definition at line 186 of file ColorizeMask.cpp.

◆ setEdgeDetectionSize

void ColorizeMask::setEdgeDetectionSize ( qreal  value)
slot

setEdgeDetectionSize Set the value to the thinnest line on the image.

Parameters
valuea float value of the edge size to detect in pixels.

Definition at line 170 of file ColorizeMask.cpp.

◆ setEditKeyStrokes

void ColorizeMask::setEditKeyStrokes ( bool  enabled)
slot

setEditKeyStrokes Toggle Colorize Mask's edit keystrokes mode.

Parameters
enabledset true to enable edit keystrokes mode and false to disable it.

Definition at line 262 of file ColorizeMask.cpp.

◆ setKeyStrokePixelData

bool ColorizeMask::setKeyStrokePixelData ( QByteArray  value,
ManagedColor color,
int  x,
int  y,
int  w,
int  h 
)
slot

setKeyStrokePixelData writes the given bytes, of which there must be enough, into the keystroke, the keystroke's original pixels are overwritten

Parameters
valuethe byte array representing the pixels. There must be enough bytes available. Krita will take the raw pointer from the QByteArray and start reading, not stopping before (number of channels * size of channel * w * h) bytes are read.
colora ManagedColor to set keystrokes pixeldata for.
xthe x position to start writing from
ythe y position to start writing from
wthe width of each row
hthe number of rows to write
Returns
true if writing the pixeldata worked

Definition at line 129 of file ColorizeMask.cpp.

◆ setLimitToDeviceBounds

void ColorizeMask::setLimitToDeviceBounds ( bool  value)
slot

setLimitToDeviceBounds Limit the colorize mask to the combined layer bounds of the strokes and the line art it is filling.

This can speed up the use of the mask on complicated compositions, such as comic pages.

Parameters
valueset true to enabled limit bounds, false to disable.

Definition at line 202 of file ColorizeMask.cpp.

◆ setShowOutput

void ColorizeMask::setShowOutput ( bool  enabled)
slot

setShowOutput Toggle Colorize Mask's show output mode.

Parameters
enabledset true to enable show coloring mode and false to disable it.

Definition at line 238 of file ColorizeMask.cpp.

◆ setUseEdgeDetection

void ColorizeMask::setUseEdgeDetection ( bool  value)
slot

setUseEdgeDetection Activate this for line art with large solid areas, for example shadows on an object.

Parameters
valuetrue to enable edge detection, false to disable.

Definition at line 154 of file ColorizeMask.cpp.

◆ showOutput

bool ColorizeMask::showOutput ( ) const
slot

showOutput Show output mode allows the user to see the result of the Colorize Mask's algorithm.

Returns
true if edit show coloring mode is enabled, false if disabled.

Definition at line 246 of file ColorizeMask.cpp.

◆ transparencyIndex

int ColorizeMask::transparencyIndex ( ) const
slot

transparencyIndex Index of the transparent color.

Returns
an integer containing the index of the current color marked as transparent.

Definition at line 87 of file ColorizeMask.cpp.

◆ type

QString ColorizeMask::type ( ) const
overridevirtualslot

type Krita has several types of nodes, split in layers and masks.

Group layers can contain other layers, any layer can contain masks.

Returns
colorizemask

If the Node object isn't wrapping a valid Krita layer or mask object, and empty string is returned.

Definition at line 286 of file ColorizeMask.cpp.

◆ updateMask

void ColorizeMask::updateMask ( bool  force = false)
slot

updateMask Process the Colorize Mask's keystrokes and generate a projection of the computed colors.

Parameters
forceforce an update

Definition at line 218 of file ColorizeMask.cpp.

◆ useEdgeDetection

bool ColorizeMask::useEdgeDetection ( ) const
slot

useEdgeDetection

Returns
true if Edge detection is enabled, false if disabled.

Definition at line 162 of file ColorizeMask.cpp.


The documentation for this class was generated from the following files:
Window * activeWindow() const
Definition: Krita.cpp:245
static Krita * instance()
instance retrieve the singleton instance of the Application object.
Definition: Krita.cpp:403
Krita is a singleton class that offers the root access to the Krita object hierarchy.
Definition: Krita.h:27
The ManagedColor class is a class to handle colors that are color managed.
Definition: ManagedColor.h:45
QByteArray fromBase64(const QByteArray &base64, QByteArray::Base64Options options)
Document * createDocument(int width, int height, const QString &name, const QString &colorModel, const QString &colorDepth, const QString &profile, double resolution)
Definition: Krita.cpp:329
void updateMask(bool force=false)
updateMask Process the Colorize Mask's keystrokes and generate a projection of the computed colors.
void setEditKeyStrokes(bool enabled)
setEditKeyStrokes Toggle Colorize Mask's edit keystrokes mode.
bool setKeyStrokePixelData(QByteArray value, ManagedColor *color, int x, int y, int w, int h)
setKeyStrokePixelData writes the given bytes, of which there must be enough, into the keystroke,...
KJOBWIDGETS_EXPORT QWidget * window(KJob *job)
This file is part of the KDE documentation.
Documentation copyright © 1996-2022 The KDE developers.
Generated on Tue Aug 16 2022 03:57:19 by doxygen 1.8.17 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.