Krita Source Code Documentation
Loading...
Searching...
No Matches
GrayF16ColorSpace.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2004-2006 Cyrille Berger <cberger@cberger.net>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6#ifndef COLORSPACE_GRAYSCALE_F16_H_
7#define COLORSPACE_GRAYSCALE_F16_H_
8
9#include <klocalizedstring.h>
11#include "LcmsColorSpace.h"
12
13#define TYPE_GRAYA_HALF_FLT (FLOAT_SH(1)|COLORSPACE_SH(PT_GRAY)|EXTRA_SH(1)|CHANNELS_SH(1)|BYTES_SH(2))
14
15struct KoGrayF16Traits;
16
17class GrayF16ColorSpace : public LcmsColorSpace<KoGrayF16Traits>
18{
19public:
20 GrayF16ColorSpace(const QString &name, KoColorProfile *p);
21
23 {
24 return false;
25 }
26
27 KoID colorModelId() const override
28 {
29 return GrayAColorModelID;
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 void toHSY(const QVector<double> &channelValues, qreal *hue, qreal *sat, qreal *luma) const override;
44 QVector <double> fromHSY(qreal *hue, qreal *sat, qreal *luma) const override;
45 void toYUV(const QVector<double> &channelValues, qreal *y, qreal *u, qreal *v) const override;
46 QVector <double> fromYUV(qreal *y, qreal *u, qreal *v) const override;
47
48 static QString colorSpaceId()
49 {
50 return QStringLiteral("GRAYAF16");
51 }
52
53 bool hasHighDynamicRange() const override
54 {
55 return true;
56 }
57};
58
60{
61public:
66
67 QString id() const override
68 {
70 }
71
72 QString name() const override
73 {
74 return QString("%1 (%2)").arg(GrayAColorModelID.name()).arg(Float16BitsColorDepthID.name());
75 }
76
77 KoID colorModelId() const override
78 {
79 return GrayAColorModelID;
80 }
81
82 KoID colorDepthId() const override
83 {
85 }
86
87 int referenceDepth() const override
88 {
89 return 16;
90 }
91
92 bool userVisible() const override
93 {
94 return true;
95 }
96
98 {
99 return new GrayF16ColorSpace(name(), p->clone());
100 }
101
102 QString defaultProfile() const override
103 {
104 return "Gray-D50-elle-V2-g10.icc";
105 }
106
107 bool isHdr() const override
108 {
109 return true;
110 }
111};
112
113#endif // KIS_STRATEGY_COLORSPACE_GRAYSCALE_H_
#define TYPE_GRAYA_HALF_FLT
const Params2D p
qreal v
qreal u
const KoID GrayAColorModelID("GRAYA", ki18n("Grayscale/Alpha"))
const KoID Float16BitsColorDepthID("F16", ki18n("16-bit float/channel"))
ColorSpaceIndependence
QString name() const override
KoColorSpace * createColorSpace(const KoColorProfile *p) const override
bool isHdr() const override
bool userVisible() const override
KoID colorDepthId() const override
KoID colorModelId() const override
QString defaultProfile() const override
int referenceDepth() const override
QString id() const override
GrayF16ColorSpace(const QString &name, KoColorProfile *p)
virtual KoColorSpace * clone() const
QVector< double > fromYUV(qreal *y, qreal *u, qreal *v) const override
static QString colorSpaceId()
void toHSY(const QVector< double > &channelValues, qreal *hue, qreal *sat, qreal *luma) const override
void colorToXML(const quint8 *pixel, QDomDocument &doc, QDomElement &colorElt) const override
void toYUV(const QVector< double > &channelValues, qreal *y, qreal *u, qreal *v) const override
bool hasHighDynamicRange() const override
bool willDegrade(ColorSpaceIndependence) const override
KoID colorModelId() const override
void colorFromXML(quint8 *pixel, const QDomElement &elt) const override
QVector< double > fromHSY(qreal *hue, qreal *sat, qreal *luma) const override
KoID colorDepthId() const override
Definition KoID.h:30
QString name() const
Definition KoID.cpp:68