Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
qcolorspace.h
Go to the documentation of this file.
1// Copyright (C) 2018 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4#ifndef QCOLORSPACE_H
5#define QCOLORSPACE_H
6
7#include <QtGui/qtguiglobal.h>
8#include <QtGui/qcolortransform.h>
9#include <QtCore/qobjectdefs.h>
10#include <QtCore/qshareddata.h>
11#include <QtCore/qvariant.h>
12
14
16class QPointF;
17
19
20class Q_GUI_EXPORT QColorSpace
21{
23public:
25 SRgb = 1,
29 ProPhotoRgb
30 };
31 Q_ENUM(NamedColorSpace)
32 enum class Primaries {
33 Custom = 0,
34 SRgb,
35 AdobeRgb,
36 DciP3D65,
37 ProPhotoRgb
38 };
39 Q_ENUM(Primaries)
40 enum class TransferFunction {
41 Custom = 0,
42 Linear,
43 Gamma,
44 SRgb,
45 ProPhotoRgb
46 };
47 Q_ENUM(TransferFunction)
48 enum class TransformModel : uint8_t {
49 ThreeComponentMatrix = 0,
50 ElementListProcessing,
51 };
52 Q_ENUM(TransformModel)
53 enum class ColorModel : uint8_t {
54 Undefined = 0,
55 Rgb = 1,
56 Gray = 2,
57 Cmyk = 3,
58 };
59 Q_ENUM(ColorModel)
60
61 QColorSpace() noexcept = default;
62 QColorSpace(NamedColorSpace namedColorSpace);
63 QColorSpace(const QPointF &whitePoint, TransferFunction transferFunction, float gamma = 0.0f);
64 QColorSpace(const QPointF &whitePoint, const QList<uint16_t> &transferFunctionTable);
65 QColorSpace(Primaries primaries, TransferFunction transferFunction, float gamma = 0.0f);
66 QColorSpace(Primaries primaries, float gamma);
67 QColorSpace(Primaries primaries, const QList<uint16_t> &transferFunctionTable);
68 QColorSpace(const QPointF &whitePoint, const QPointF &redPoint,
69 const QPointF &greenPoint, const QPointF &bluePoint,
70 TransferFunction transferFunction, float gamma = 0.0f);
71 QColorSpace(const QPointF &whitePoint, const QPointF &redPoint,
72 const QPointF &greenPoint, const QPointF &bluePoint,
73 const QList<uint16_t> &transferFunctionTable);
74 QColorSpace(const QPointF &whitePoint, const QPointF &redPoint,
75 const QPointF &greenPoint, const QPointF &bluePoint,
76 const QList<uint16_t> &redTransferFunctionTable,
77 const QList<uint16_t> &greenTransferFunctionTable,
78 const QList<uint16_t> &blueTransferFunctionTable);
80
81 QColorSpace(const QColorSpace &colorSpace) noexcept;
82 QColorSpace &operator=(const QColorSpace &colorSpace) noexcept
83 {
84 QColorSpace copy(colorSpace);
85 swap(copy);
86 return *this;
87 }
88
89 QColorSpace(QColorSpace &&colorSpace) noexcept = default;
90 QT_MOVE_ASSIGNMENT_OPERATOR_IMPL_VIA_MOVE_AND_SWAP(QColorSpace)
91
92 void swap(QColorSpace &colorSpace) noexcept
93 { d_ptr.swap(colorSpace.d_ptr); }
94
95 Primaries primaries() const noexcept;
96 TransferFunction transferFunction() const noexcept;
97 float gamma() const noexcept;
98
99 QString description() const noexcept;
100 void setDescription(const QString &description);
101
102 void setTransferFunction(TransferFunction transferFunction, float gamma = 0.0f);
103 void setTransferFunction(const QList<uint16_t> &transferFunctionTable);
104 void setTransferFunctions(const QList<uint16_t> &redTransferFunctionTable,
105 const QList<uint16_t> &greenTransferFunctionTable,
106 const QList<uint16_t> &blueTransferFunctionTable);
107 QColorSpace withTransferFunction(TransferFunction transferFunction, float gamma = 0.0f) const;
108 QColorSpace withTransferFunction(const QList<uint16_t> &transferFunctionTable) const;
109 QColorSpace withTransferFunctions(const QList<uint16_t> &redTransferFunctionTable,
110 const QList<uint16_t> &greenTransferFunctionTable,
111 const QList<uint16_t> &blueTransferFunctionTable) const;
112
113 void setPrimaries(Primaries primariesId);
114 void setPrimaries(const QPointF &whitePoint, const QPointF &redPoint,
115 const QPointF &greenPoint, const QPointF &bluePoint);
116 void setWhitePoint(const QPointF &whitePoint);
117 QPointF whitePoint() const;
118
119 TransformModel transformModel() const noexcept;
120 ColorModel colorModel() const noexcept;
121 void detach();
122 bool isValid() const noexcept;
123 bool isValidTarget() const noexcept;
124
125 friend inline bool operator==(const QColorSpace &colorSpace1, const QColorSpace &colorSpace2)
126 { return colorSpace1.equals(colorSpace2); }
127 friend inline bool operator!=(const QColorSpace &colorSpace1, const QColorSpace &colorSpace2)
128 { return !(colorSpace1 == colorSpace2); }
129
130 static QColorSpace fromIccProfile(const QByteArray &iccProfile);
131 QByteArray iccProfile() const;
132
133 QColorTransform transformationToColorSpace(const QColorSpace &colorspace) const;
134
135 operator QVariant() const;
136
137private:
138 friend class QColorSpacePrivate;
139 bool equals(const QColorSpace &other) const;
140
141 QExplicitlySharedDataPointer<QColorSpacePrivate> d_ptr;
142
143#ifndef QT_NO_DEBUG_STREAM
144 friend Q_GUI_EXPORT QDebug operator<<(QDebug dbg, const QColorSpace &colorSpace);
145#endif
146};
147
148Q_DECLARE_SHARED(QColorSpace)
149
150// QColorSpace stream functions
151#if !defined(QT_NO_DATASTREAM)
152Q_GUI_EXPORT QDataStream &operator<<(QDataStream &, const QColorSpace &);
154#endif
155
156#ifndef QT_NO_DEBUG_STREAM
157Q_GUI_EXPORT QDebug operator<<(QDebug, const QColorSpace &);
158#endif
159
161
162#endif // QCOLORSPACE_P_H
\inmodule QtCore
Definition qbytearray.h:57
bool equals(const QColorSpacePrivate *other) const
The QColorSpace class provides a color space abstraction.
Definition qcolorspace.h:21
friend bool operator!=(const QColorSpace &colorSpace1, const QColorSpace &colorSpace2)
Returns true if colorspace colorSpace1 is not equal to colorspace colorSpace2; otherwise returns fals...
Primaries
Predefined sets of primary colors.
Definition qcolorspace.h:32
NamedColorSpace
Predefined color spaces.
Definition qcolorspace.h:24
TransferFunction
Predefined transfer functions or gamma curves.
Definition qcolorspace.h:40
QColorSpace(QColorSpace &&colorSpace) noexcept=default
The QColorTransform class is a transformation between color spaces.
\inmodule QtCore\reentrant
Definition qdatastream.h:46
\inmodule QtCore
Definition qlist.h:75
\inmodule QtCore\reentrant
Definition qpoint.h:217
\macro QT_RESTRICTED_CAST_FROM_ASCII
Definition qstring.h:129
\inmodule QtCore
Definition qvariant.h:65
Combined button and popup list for selecting options.
static jboolean copy(JNIEnv *, jobject)
Q_GUI_EXPORT QDataStream & operator<<(QDataStream &, const QColorSpace &)
Q_GUI_EXPORT QDataStream & operator>>(QDataStream &, QColorSpace &)
DBusConnection const char DBusError DBusBusType DBusError return DBusConnection DBusHandleMessageFunction void DBusFreeFunction return DBusConnection return DBusConnection return const char DBusError return DBusConnection DBusMessage dbus_uint32_t return DBusConnection dbus_bool_t DBusConnection DBusAddWatchFunction DBusRemoveWatchFunction DBusWatchToggledFunction void DBusFreeFunction return DBusConnection DBusDispatchStatusFunction void DBusFreeFunction DBusTimeout return DBusTimeout return DBusWatch return DBusWatch unsigned int return DBusError const DBusError return const DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessageIter int const void return DBusMessageIter DBusMessageIter return DBusMessageIter void DBusMessageIter void int return DBusMessage DBusMessageIter return DBusMessageIter return DBusMessageIter DBusMessageIter const char const char const char const char return DBusMessage return DBusMessage const char return DBusMessage dbus_bool_t return DBusMessage dbus_uint32_t return DBusMessage void
GLfloat GLfloat f
#define QT_DECLARE_QESDP_SPECIALIZATION_DTOR_WITH_EXPORT(Class, ExportMacro)
#define Q_ENUM(x)
#define Q_GADGET
QSharedPointer< T > other(t)
[5]
this swap(other)