Krita Source Code Documentation
Loading...
Searching...
No Matches
KoSimpleColorSpace< _CSTraits > Class Template Reference

#include <KoSimpleColorSpace.h>

+ Inheritance diagram for KoSimpleColorSpace< _CSTraits >:

Public Member Functions

KoID colorDepthId () const override
 
void colorFromXML (quint8 *, const QDomElement &) const override
 
KoID colorModelId () const override
 
virtual QString colorSpaceEngine () const
 
virtual quint32 colorSpaceType () const
 
void colorToXML (const quint8 *, QDomDocument &, QDomElement &) const override
 
bool convertPixelsTo (const quint8 *src, quint8 *dst, const KoColorSpace *dstColorSpace, quint32 numPixels, KoColorConversionTransformation::Intent renderingIntent, KoColorConversionTransformation::ConversionFlags conversionFlags) const override
 
KoColorTransformationcreateBrightnessContrastAdjustment (const quint16 *) const override
 
KoColorTransformationcreateDarkenAdjustment (qint32, bool, qreal) const override
 
virtual KoColorTransformationcreateDesaturateAdjustment () const
 
KoColorTransformationcreatePerChannelAdjustment (const quint16 *const *) const override
 
quint8 difference (const quint8 *src1, const quint8 *src2) const override
 
quint8 differenceA (const quint8 *src1, const quint8 *src2) const override
 
QVector< double > fromHSY (qreal *, qreal *, qreal *) const override
 
void fromLabA16 (const quint8 *src, quint8 *dst, quint32 nPixels) const override
 
void fromRgbA16 (const quint8 *src, quint8 *dst, quint32 nPixels) const override
 
QVector< double > fromYUV (qreal *, qreal *, qreal *) const override
 
bool hasHighDynamicRange () const override
 
virtual void invertColor (quint8 *, qint32) const
 
 KoSimpleColorSpace (const QString &id, const QString &name, const KoID &colorModelId, const KoID &colorDepthId)
 
const KoColorProfileprofile () const override
 
bool profileIsCompatible (const KoColorProfile *) const override
 
void toHSY (const QVector< double > &, qreal *, qreal *, qreal *) const override
 
void toLabA16 (const quint8 *src, quint8 *dst, quint32 nPixels) const override
 
void toRgbA16 (const quint8 *src, quint8 *dst, quint32 nPixels) const override
 
void toYUV (const QVector< double > &, qreal *, qreal *, qreal *) const override
 
bool willDegrade (ColorSpaceIndependence independence) const override
 
 ~KoSimpleColorSpace () override
 
- Public Member Functions inherited from KoColorSpaceAbstract< _CSTraits >
quint32 alphaPos () const override
 
void applyAlphaNormedFloatMask (quint8 *pixels, const float *alpha, qint32 nPixels) const override
 
void applyAlphaU8Mask (quint8 *pixels, const quint8 *alpha, qint32 nPixels) const override
 
void applyInverseAlphaU8Mask (quint8 *pixels, const quint8 *alpha, qint32 nPixels) const override
 
void applyInverseNormedFloatMask (quint8 *pixels, const float *alpha, qint32 nPixels) const override
 
quint32 channelCount () const override
 
QString channelValueText (const quint8 *pixel, quint32 channelIndex) const override
 
quint32 colorChannelCount () const override
 
void convertChannelToVisualRepresentation (const quint8 *src, quint8 *dst, quint32 nPixels, const QBitArray selectedChannels) const override
 
void convertChannelToVisualRepresentation (const quint8 *src, quint8 *dst, quint32 nPixels, const qint32 selectedChannelIndex) const override
 
void copyOpacityU8 (quint8 *src, quint8 *dst, qint32 nPixels) const override
 
KoColorTransformationcreateInvertTransformation () const override
 
void fillGrayBrushWithColor (quint8 *dst, const QRgb *brush, quint8 *brushColor, qint32 nPixels) const override
 
void fillInverseAlphaNormedFloatMaskWithColor (quint8 *pixels, const float *alpha, const quint8 *brushColor, qint32 nPixels) const override
 
void fromNormalisedChannelsValue (quint8 *pixel, const QVector< float > &values) const override
 
quint8 intensity8 (const quint8 *src) const override
 
qreal intensityF (const quint8 *src) const override
 
 KoColorSpaceAbstract (const QString &id, const QString &name)
 
void multiplyAlpha (quint8 *pixels, quint8 alpha, qint32 nPixels) const override
 
void normalisedChannelsValue (const quint8 *pixel, QVector< float > &channels) const override
 
QString normalisedChannelValueText (const quint8 *pixel, quint32 channelIndex) const override
 
qreal opacityF (const quint8 *U8_pixel) const override
 
quint8 opacityU8 (const quint8 *U8_pixel) const override
 
quint32 pixelSize () const override
 
quint8 scaleToU8 (const quint8 *srcPixel, qint32 channelIndex) const override
 
void setOpacity (quint8 *pixels, qreal alpha, qint32 nPixels) const override
 
void setOpacity (quint8 *pixels, quint8 alpha, qint32 nPixels) const override
 
void singleChannelPixel (quint8 *dstPixel, const quint8 *srcPixel, quint32 channelIndex) const override
 
void toQColor16 (const quint8 *src, QColor *c) const override
 
- Public Member Functions inherited from KoColorSpace
virtual void addCompositeOp (const KoCompositeOp *op)
 
virtual void addDitherOp (KisDitherOp *op)
 
virtual void bitBlt (const KoColorSpace *srcSpace, const KoCompositeOp::ParameterInfo &params, const KoCompositeOp *op, KoColorConversionTransformation::Intent renderingIntent, KoColorConversionTransformation::ConversionFlags conversionFlags) const
 
QBitArray channelFlags (bool color=true, bool alpha=false) const
 
QList< KoChannelInfo * > channels () const
 
const KoCompositeOpcompositeOp (const QString &id, const KoColorSpace *srcSpace=nullptr) const
 
virtual QList< KoCompositeOp * > compositeOps () const
 
virtual QImage convertToQImage (const quint8 *data, qint32 width, qint32 height, const KoColorProfile *dstProfile, KoColorConversionTransformation::Intent renderingIntent, KoColorConversionTransformation::ConversionFlags conversionFlags) const
 
virtual KoConvolutionOpconvolutionOp () const
 
virtual KoColorConversionTransformationcreateColorConverter (const KoColorSpace *dstColorSpace, KoColorConversionTransformation::Intent renderingIntent, KoColorConversionTransformation::ConversionFlags conversionFlags) const
 
KoColorTransformationcreateColorTransformation (const QString &id, const QHash< QString, QVariant > &parameters) const
 
virtual KoColorConversionTransformationcreateProofingTransform (const KoColorSpace *dstColorSpace, const KoColorSpace *proofingSpace, KoColorConversionTransformation::Intent renderingIntent, KoColorConversionTransformation::Intent proofingIntent, bool bpcFirstTransform, quint8 *gamutWarning, KoColorConversionTransformation::ConversionFlags displayConversionFlags) const
 createProofingTransform Create a proofing transform. This is a two part transform that can also do gamut checks. The first transform is from source -> proofing space. Here the gamut checks are performed. The second is the proofing to destination space.
 
virtual void decreaseHue (quint8 *pixel, qreal step) const
 
virtual void decreaseLuminosity (quint8 *pixel, qreal step) const
 
virtual void decreaseSaturation (quint8 *pixel, qreal step) const
 
virtual const KisDitherOpditherOp (const QString &depth, DitherType type) const
 
QPolygonF estimatedTRCXYY () const
 
virtual void fillGrayBrushWithColorAndLightnessOverlay (quint8 *dst, const QRgb *brush, quint8 *brushColor, qint32 nPixels) const
 
virtual void fillGrayBrushWithColorAndLightnessWithStrength (quint8 *dst, const QRgb *brush, quint8 *brushColor, qreal strength, qint32 nPixels) const
 
virtual void fromQColor (const QColor &color, quint8 *dst) const =0
 
QPolygonF gamutXYY () const
 
virtual bool hasCompositeOp (const QString &id, const KoColorSpace *srcSpace=nullptr) const
 
QString id () const
 
virtual void increaseBlue (quint8 *pixel, qreal step) const
 
virtual void increaseGreen (quint8 *pixel, qreal step) const
 
virtual void increaseHue (quint8 *pixel, qreal step) const
 
virtual void increaseLuminosity (quint8 *pixel, qreal step) const
 
virtual void increaseRed (quint8 *pixel, qreal step) const
 
virtual void increaseSaturation (quint8 *pixel, qreal step) const
 
virtual void increaseYellow (quint8 *pixel, qreal step) const
 
 KoColorSpace (const QString &id, const QString &name, KoMixColorsOp *mixColorsOp, KoConvolutionOp *convolutionOp)
 Should be called by real color spaces.
 
QVector< qreal > lumaCoefficients () const
 
virtual KoMixColorsOpmixColorsOp () const
 
virtual void modulateLightnessByGrayBrush (quint8 *dst, const QRgb *brush, qreal strength, qint32 nPixels) const
 
QString name () const
 
virtual bool operator== (const KoColorSpace &rhs) const
 
virtual bool proofPixelsTo (const quint8 *src, quint8 *dst, quint32 numPixels, KoColorConversionTransformation *proofingTransform) const
 proofPixelsTo
 
virtual void toQColor (const quint8 *src, QColor *c) const =0
 
virtual void transparentColor (quint8 *dst, quint32 nPixels) const
 
- Public Member Functions inherited from Private
 Private (KisCanvas2 *c)
 

Private Attributes

KoID m_colorDepthId
 
KoID m_colorModelId
 
QString m_name
 
KoColorProfilem_profile
 

Additional Inherited Members

- Public Types inherited from KoColorSpaceAbstract< _CSTraits >
typedef _CSTraits ColorSpaceTraits
 
- Public Attributes inherited from KoColorSpace
ThreadLocalCache channelFlagsApplicationCache
 
QList< KoChannelInfo * > channels
 
QVector< qreal > colorants
 
QHash< QString, KoCompositeOp * > compositeOps
 
ThreadLocalCache conversionCache
 
KoConvolutionOpconvolutionOp
 
Deletability deletability
 
QHash< QString, QMap< DitherType, KisDitherOp * > > ditherOps
 
QPolygonF gamutXYY
 
KoColorSpaceEngineiccEngine
 
QString id
 
quint32 idNumber
 
QVector< qreal > lumaCoefficients
 
KoMixColorsOpmixColorsOp
 
QString name
 
KoColorConversionTransformationtransfoFromLABA16
 
KoColorConversionTransformationtransfoFromRGBA16
 
KoColorConversionTransformationtransfoToLABA16
 
KoColorConversionTransformationtransfoToRGBA16
 
QPolygonF TRCXYY
 
- Public Attributes inherited from Private
KisCanvas2canvas
 
int displayedFrame
 
int intendedFrame
 
- Protected Member Functions inherited from KoColorSpace
virtual void addChannel (KoChannelInfo *ci)
 
const KoColorConversionTransformationfromLabA16Converter () const
 
const KoColorConversionTransformationfromRgbA16Converter () const
 
 KoColorSpace ()
 Only for use by classes that serve as baseclass for real color spaces.
 
virtual bool preferCompositionInSourceColorSpace () const
 
const KoColorConversionTransformationtoLabA16Converter () const
 
const KoColorConversionTransformationtoRgbA16Converter () const
 
virtual ~KoColorSpace ()
 
- Protected Attributes inherited from KoColorSpace
Private *const d
 

Detailed Description

template<class _CSTraits>
class KoSimpleColorSpace< _CSTraits >

Definition at line 20 of file KoSimpleColorSpace.h.

Constructor & Destructor Documentation

◆ KoSimpleColorSpace()

template<class _CSTraits >
KoSimpleColorSpace< _CSTraits >::KoSimpleColorSpace ( const QString & id,
const QString & name,
const KoID & colorModelId,
const KoID & colorDepthId )
inline

◆ ~KoSimpleColorSpace()

template<class _CSTraits >
KoSimpleColorSpace< _CSTraits >::~KoSimpleColorSpace ( )
inlineoverride

Definition at line 36 of file KoSimpleColorSpace.h.

36 {
37 delete m_profile;
38 }

References KoSimpleColorSpace< _CSTraits >::m_profile.

Member Function Documentation

◆ colorDepthId()

template<class _CSTraits >
KoID KoSimpleColorSpace< _CSTraits >::colorDepthId ( ) const
inlineoverridevirtual
Returns
a string that identify the bit depth (for instance "U8" or "F16" ...)
See also
KoColorModelStandardIds.h

Implements KoColorSpace.

Definition at line 44 of file KoSimpleColorSpace.h.

44 {
45 return m_colorDepthId;
46 }

References KoSimpleColorSpace< _CSTraits >::m_colorDepthId.

◆ colorFromXML()

template<class _CSTraits >
void KoSimpleColorSpace< _CSTraits >::colorFromXML ( quint8 * pixel,
const QDomElement & elt ) const
inlineoverridevirtual

Unserialize a color following Create's swatch color specification available at https://web.archive.org/web/20110826002520/http://create.freedesktop.org/wiki/Swatches_-_color_file_format/Draft

Parameters
pixelbuffer where the color will be unserialized
eltthe element to unserialize (<CMYK />, <sRGB />, <RGB />)
Returns
the unserialize color, or an empty color object if the function failed to unserialize the color

Implements KoColorSpace.

Definition at line 111 of file KoSimpleColorSpace.h.

111 {
112 warnPigment << i18n("Undefined operation in the %1 color space", m_name);
113 }
#define warnPigment

References KoSimpleColorSpace< _CSTraits >::m_name, and warnPigment.

◆ colorModelId()

template<class _CSTraits >
KoID KoSimpleColorSpace< _CSTraits >::colorModelId ( ) const
inlineoverridevirtual
Returns
a string that identify the color model (for instance "RGB" or "CMYK" ...)
See also
KoColorModelStandardIds.h

Implements KoColorSpace.

Definition at line 40 of file KoSimpleColorSpace.h.

40 {
41 return m_colorModelId;
42 }

References KoSimpleColorSpace< _CSTraits >::m_colorModelId.

◆ colorSpaceEngine()

template<class _CSTraits >
virtual QString KoSimpleColorSpace< _CSTraits >::colorSpaceEngine ( ) const
inlinevirtual

Definition at line 204 of file KoSimpleColorSpace.h.

204 {
205 return "simple";
206 }

◆ colorSpaceType()

template<class _CSTraits >
virtual quint32 KoSimpleColorSpace< _CSTraits >::colorSpaceType ( ) const
inlinevirtual

Definition at line 71 of file KoSimpleColorSpace.h.

71 {
72 return 0;
73 }

◆ colorToXML()

template<class _CSTraits >
void KoSimpleColorSpace< _CSTraits >::colorToXML ( const quint8 * pixel,
QDomDocument & doc,
QDomElement & colorElt ) const
inlineoverridevirtual

Serialize this color following Create's swatch color specification available at https://web.archive.org/web/20110826002520/http://create.freedesktop.org/wiki/Swatches_-_color_file_format/Draft

This function doesn't create the <color /> element but rather the <CMYK />, <sRGB />, <RGB /> ... elements. It is assumed that colorElt is the <color /> element.

Parameters
pixelbuffer to serialized
colorEltroot element for the serialization, it is assumed that this element is <color />
docis the document containing colorElt

Implements KoColorSpace.

Definition at line 107 of file KoSimpleColorSpace.h.

107 {
108 warnPigment << i18n("Undefined operation in the %1 color space", m_name);
109 }

References KoSimpleColorSpace< _CSTraits >::m_name, and warnPigment.

◆ convertPixelsTo()

template<class _CSTraits >
bool KoSimpleColorSpace< _CSTraits >::convertPixelsTo ( const quint8 * src,
quint8 * dst,
const KoColorSpace * dstColorSpace,
quint32 numPixels,
KoColorConversionTransformation::Intent renderingIntent,
KoColorConversionTransformation::ConversionFlags conversionFlags ) const
inlineoverridevirtual

Convert a byte array of srcLen pixels *src to the specified color space and put the converted bytes into the prepared byte array *dst.

Returns false if the conversion failed, true if it succeeded

This function is not thread-safe. If you want to apply multiple conversion in different threads at the same time, you need to create one color converter per-thread using createColorConverter.

Reimplemented from KoColorSpace.

Definition at line 177 of file KoSimpleColorSpace.h.

182 {
183 Q_UNUSED(renderingIntent);
184 Q_UNUSED(conversionFlags);
185
186 QColor c;
187 quint32 srcPixelsize = this->pixelSize();
188 quint32 dstPixelsize = dstColorSpace->pixelSize();
189
190 while (numPixels > 0) {
191
192 this->toQColor(src, &c);
193 dstColorSpace->fromQColor(c, dst);
194
195 src += srcPixelsize;
196 dst += dstPixelsize;
197
198 --numPixels;
199 }
200 return true;
201 }
virtual quint32 pixelSize() const =0
virtual void toQColor(const quint8 *src, QColor *c) const =0
virtual void fromQColor(const QColor &color, quint8 *dst) const =0

References KoColorSpace::fromQColor(), KoColorSpace::pixelSize(), KoColorSpaceAbstract< _CSTraits >::pixelSize(), and KoColorSpace::toQColor().

◆ createBrightnessContrastAdjustment()

template<class _CSTraits >
KoColorTransformation * KoSimpleColorSpace< _CSTraits >::createBrightnessContrastAdjustment ( const quint16 * transferValues) const
inlineoverridevirtual

Create an adjustment object for adjusting the brightness and contrast transferValues is a 256 bins array with values from 0 to 0xFFFF This function is thread-safe, but you need to create one KoColorTransformation per thread.

Implements KoColorSpace.

Definition at line 83 of file KoSimpleColorSpace.h.

83 {
84 warnPigment << i18n("Undefined operation in the %1 color space", m_name);
85 return 0;
86 }

References KoSimpleColorSpace< _CSTraits >::m_name, and warnPigment.

◆ createDarkenAdjustment()

template<class _CSTraits >
KoColorTransformation * KoSimpleColorSpace< _CSTraits >::createDarkenAdjustment ( qint32 shade,
bool compensate,
qreal compensation ) const
inlineoverridevirtual

Darken all color channels with the given amount. If compensate is true, the compensation factor will be used to limit the darkening.

Reimplemented from KoColorSpaceAbstract< _CSTraits >.

Definition at line 98 of file KoSimpleColorSpace.h.

98 {
99 warnPigment << i18n("Undefined operation in the %1 color space", m_name);
100 return 0;
101 }

References KoSimpleColorSpace< _CSTraits >::m_name, and warnPigment.

◆ createDesaturateAdjustment()

template<class _CSTraits >
virtual KoColorTransformation * KoSimpleColorSpace< _CSTraits >::createDesaturateAdjustment ( ) const
inlinevirtual

Definition at line 88 of file KoSimpleColorSpace.h.

88 {
89 warnPigment << i18n("Undefined operation in the %1 color space", m_name);
90 return 0;
91 }

References KoSimpleColorSpace< _CSTraits >::m_name, and warnPigment.

◆ createPerChannelAdjustment()

template<class _CSTraits >
KoColorTransformation * KoSimpleColorSpace< _CSTraits >::createPerChannelAdjustment ( const quint16 *const * transferValues) const
inlineoverridevirtual

Create an adjustment object for adjusting individual channels transferValues is an array of colorChannelCount number of 256 bins array with values from 0 to 0xFFFF This function is thread-safe, but you need to create one KoColorTransformation per thread.

The layout of the channels must be the following:

0..N-2 - color channels of the pixel; N-1 - alpha channel of the pixel (if exists)

Implements KoColorSpace.

Definition at line 93 of file KoSimpleColorSpace.h.

93 {
94 warnPigment << i18n("Undefined operation in the %1 color space", m_name);
95 return 0;
96 }

References KoSimpleColorSpace< _CSTraits >::m_name, and warnPigment.

◆ difference()

template<class _CSTraits >
quint8 KoSimpleColorSpace< _CSTraits >::difference ( const quint8 * src1,
const quint8 * src2 ) const
inlineoverridevirtual

Get the difference between 2 colors, normalized in the range (0,255). Only completely opaque and completely transparent are taken into account when computing the difference; other transparency levels are not regarded when finding the difference.

Completely transparent pixels are treated as if they are completely different from any non-transparent pixels.

Implements KoColorSpace.

Definition at line 57 of file KoSimpleColorSpace.h.

57 {
58 Q_UNUSED(src1);
59 Q_UNUSED(src2);
60 warnPigment << i18n("Undefined operation in the %1 space", m_name);
61 return 0;
62 }

References KoSimpleColorSpace< _CSTraits >::m_name, and warnPigment.

◆ differenceA()

template<class _CSTraits >
quint8 KoSimpleColorSpace< _CSTraits >::differenceA ( const quint8 * src1,
const quint8 * src2 ) const
inlineoverridevirtual

Get the difference between 2 colors, normalized in the range (0,255). This function takes the Alpha channel of the pixel into account. Alpha channel has the same weight as Lightness channel.

Completely transparent pixels are treated as if their color channels are the same as ones of the other pixel. In other words, only alpha channel difference is compared.

Implements KoColorSpace.

Definition at line 64 of file KoSimpleColorSpace.h.

64 {
65 Q_UNUSED(src1);
66 Q_UNUSED(src2);
67 warnPigment << i18n("Undefined operation in the %1 space", m_name);
68 return 0;
69 }

References KoSimpleColorSpace< _CSTraits >::m_name, and warnPigment.

◆ fromHSY()

template<class _CSTraits >
QVector< double > KoSimpleColorSpace< _CSTraits >::fromHSY ( qreal * ,
qreal * ,
qreal *  ) const
inlineoverridevirtual

Implements KoColorSpace.

Definition at line 117 of file KoSimpleColorSpace.h.

117 {
118 warnPigment << i18n("Undefined operation in the %1 color space", m_name);
119 QVector <double> channelValues (2);
120 channelValues.fill(0.0);
121 return channelValues;
122 }

References KoSimpleColorSpace< _CSTraits >::m_name, and warnPigment.

◆ fromLabA16()

template<class _CSTraits >
void KoSimpleColorSpace< _CSTraits >::fromLabA16 ( const quint8 * src,
quint8 * dst,
quint32 nPixels ) const
inlineoverridevirtual

Convert the specified data from Lab (D50). to this colorspace. All colorspaces are guaranteed to support this.

Parameters
srcthe pixels in 16 bit lab format
dstthe destination data
nPixelsthe number of pixels in the array

Reimplemented from KoColorSpace.

Definition at line 144 of file KoSimpleColorSpace.h.

144 {
146 memcpy(dst, src, nPixels * 2);
147 } else {
149 srcCs->convertPixelsTo(src, dst, this, nPixels,
152 }
153 }
const KoID Integer16BitsColorDepthID("U16", ki18n("16-bit integer/channel"))
const KoID LABAColorModelID("LABA", ki18n("L*a*b*/Alpha"))
virtual bool convertPixelsTo(const quint8 *src, quint8 *dst, const KoColorSpace *dstColorSpace, quint32 numPixels, KoColorConversionTransformation::Intent renderingIntent, KoColorConversionTransformation::ConversionFlags conversionFlags) const
const KoColorSpace * lab16(const QString &profileName=QString())
static KoColorSpaceRegistry * instance()

References KoSimpleColorSpace< _CSTraits >::colorDepthId(), KoSimpleColorSpace< _CSTraits >::colorModelId(), KoColorSpace::convertPixelsTo(), KoColorSpaceRegistry::instance(), Integer16BitsColorDepthID, KoColorConversionTransformation::internalConversionFlags(), KoColorConversionTransformation::internalRenderingIntent(), KoColorSpaceRegistry::lab16(), and LABAColorModelID.

◆ fromRgbA16()

template<class _CSTraits >
void KoSimpleColorSpace< _CSTraits >::fromRgbA16 ( const quint8 * src,
quint8 * dst,
quint32 nPixels ) const
inlineoverridevirtual

Convert the specified data from sRGB 16 bits. to this colorspace. All colorspaces are guaranteed to support this.

Parameters
srcthe pixels in 16 bit rgb format
dstthe destination data
nPixelsthe number of pixels in the array

Reimplemented from KoColorSpace.

Definition at line 166 of file KoSimpleColorSpace.h.

166 {
168 memcpy(dst, src, nPixels * 2);
169 } else {
171 srcCs->convertPixelsTo(src, dst, this, nPixels,
174 }
175 }
const KoID RGBAColorModelID("RGBA", ki18n("RGB/Alpha"))
const KoColorSpace * rgb16(const QString &profileName=QString())

References KoSimpleColorSpace< _CSTraits >::colorDepthId(), KoSimpleColorSpace< _CSTraits >::colorModelId(), KoColorSpace::convertPixelsTo(), KoColorSpaceRegistry::instance(), Integer16BitsColorDepthID, KoColorConversionTransformation::internalConversionFlags(), KoColorConversionTransformation::internalRenderingIntent(), KoColorSpaceRegistry::rgb16(), and RGBAColorModelID.

◆ fromYUV()

template<class _CSTraits >
QVector< double > KoSimpleColorSpace< _CSTraits >::fromYUV ( qreal * ,
qreal * ,
qreal *  ) const
inlineoverridevirtual

Implements KoColorSpace.

Definition at line 126 of file KoSimpleColorSpace.h.

126 {
127 warnPigment << i18n("Undefined operation in the %1 color space", m_name);
128 QVector <double> channelValues (2);
129 channelValues.fill(0.0);
130 return channelValues;
131 }

References KoSimpleColorSpace< _CSTraits >::m_name, and warnPigment.

◆ hasHighDynamicRange()

template<class _CSTraits >
bool KoSimpleColorSpace< _CSTraits >::hasHighDynamicRange ( ) const
inlineoverridevirtual

Returns true if the colorspace supports channel values outside the (normalised) range 0 to 1.

Implements KoColorSpace.

Definition at line 75 of file KoSimpleColorSpace.h.

75 {
76 return false;
77 }

◆ invertColor()

template<class _CSTraits >
virtual void KoSimpleColorSpace< _CSTraits >::invertColor ( quint8 * ,
qint32  ) const
inlinevirtual

Definition at line 103 of file KoSimpleColorSpace.h.

103 {
104 warnPigment << i18n("Undefined operation in the %1 color space", m_name);
105 }

References KoSimpleColorSpace< _CSTraits >::m_name, and warnPigment.

◆ profile()

template<class _CSTraits >
const KoColorProfile * KoSimpleColorSpace< _CSTraits >::profile ( ) const
inlineoverridevirtual

Return the profile of this color space.

Implements KoColorSpace.

Definition at line 79 of file KoSimpleColorSpace.h.

79 {
80 return m_profile;
81 }

References KoSimpleColorSpace< _CSTraits >::m_profile.

◆ profileIsCompatible()

template<class _CSTraits >
bool KoSimpleColorSpace< _CSTraits >::profileIsCompatible ( const KoColorProfile * profile) const
inlineoverridevirtual
Returns
true if the profile given in argument can be used by this color space

Implements KoColorSpace.

Definition at line 53 of file KoSimpleColorSpace.h.

53 {
54 return true;
55 }

◆ toHSY()

template<class _CSTraits >
void KoSimpleColorSpace< _CSTraits >::toHSY ( const QVector< double > & ,
qreal * ,
qreal * ,
qreal *  ) const
inlineoverridevirtual

Implements KoColorSpace.

Definition at line 114 of file KoSimpleColorSpace.h.

114 {
115 warnPigment << i18n("Undefined operation in the %1 color space", m_name);
116 }

References KoSimpleColorSpace< _CSTraits >::m_name, and warnPigment.

◆ toLabA16()

template<class _CSTraits >
void KoSimpleColorSpace< _CSTraits >::toLabA16 ( const quint8 * src,
quint8 * dst,
quint32 nPixels ) const
inlineoverridevirtual

Convert the specified data to Lab (D50). All colorspaces are guaranteed to support this

Parameters
srcthe source data
dstthe destination data
nPixelsthe number of source pixels

Reimplemented from KoColorSpace.

Definition at line 133 of file KoSimpleColorSpace.h.

133 {
135 memcpy(dst, src, nPixels * 2);
136 } else {
138 convertPixelsTo(src, dst, dstCs, nPixels,
141 }
142 }
bool convertPixelsTo(const quint8 *src, quint8 *dst, const KoColorSpace *dstColorSpace, quint32 numPixels, KoColorConversionTransformation::Intent renderingIntent, KoColorConversionTransformation::ConversionFlags conversionFlags) const override

References KoSimpleColorSpace< _CSTraits >::colorDepthId(), KoSimpleColorSpace< _CSTraits >::colorModelId(), KoSimpleColorSpace< _CSTraits >::convertPixelsTo(), KoColorSpaceRegistry::instance(), Integer16BitsColorDepthID, KoColorConversionTransformation::internalConversionFlags(), KoColorConversionTransformation::internalRenderingIntent(), KoColorSpaceRegistry::lab16(), and LABAColorModelID.

◆ toRgbA16()

template<class _CSTraits >
void KoSimpleColorSpace< _CSTraits >::toRgbA16 ( const quint8 * src,
quint8 * dst,
quint32 nPixels ) const
inlineoverridevirtual

Convert the specified data to sRGB 16 bits. All colorspaces are guaranteed to support this

Parameters
srcthe source data
dstthe destination data
nPixelsthe number of source pixels

Reimplemented from KoColorSpace.

Definition at line 155 of file KoSimpleColorSpace.h.

155 {
157 memcpy(dst, src, nPixels * 2);
158 } else {
160 convertPixelsTo(src, dst, dstCs, nPixels,
163 }
164 }

References KoSimpleColorSpace< _CSTraits >::colorDepthId(), KoSimpleColorSpace< _CSTraits >::colorModelId(), KoSimpleColorSpace< _CSTraits >::convertPixelsTo(), KoColorSpaceRegistry::instance(), Integer16BitsColorDepthID, KoColorConversionTransformation::internalConversionFlags(), KoColorConversionTransformation::internalRenderingIntent(), KoColorSpaceRegistry::rgb16(), and RGBAColorModelID.

◆ toYUV()

template<class _CSTraits >
void KoSimpleColorSpace< _CSTraits >::toYUV ( const QVector< double > & ,
qreal * ,
qreal * ,
qreal *  ) const
inlineoverridevirtual

Implements KoColorSpace.

Definition at line 123 of file KoSimpleColorSpace.h.

123 {
124 warnPigment << i18n("Undefined operation in the %1 color space", m_name);
125 }

References KoSimpleColorSpace< _CSTraits >::m_name, and warnPigment.

◆ willDegrade()

template<class _CSTraits >
bool KoSimpleColorSpace< _CSTraits >::willDegrade ( ColorSpaceIndependence independence) const
inlineoverridevirtual

If false, images in this colorspace will degrade considerably by functions, tools and filters that have the given measure of colorspace independence.

Parameters
independencethe measure to which this colorspace will suffer from the manipulations of the tool or filter asking
Returns
false if no degradation will take place, true if degradation will take place

Implements KoColorSpace.

Definition at line 48 of file KoSimpleColorSpace.h.

48 {
49 Q_UNUSED(independence);
50 return false;
51 }

Member Data Documentation

◆ m_colorDepthId

template<class _CSTraits >
KoID KoSimpleColorSpace< _CSTraits >::m_colorDepthId
private

Definition at line 211 of file KoSimpleColorSpace.h.

◆ m_colorModelId

template<class _CSTraits >
KoID KoSimpleColorSpace< _CSTraits >::m_colorModelId
private

Definition at line 210 of file KoSimpleColorSpace.h.

◆ m_name

template<class _CSTraits >
QString KoSimpleColorSpace< _CSTraits >::m_name
private

Definition at line 209 of file KoSimpleColorSpace.h.

◆ m_profile

template<class _CSTraits >
KoColorProfile* KoSimpleColorSpace< _CSTraits >::m_profile
private

Definition at line 212 of file KoSimpleColorSpace.h.


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