Krita Source Code Documentation
Loading...
Searching...
No Matches
LcmsColorProfileContainer.h
Go to the documentation of this file.
1/*
2 * This file is part of the KDE project
3 * SPDX-FileCopyrightText: 2000 Matthias Elter <elter@kde.org>
4 * SPDX-FileCopyrightText: 2004 Boudewijn Rempt <boud@valdyas.org>
5 * SPDX-FileCopyrightText: 2007 Thomas Zander <zander@kde.org>
6 *
7 * SPDX-License-Identifier: LGPL-2.0-or-later
8*/
9
10#ifndef _KO_LCMS_COLORPROFILE_H
11#define _KO_LCMS_COLORPROFILE_H
12
13#include "IccColorProfile.h"
14
15#include <lcms2.h>
16#include "kritalcmsengine_export.h"
17
18#include <QByteArray>
19#include <QString>
20
24class KRITALCMSENGINE_EXPORT LcmsColorProfileContainer : public IccColorProfile::Container
25{
26 friend class IccColorProfile;
27protected:
29private:
33 static QByteArray lcmsProfileToByteArray(const cmsHPROFILE profile);
34
35public:
41 static IccColorProfile *createFromLcmsProfile(const cmsHPROFILE profile);
42public:
43
45
49 cmsColorSpaceSignature colorSpaceSignature() const;
53 cmsProfileClassSignature deviceClass() const;
57 QString manufacturer() const override;
61 QString copyright() const override;
65 cmsHPROFILE lcmsProfile() const;
66
67 bool valid() const override;
68 virtual float version() const;
69
70 bool isSuitableForOutput() const override;
71 bool isSuitableForInput() const override;
72 bool isSuitableForWorkspace() const override;
73
74 bool isSuitableForPrinting() const override;
75
76 bool isSuitableForDisplay() const override;
77
78 virtual bool supportsPerceptual() const;
79 virtual bool supportsSaturation() const;
80 virtual bool supportsAbsolute() const;
81 virtual bool supportsRelative() const;
82
83 bool hasColorants() const override;
84 virtual bool hasTRC() const;
85 bool isLinear() const;
87 QVector <KoColorimetryUtils::xyY> getColorantsxyY() const override;
90 QVector <double> getEstimatedTRC() const override;
91 virtual void LinearizeFloatValue(QVector <double> & Value) const;
92 virtual void DelinearizeFloatValue(QVector <double> & Value) const;
93 virtual void LinearizeFloatValueFast(QVector <double> & Value) const;
94 virtual void DelinearizeFloatValueFast(QVector <double> & Value) const;
95 QString name() const override;
96 QString info() const override;
97 QByteArray getProfileUniqueId() const override;
98
99 bool hasCicpValues() const override;
100 ColorPrimaries cicpPrimaries() const override;
101 TransferCharacteristics cicpTransfer() const override;
102
103 bool compareTRC(TransferCharacteristics characteristics, float error) const override;
104
105 static cmsToneCurve* transferFunction(TransferCharacteristics transferFunction);
106
107protected:
109
110private:
111 bool init();
112
113 class Private;
114 Private *const d;
115};
116
117#endif // _KO_LCMS_COLORPROFILE_H
118
ColorPrimaries
The colorPrimaries enum Enum of colorants, follows ITU H.273 for values 0 to 255, and has extra known...
TransferCharacteristics
The transferCharacteristics enum Enum of transfer characteristics, follows ITU H.273 for values 0 to ...
virtual bool isSuitableForInput() const =0
virtual QByteArray getProfileUniqueId() const =0
virtual TransferCharacteristics cicpTransfer() const =0
virtual bool isSuitableForPrinting() const =0
virtual bool hasColorants() const =0
virtual KoColorimetryUtils::xyY getWhitePointxyY() const =0
virtual bool isSuitableForWorkspace() const =0
virtual bool compareTRC(TransferCharacteristics characteristics, float error) const =0
virtual QString info() const =0
virtual KoColorimetryUtils::XYZ getWhitePointXYZ() const =0
virtual bool isSuitableForOutput() const =0
virtual QVector< double > getEstimatedTRC() const =0
virtual QString copyright() const =0
virtual QString name() const =0
virtual bool isSuitableForDisplay() const =0
virtual bool hasCicpValues() const =0
virtual ColorPrimaries cicpPrimaries() const =0
virtual QVector< KoColorimetryUtils::xyY > getColorantsxyY() const =0
virtual QVector< KoColorimetryUtils::XYZ > getColorantsXYZ() const =0
virtual bool valid() const =0
virtual QString manufacturer() const =0
bool supportsRelative() const override
bool supportsPerceptual() const override
bool isLinear() const override
bool supportsSaturation() const override
bool hasTRC() const override
float version() const override
bool supportsAbsolute() const override