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#include <KoColorimetryUtils.h>
18
22class KRITAPIGMENT_EXPORT KoColorProfile : public boost::equality_comparable<KoColorProfile>
23{
24
25public:
26
30 explicit KoColorProfile(const QString &fileName = QString());
31 KoColorProfile(const KoColorProfile& profile);
32 virtual ~KoColorProfile();
33
37 virtual QString type() const {
38 return QString();
39 }
40
49 virtual KoColorProfile* clone() const = 0;
50
55 virtual bool load();
56
62 virtual bool save(const QString &fileName);
63
68 virtual bool valid() const = 0;
69
73 QString name() const;
77 QString info() const;
80 QString manufacturer() const;
84 QString copyright() const;
88 QString fileName() const;
92 void setFileName(const QString &filename);
93
97 virtual float version() const = 0;
98
102 virtual QString colorModelID() const {
103 return QString();
104 };
108 virtual bool isSuitableForOutput() const = 0;
112 virtual bool isSuitableForInput() const = 0;
116 virtual bool isSuitableForWorkspace() const = 0;
120 virtual bool isSuitableForPrinting() const = 0;
124 virtual bool isSuitableForDisplay() const = 0;
125
129 virtual bool supportsPerceptual() const = 0;
130 virtual bool supportsSaturation() const = 0;
131 virtual bool supportsAbsolute() const = 0;
132 virtual bool supportsRelative() const = 0;
136 virtual bool hasColorants() const = 0;
140 virtual QVector <KoColorimetryUtils::XYZ> getColorantsXYZ() const = 0;
144 virtual QVector <KoColorimetryUtils::xyY> getColorantsxyY() const = 0;
153
157 virtual QVector <qreal> getEstimatedTRC() const = 0;
158
162 virtual bool hasTRC() const = 0;
166 virtual bool isLinear() const = 0;
171 virtual void linearizeFloatValue(QVector <qreal> & Value) const = 0;
177 virtual void delinearizeFloatValue(QVector <qreal> & Value) const = 0;
182 virtual void linearizeFloatValueFast(QVector <qreal> & Value) const = 0;
183 virtual void delinearizeFloatValueFast(QVector <qreal> & Value) const = 0;
184
189 virtual bool compareTRC(TransferCharacteristics characteristics, float error) const = 0;
190
191 virtual QByteArray uniqueId() const = 0;
192
193 virtual bool operator==(const KoColorProfile&) const = 0;
194
198 virtual QByteArray rawData() const {
199 return QByteArray();
200 }
201
206 virtual ColorPrimaries getColorPrimaries() const;
207
213 static QString getColorPrimariesName(ColorPrimaries primaries);
223 static void colorantsForType(ColorPrimaries primaries, KoColorimetryUtils::xy &whitePoint, QList<KoColorimetryUtils::xy> &colorants, const bool prequantized = false);
224
230 virtual TransferCharacteristics getTransferCharacteristics() const;
231
237 static QString getTransferCharacteristicName(TransferCharacteristics curve);
238
239protected:
243 void setName(const QString &name);
247 void setInfo(const QString &info);
251 void setManufacturer(const QString &manufacturer);
255 void setCopyright(const QString &copyright);
256
263 void setCharacteristics(ColorPrimaries primaries, TransferCharacteristics curve);
264
265private:
266 struct Private;
267 Private* const d;
268};
269
270#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
QString info() const
Private *const d
virtual bool isSuitableForWorkspace() const =0
virtual QByteArray rawData() const
virtual void linearizeFloatValue(QVector< qreal > &Value) const =0
QString manufacturer() const
virtual void linearizeFloatValueFast(QVector< qreal > &Value) const =0
virtual KoColorimetryUtils::XYZ getWhitePointXYZ() const =0
virtual KoColorimetryUtils::xyY getWhitePointxyY() const =0
virtual bool isSuitableForDisplay() 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
virtual bool isSuitableForInput() 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 float version() const =0
virtual QVector< KoColorimetryUtils::xyY > getColorantsxyY() 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
virtual QVector< KoColorimetryUtils::XYZ > getColorantsXYZ() const =0