Krita Source Code Documentation
Loading...
Searching...
No Matches
KoColorProfile.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2007 Cyrille Berger <cberger@cberger.net>
3 *
4 * SPDX-License-Identifier: LGPL-2.1-or-later
5*/
6
7#ifndef _KO_COLOR_PROFILE_H_
8#define _KO_COLOR_PROFILE_H_
9
10#include <boost/operators.hpp>
11#include <QString>
12#include <QVector>
13#include <QVariant>
14
16#include "kritapigment_export.h"
17
21class KRITAPIGMENT_EXPORT KoColorProfile : public boost::equality_comparable<KoColorProfile>
22{
23
24public:
25
29 explicit KoColorProfile(const QString &fileName = QString());
30 KoColorProfile(const KoColorProfile& profile);
31 virtual ~KoColorProfile();
32
36 virtual QString type() const {
37 return QString();
38 }
39
48 virtual KoColorProfile* clone() const = 0;
49
54 virtual bool load();
55
61 virtual bool save(const QString &fileName);
62
67 virtual bool valid() const = 0;
68
72 QString name() const;
76 QString info() const;
79 QString manufacturer() const;
83 QString copyright() const;
87 QString fileName() const;
91 void setFileName(const QString &filename);
92
96 virtual float version() const = 0;
97
101 virtual QString colorModelID() const {
102 return QString();
103 };
108 virtual bool isSuitableForOutput() const = 0;
112 virtual bool isSuitableForPrinting() const = 0;
116 virtual bool isSuitableForDisplay() const = 0;
117
121 virtual bool supportsPerceptual() const = 0;
122 virtual bool supportsSaturation() const = 0;
123 virtual bool supportsAbsolute() const = 0;
124 virtual bool supportsRelative() const = 0;
128 virtual bool hasColorants() const = 0;
132 virtual QVector <qreal> getColorantsXYZ() const = 0;
136 virtual QVector <qreal> getColorantsxyY() const = 0;
140 virtual QVector <qreal> getWhitePointXYZ() const = 0;
144 virtual QVector <qreal> getWhitePointxyY() const = 0;
145
149 virtual QVector <qreal> getEstimatedTRC() const = 0;
150
154 virtual bool hasTRC() const = 0;
158 virtual bool isLinear() const = 0;
163 virtual void linearizeFloatValue(QVector <qreal> & Value) const = 0;
169 virtual void delinearizeFloatValue(QVector <qreal> & Value) const = 0;
174 virtual void linearizeFloatValueFast(QVector <qreal> & Value) const = 0;
175 virtual void delinearizeFloatValueFast(QVector <qreal> & Value) const = 0;
176
181 virtual bool compareTRC(TransferCharacteristics characteristics, float error) const = 0;
182
183 virtual QByteArray uniqueId() const = 0;
184
185 virtual bool operator==(const KoColorProfile&) const = 0;
186
190 virtual QByteArray rawData() const {
191 return QByteArray();
192 }
193
198 virtual ColorPrimaries getColorPrimaries() const;
199
205 static QString getColorPrimariesName(ColorPrimaries primaries);
213 static void colorantsForType(ColorPrimaries primaries, QVector<double> &colorants);
214
220 virtual TransferCharacteristics getTransferCharacteristics() const;
221
227 static QString getTransferCharacteristicName(TransferCharacteristics curve);
228
229protected:
233 void setName(const QString &name);
237 void setInfo(const QString &info);
241 void setManufacturer(const QString &manufacturer);
245 void setCopyright(const QString &copyright);
246
253 void setCharacteristics(ColorPrimaries primaries, TransferCharacteristics curve);
254
255private:
256 struct Private;
257 Private* const d;
258};
259
260#endif
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 ...
QString copyright() const
virtual bool isSuitableForOutput() const =0
QString name() const
virtual QVector< qreal > getColorantsxyY() const =0
virtual QVector< qreal > getWhitePointXYZ() const =0
QString info() const
Private *const d
virtual QByteArray rawData() const
virtual void linearizeFloatValue(QVector< qreal > &Value) const =0
QString manufacturer() const
virtual void linearizeFloatValueFast(QVector< qreal > &Value) const =0
virtual bool isSuitableForDisplay() const =0
virtual QVector< qreal > getColorantsXYZ() const =0
virtual QVector< qreal > getEstimatedTRC() const =0
virtual void delinearizeFloatValue(QVector< qreal > &Value) const =0
virtual QString type() const
virtual bool hasColorants() const =0
virtual QByteArray uniqueId() const =0
virtual bool compareTRC(TransferCharacteristics characteristics, float error) const =0
virtual KoColorProfile * clone() const =0
QString fileName() const
virtual bool supportsAbsolute() const =0
virtual bool isLinear() const =0
virtual bool operator==(const KoColorProfile &) const =0
virtual bool supportsRelative() const =0
virtual bool valid() const =0
virtual QVector< qreal > getWhitePointxyY() const =0
virtual float version() const =0
virtual bool isSuitableForPrinting() const =0
virtual bool supportsPerceptual() const =0
virtual bool supportsSaturation() const =0
virtual QString colorModelID() const
virtual bool hasTRC() const =0
virtual void delinearizeFloatValueFast(QVector< qreal > &Value) const =0