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 };
107 virtual bool isSuitableForOutput() const = 0;
111 virtual bool isSuitableForInput() const = 0;
115 virtual bool isSuitableForWorkspace() const = 0;
119 virtual bool isSuitableForPrinting() const = 0;
123 virtual bool isSuitableForDisplay() const = 0;
124
128 virtual bool supportsPerceptual() const = 0;
129 virtual bool supportsSaturation() const = 0;
130 virtual bool supportsAbsolute() const = 0;
131 virtual bool supportsRelative() const = 0;
135 virtual bool hasColorants() const = 0;
139 virtual QVector <qreal> getColorantsXYZ() const = 0;
143 virtual QVector <qreal> getColorantsxyY() const = 0;
147 virtual QVector <qreal> getWhitePointXYZ() const = 0;
151 virtual QVector <qreal> getWhitePointxyY() const = 0;
152
156 virtual QVector <qreal> getEstimatedTRC() const = 0;
157
161 virtual bool hasTRC() const = 0;
165 virtual bool isLinear() const = 0;
170 virtual void linearizeFloatValue(QVector <qreal> & Value) const = 0;
176 virtual void delinearizeFloatValue(QVector <qreal> & Value) const = 0;
181 virtual void linearizeFloatValueFast(QVector <qreal> & Value) const = 0;
182 virtual void delinearizeFloatValueFast(QVector <qreal> & Value) const = 0;
183
188 virtual bool compareTRC(TransferCharacteristics characteristics, float error) const = 0;
189
190 virtual QByteArray uniqueId() const = 0;
191
192 virtual bool operator==(const KoColorProfile&) const = 0;
193
197 virtual QByteArray rawData() const {
198 return QByteArray();
199 }
200
205 virtual ColorPrimaries getColorPrimaries() const;
206
212 static QString getColorPrimariesName(ColorPrimaries primaries);
220 static void colorantsForType(ColorPrimaries primaries, QVector<double> &colorants);
221
227 virtual TransferCharacteristics getTransferCharacteristics() const;
228
234 static QString getTransferCharacteristicName(TransferCharacteristics curve);
235
236protected:
240 void setName(const QString &name);
244 void setInfo(const QString &info);
248 void setManufacturer(const QString &manufacturer);
252 void setCopyright(const QString &copyright);
253
260 void setCharacteristics(ColorPrimaries primaries, TransferCharacteristics curve);
261
262private:
263 struct Private;
264 Private* const d;
265};
266
267#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 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 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
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 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