Krita Source Code Documentation
Loading...
Searching...
No Matches
LabF32ColorSpace.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2006 Cyrille Berger <cberger@cberger.net>
3 *
4 * SPDX-License-Identifier: LGPL-2.1-or-later
5*/
6
7#ifndef LabF32ColorSpace_H_
8#define LabF32ColorSpace_H_
9
10#include "LcmsColorSpace.h"
12
28struct KoLabF32Traits;
29
30class LabF32ColorSpace : public LcmsColorSpace<KoLabF32Traits>
31{
32public:
33 LabF32ColorSpace(const QString &name, KoColorProfile *p);
34
35 bool willDegrade(ColorSpaceIndependence independence) const override;
36
37 static QString colorSpaceId()
38 {
39 return QStringLiteral("LABAF32");
40 }
41
42 KoID colorModelId() const override
43 {
44 return LABAColorModelID;
45 }
46
47 KoID colorDepthId() const override
48 {
50 }
51
52 virtual KoColorSpace *clone() const;
53
54 void colorToXML(const quint8 *pixel, QDomDocument &doc, QDomElement &colorElt) const override;
55
56 void colorFromXML(quint8* pixel, const QDomElement& elt) const override;
57 void toHSY(const QVector<double> &channelValues, qreal *hue, qreal *sat, qreal *luma) const override;
58 QVector <double> fromHSY(qreal *hue, qreal *sat, qreal *luma) const override;
59 void toYUV(const QVector<double> &channelValues, qreal *y, qreal *u, qreal *v) const override;
60 QVector <double> fromYUV(qreal *y, qreal *u, qreal *v) const override;
61 quint8 scaleToU8(const quint8 * srcPixel, qint32 channelIndex) const override;
62 void convertChannelToVisualRepresentation(const quint8 *src, quint8 *dst, quint32 nPixels, const qint32 selectedChannelIndex) const override;
63 void convertChannelToVisualRepresentation(const quint8 *src, quint8 *dst, quint32 nPixels, const QBitArray selectedChannels) const override;
64
65 bool hasHighDynamicRange() const override
66 {
67 return true;
68 }
69};
70
72{
73public:
75 : LcmsColorSpaceFactory(TYPE_LabA_FLT, cmsSigLabData)
76 {
77 }
78
79 bool userVisible() const override
80 {
81 return true;
82 }
83
84 QString id() const override
85 {
87 }
88
89 QString name() const override
90 {
91 return QString("%1 (%2)").arg(LABAColorModelID.name()).arg(Float32BitsColorDepthID.name());
92 }
93
94 KoID colorModelId() const override
95 {
96 return LABAColorModelID;
97 }
98
99 KoID colorDepthId() const override
100 {
102
103 }
104 int referenceDepth() const override
105 {
106 return 32;
107 }
108
110 {
111 return new LabF32ColorSpace(name(), p->clone());
112 }
113
114 QString defaultProfile() const override
115 {
116 return "Lab identity built-in";
117 }
118
119 bool isHdr() const override
120 {
121 return true;
122 }
123};
124
125#endif
const Params2D p
qreal v
qreal u
const KoID Float32BitsColorDepthID("F32", ki18n("32-bit float/channel"))
const KoID LABAColorModelID("LABA", ki18n("L*a*b*/Alpha"))
ColorSpaceIndependence
Definition KoID.h:30
QString name() const
Definition KoID.cpp:68
bool isHdr() const override
KoID colorModelId() const override
bool userVisible() const override
KoID colorDepthId() const override
QString name() const override
int referenceDepth() const override
QString defaultProfile() const override
QString id() const override
KoColorSpace * createColorSpace(const KoColorProfile *p) const override
static QString colorSpaceId()
void convertChannelToVisualRepresentation(const quint8 *src, quint8 *dst, quint32 nPixels, const qint32 selectedChannelIndex) const override
QVector< double > fromYUV(qreal *y, qreal *u, qreal *v) const override
void toYUV(const QVector< double > &channelValues, qreal *y, qreal *u, qreal *v) const override
LabF32ColorSpace(const QString &name, KoColorProfile *p)
void colorFromXML(quint8 *pixel, const QDomElement &elt) const override
bool hasHighDynamicRange() const override
void toHSY(const QVector< double > &channelValues, qreal *hue, qreal *sat, qreal *luma) const override
virtual KoColorSpace * clone() const
void colorToXML(const quint8 *pixel, QDomDocument &doc, QDomElement &colorElt) const override
quint8 scaleToU8(const quint8 *srcPixel, qint32 channelIndex) const override
QVector< double > fromHSY(qreal *hue, qreal *sat, qreal *luma) const override
KoID colorModelId() const override
KoID colorDepthId() const override
bool willDegrade(ColorSpaceIndependence independence) const override