4#ifndef RGBCOLORSPACE_P_H
5#define RGBCOLORSPACE_P_H
10#include "cielchd50values.h"
11#include "constpropagatingrawpointer.h"
12#include "helperconstants.h"
13#include "oklchvalues.h"
15#include <qcontainerfwd.h>
21#include <qversionnumber.h>
31class RgbColorSpacePrivate final
37 explicit RgbColorSpacePrivate(RgbColorSpace *backLink);
42 ~RgbColorSpacePrivate() noexcept = default;
52 qreal m_cielabD50BlackpointL = 0;
55 qreal m_cielabD50WhitepointL = 100;
63 qreal m_oklabBlackpointL = 0;
66 qreal m_oklabWhitepointL = 1;
69 QString m_profileAbsoluteFilePath;
72 cmsProfileClassSignature m_profileClass;
75 cmsColorSpaceSignature m_profileColorModel;
84 qint64 m_profileFileSize = -1;
87 bool m_profileHasClut = false;
90 bool m_profileHasMatrixShaper = false;
99 double m_profileMaximumCielchD50Chroma = CielchD50Values::maximumChroma;
102 double m_profileMaximumOklchChroma = OklchValues::maximumChroma;
111 cmsColorSpaceSignature m_profilePcsColorModel;
116 cmsHTRANSFORM m_transformCielabD50ToRgb16Handle =
nullptr;
118 cmsHTRANSFORM m_transformCielabD50ToRgbHandle =
nullptr;
120 cmsHTRANSFORM m_transformRgbToCielabD50Handle =
nullptr;
123 static
void deleteTransform(cmsHTRANSFORM *transformHandle);
124 [[nodiscard]]
double detectMaximumCielchD50Chroma() const;
125 [[nodiscard]]
double detectMaximumOklchChroma() const;
126 [[nodiscard]]
bool initialize(cmsHPROFILE rgbProfileHandle);
127 [[nodiscard]] static
QDateTime profileCreationDateTime(cmsHPROFILE profileHandle);
128 [[nodiscard]] static
QVersionNumber profileIccVersion(cmsHPROFILE profileHandle);
129 [[nodiscard]] static
QString profileInformation(cmsHPROFILE profileHandle, cmsInfoType infoType);
130 [[nodiscard]] static
QStringList profileTagSignatures(cmsHPROFILE profileHandle);
159 static inline const
QMap<cmsUInt32Number,
QString> intentList = getIntentList();
168 static constexpr
double chromaDetectionHuePrecision = gamutPrecisionCielab;
182 static constexpr
double chromaDetectionIncrementFactor = 1.02;
194 static constexpr qreal cielabDeviationLimit = 0.5;
206 static constexpr qreal oklabDeviationLimit = 0.001;
209 Q_DISABLE_COPY(RgbColorSpacePrivate)
213 ConstPropagatingRawPointer<RgbColorSpace> q_pointer;
The namespace of this library.