Krita Source Code Documentation
Loading...
Searching...
No Matches
RgbU8ColorSpace.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2002 Patrick Julien <freak@codepimps.org>
3 *
4 * SPDX-License-Identifier: LGPL-2.1-or-later
5 */
6#ifndef KO_STRATEGY_COLORSPACE_RGB_H_
7#define KO_STRATEGY_COLORSPACE_RGB_H_
8
9#include <klocalizedstring.h>
10#include <LcmsColorSpace.h>
12
13struct KoBgrU8Traits;
14
15class RgbU8ColorSpace : public LcmsColorSpace<KoBgrU8Traits>
16{
17
18public:
19
20 RgbU8ColorSpace(const QString &name, KoColorProfile *p);
21
23 {
24 return false;
25 }
26
27 KoID colorModelId() const override
28 {
29 return RGBAColorModelID;
30 }
31
32 KoID colorDepthId() const override
33 {
35 }
36
37 virtual KoColorSpace *clone() const;
38
39 void colorToXML(const quint8 *pixel, QDomDocument &doc, QDomElement &colorElt) const override;
40
41 void colorFromXML(quint8 *pixel, const QDomElement &elt) const override;
42
43 quint8 intensity8(const quint8 * src) const override;
44 qreal intensityF(const quint8 * src) const override;
45
46 void toHSY(const QVector<double> &channelValues, qreal *hue, qreal *sat, qreal *luma) const override;
47 QVector <double> fromHSY(qreal *hue, qreal *sat, qreal *luma) const override;
48 void toYUV(const QVector<double> &channelValues, qreal *y, qreal *u, qreal *v) const override;
49 QVector <double> fromYUV(qreal *y, qreal *u, qreal *v) const override;
50
51 static QString colorSpaceId()
52 {
53 return QStringLiteral("RGBA");
54 }
55
56 void fillGrayBrushWithColorAndLightnessOverlay(quint8 *dst, const QRgb *brush, quint8 *brushColor, qint32 nPixels) const override;
57 void fillGrayBrushWithColorAndLightnessWithStrength(quint8* dst, const QRgb* brush, quint8* brushColor, qreal strength, qint32 nPixels) const override;
58 void modulateLightnessByGrayBrush(quint8 *dst, const QRgb *brush, qreal strength, qint32 nPixels) const override;
59};
60
62{
63
64public:
65
66 RgbU8ColorSpaceFactory() : LcmsColorSpaceFactory(TYPE_BGRA_8, cmsSigRgbData) {}
67
68 bool userVisible() const override
69 {
70 return true;
71 }
72
73 QString id() const override
74 {
76 }
77
78 QString name() const override
79 {
80 return QString("%1 (%2)").arg(RGBAColorModelID.name()).arg(Integer8BitsColorDepthID.name());
81 }
82
83 KoID colorModelId() const override
84 {
85 return RGBAColorModelID;
86 }
87
88 KoID colorDepthId() const override
89 {
91 }
92
93 int referenceDepth() const override
94 {
95 return 8;
96 }
97
99 {
100 return new RgbU8ColorSpace(name(), p->clone());
101 }
102
103 QString defaultProfile() const override
104 {
105 return "sRGB-elle-V2-srgbtrc.icc";
106 }
107};
108
109#endif // KO_STRATEGY_COLORSPACE_RGB_H_
const Params2D p
qreal v
qreal u
const KoID Integer8BitsColorDepthID("U8", ki18n("8-bit integer/channel"))
const KoID RGBAColorModelID("RGBA", ki18n("RGB/Alpha"))
ColorSpaceIndependence
Definition KoID.h:30
QString name() const
Definition KoID.cpp:68
bool userVisible() const override
int referenceDepth() const override
KoID colorDepthId() const override
KoID colorModelId() const override
KoColorSpace * createColorSpace(const KoColorProfile *p) const override
QString id() const override
QString name() const override
QString defaultProfile() const override
void colorFromXML(quint8 *pixel, const QDomElement &elt) const override
static QString colorSpaceId()
KoID colorDepthId() const override
QVector< double > fromYUV(qreal *y, qreal *u, qreal *v) const override
KoID colorModelId() const override
virtual KoColorSpace * clone() const
quint8 intensity8(const quint8 *src) const override
RgbU8ColorSpace(const QString &name, KoColorProfile *p)
void fillGrayBrushWithColorAndLightnessOverlay(quint8 *dst, const QRgb *brush, quint8 *brushColor, qint32 nPixels) const override
void toHSY(const QVector< double > &channelValues, qreal *hue, qreal *sat, qreal *luma) const override
void toYUV(const QVector< double > &channelValues, qreal *y, qreal *u, qreal *v) const override
qreal intensityF(const quint8 *src) const override
QVector< double > fromHSY(qreal *hue, qreal *sat, qreal *luma) const override
void colorToXML(const quint8 *pixel, QDomDocument &doc, QDomElement &colorElt) const override
void fillGrayBrushWithColorAndLightnessWithStrength(quint8 *dst, const QRgb *brush, quint8 *brushColor, qreal strength, qint32 nPixels) const override
void modulateLightnessByGrayBrush(quint8 *dst, const QRgb *brush, qreal strength, qint32 nPixels) const override
bool willDegrade(ColorSpaceIndependence) const override
unsigned int QRgb