25 enum NamedColorSpace {
35 Q_ENUM(NamedColorSpace)
36 enum class Primaries {
45 enum class TransferFunction {
55 Q_ENUM(TransferFunction)
56 enum class TransformModel : uint8_t {
57 ThreeComponentMatrix = 0,
58 ElementListProcessing,
60 Q_ENUM(TransformModel)
61 enum class ColorModel : uint8_t {
71 Q_GUI_EXPORT
static PrimaryPoints fromPrimaries(Primaries primaries);
72 Q_GUI_EXPORT
bool isValid()
const noexcept;
79 QColorSpace()
noexcept =
default;
80 QColorSpace(NamedColorSpace namedColorSpace);
81 explicit QColorSpace(QPointF whitePoint, TransferFunction transferFunction,
float gamma = 0.0f);
82 explicit QColorSpace(QPointF whitePoint,
const QList<uint16_t> &transferFunctionTable);
83 QColorSpace(Primaries primaries, TransferFunction transferFunction,
float gamma = 0.0f);
84 QColorSpace(Primaries primaries,
float gamma);
85 QColorSpace(Primaries primaries,
const QList<uint16_t> &transferFunctionTable);
86 QColorSpace(
const QPointF &whitePoint,
const QPointF &redPoint,
87 const QPointF &greenPoint,
const QPointF &bluePoint,
88 TransferFunction transferFunction,
float gamma = 0.0f);
89 QColorSpace(
const PrimaryPoints &primaryPoints,
90 TransferFunction transferFunction,
float gamma = 0.0f);
91 QColorSpace(
const QPointF &whitePoint,
const QPointF &redPoint,
92 const QPointF &greenPoint,
const QPointF &bluePoint,
93 const QList<uint16_t> &transferFunctionTable);
94 QColorSpace(
const QPointF &whitePoint,
const QPointF &redPoint,
95 const QPointF &greenPoint,
const QPointF &bluePoint,
96 const QList<uint16_t> &redTransferFunctionTable,
97 const QList<uint16_t> &greenTransferFunctionTable,
98 const QList<uint16_t> &blueTransferFunctionTable);
101 QColorSpace(
const QColorSpace &colorSpace)
noexcept;
102 QColorSpace &operator=(
const QColorSpace &colorSpace)
noexcept
104 QColorSpace copy(colorSpace);
109 QColorSpace(QColorSpace &&colorSpace)
noexcept =
default;
110 QT_MOVE_ASSIGNMENT_OPERATOR_IMPL_VIA_MOVE_AND_SWAP(QColorSpace)
112 void swap(QColorSpace &colorSpace)
noexcept
113 { d_ptr.swap(colorSpace.d_ptr); }
115 Primaries primaries()
const noexcept;
116 TransferFunction transferFunction()
const noexcept;
117 float gamma()
const noexcept;
119 QString description()
const noexcept;
120 void setDescription(
const QString &description);
122 void setTransferFunction(TransferFunction transferFunction,
float gamma = 0.0f);
123 void setTransferFunction(
const QList<uint16_t> &transferFunctionTable);
124 void setTransferFunctions(
const QList<uint16_t> &redTransferFunctionTable,
125 const QList<uint16_t> &greenTransferFunctionTable,
126 const QList<uint16_t> &blueTransferFunctionTable);
127 QColorSpace withTransferFunction(TransferFunction transferFunction,
float gamma = 0.0f)
const;
128 QColorSpace withTransferFunction(
const QList<uint16_t> &transferFunctionTable)
const;
129 QColorSpace withTransferFunctions(
const QList<uint16_t> &redTransferFunctionTable,
130 const QList<uint16_t> &greenTransferFunctionTable,
131 const QList<uint16_t> &blueTransferFunctionTable)
const;
133 void setPrimaries(Primaries primariesId);
134 void setPrimaries(
const QPointF &whitePoint,
const QPointF &redPoint,
135 const QPointF &greenPoint,
const QPointF &bluePoint);
136 void setWhitePoint(QPointF whitePoint);
137 QPointF whitePoint()
const;
138 void setPrimaryPoints(
const PrimaryPoints &primaryPoints);
139 PrimaryPoints primaryPoints()
const;
141 TransformModel transformModel()
const noexcept;
142 ColorModel colorModel()
const noexcept;
144 bool isValid()
const noexcept;
145 bool isValidTarget()
const noexcept;
147 friend inline bool operator==(
const QColorSpace &colorSpace1,
const QColorSpace &colorSpace2)
148 {
return colorSpace1.equals(colorSpace2); }
149 friend inline bool operator!=(
const QColorSpace &colorSpace1,
const QColorSpace &colorSpace2)
150 {
return !(colorSpace1 == colorSpace2); }
152 static QColorSpace fromIccProfile(
const QByteArray &iccProfile);
153 QByteArray iccProfile()
const;
155 QColorTransform transformationToColorSpace(
const QColorSpace &colorspace)
const;
157 operator QVariant()
const;
160 friend class QColorSpacePrivate;
161 bool equals(
const QColorSpace &other)
const;
163 QExplicitlySharedDataPointer<QColorSpacePrivate> d_ptr;
165#ifndef QT_NO_DEBUG_STREAM
166 friend Q_GUI_EXPORT QDebug operator<<(QDebug dbg,
const QColorSpace &colorSpace);