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"
19#include <qversionnumber.h>
29class RgbColorSpacePrivate final
35 explicit RgbColorSpacePrivate(RgbColorSpace *backLink);
40 ~RgbColorSpacePrivate() noexcept = default;
50 qreal m_cielabD50BlackpointL = 0;
53 qreal m_cielabD50WhitepointL = 100;
61 qreal m_oklabBlackpointL = 0;
64 qreal m_oklabWhitepointL = 1;
67 QString m_profileAbsoluteFilePath;
70 cmsProfileClassSignature m_profileClass;
73 cmsColorSpaceSignature m_profileColorModel;
82 qint64 m_profileFileSize = -1;
85 bool m_profileHasClut = false;
88 bool m_profileHasMatrixShaper = false;
97 double m_profileMaximumCielchD50Chroma = CielchD50Values::maximumChroma;
100 double m_profileMaximumOklchChroma = OklchValues::maximumChroma;
109 cmsColorSpaceSignature m_profilePcsColorModel;
111 cmsHTRANSFORM m_transformCielabD50ToRgb16Handle =
nullptr;
113 cmsHTRANSFORM m_transformCielabD50ToRgbHandle =
nullptr;
115 cmsHTRANSFORM m_transformRgbToCielabD50Handle =
nullptr;
118 static
void deleteTransform(cmsHTRANSFORM *transformHandle);
119 [[nodiscard]]
double detectMaximumCielchD50Chroma() const;
120 [[nodiscard]]
double detectMaximumOklchChroma() const;
121 [[nodiscard]] static
QDateTime getCreationDateTimeFromProfile(cmsHPROFILE profileHandle);
122 [[nodiscard]] static
QVersionNumber getIccVersionFromProfile(cmsHPROFILE profileHandle);
123 [[nodiscard]] static
QString getInformationFromProfile(cmsHPROFILE profileHandle, cmsInfoType infoType);
124 [[nodiscard]]
bool initialize(cmsHPROFILE rgbProfileHandle);
153 static inline const
QMap<cmsUInt32Number,
QString> intentList = getIntentList();
162 static constexpr
double chromaDetectionHuePrecision = gamutPrecisionCielab;
176 static constexpr
double chromaDetectionIncrementFactor = 1.02;
188 static constexpr qreal cielabDeviationLimit = 0.5;
200 static constexpr qreal oklabDeviationLimit = 0.001;
203 Q_DISABLE_COPY(RgbColorSpacePrivate)
207 ConstPropagatingRawPointer<RgbColorSpace> q_pointer;
The namespace of this library.