00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef KOCOLOR_H
00020 #define KOCOLOR_H
00021
00022 #include <QColor>
00023 #include <QMetaType>
00024
00025 #include <koffice_export.h>
00026
00027 #include "KoColorProfile.h"
00028 #include "KoColorSpace.h"
00029
00030
00035 class PIGMENT_EXPORT KoColor {
00036
00037 public:
00039 KoColor();
00040
00041 virtual ~KoColor();
00042
00045 KoColor(const QColor & color, KoColorSpace * colorSpace);
00046
00049 KoColor(const QColor & color, quint8 alpha, KoColorSpace * colorSpace);
00050
00052 KoColor(const quint8 * data, KoColorSpace * colorSpace);
00053
00055 KoColor(const KoColor &src, KoColorSpace * colorSpace);
00056
00058 KoColor(const KoColor & rhs);
00059
00061 KoColor &operator=(const KoColor &);
00062
00064 quint8 * data() const { return m_data; }
00065
00066 KoColorSpace * colorSpace() const { return m_colorSpace; }
00067
00068 KoColorProfile * profile() const { return m_colorSpace->getProfile(); }
00069
00072 void convertTo(KoColorSpace * cs);
00073
00075 void setColor(quint8 * data, KoColorSpace * colorSpace = 0);
00076
00078 void toQColor(QColor *c) const;
00079 void toQColor(QColor *c, quint8 *opacity) const;
00080
00081 QColor toQColor() const;
00082
00083 void dump() const;
00084
00085 private:
00086
00087 quint8 * m_data;
00088
00089 KoColorSpace * m_colorSpace;
00090 };
00091
00092 Q_DECLARE_METATYPE( KoColor )
00093
00094 #endif