Color は、Magick++ の基本色クラスです。これは、ImageMagick の Quantum サイズに合わせてスケーリングされたピクセルの赤、緑、青、およびアルファ値のシンプルなコンテナクラスです。通常、ユーザーは、アプリケーションのニーズに合ったカラーモデルをサポートする Color から派生したクラスをインスタンス化します。Color クラスは、SVG スタイルのカラー文字列から直接構築できます。
QuantumDepth 値の影響
|
QuantumDepth |
Quantum 型定義 |
Quantum サイズ |
|
8 |
unsigned char |
32 ビット |
|
16 |
unsigned short |
64 ビット |
|
32 |
unsigned int |
128 ビット |
Color 基底クラスは、直接使用することを意図していません。通常、ユーザーは派生クラスを構築するか、このクラスから継承します。Color 引数は、Quantum サイズに合わせてスケーリングする必要があります。Color クラスには Quantum へのポインタが含まれており、これは Color クラスによって割り当てられるか、画像内の既存のピクセルを参照する場合があります。
クラスを構築する別の方法は、SVG 互換のカラー指定文字列(例:Color("red") または Color ("#FF0000"))を使用することです。クラスは文字列から構築できるため、Color への参照を受け入れるメソッドでは、明示的な Color オブジェクトの代わりに便利な文字列を渡すことができます。Color は、ユーザーインターフェイスでの利便性と、設定をテキストファイルに保存するために、std::string に変換することもできます。
Color 派生クラス
|
赤、緑、青が比率(0〜1)で指定された RGB 色の表現 | |
|
比率(0〜1)で指定されたグレースケール sRGB 色(赤、緑、青が均等)の表現 | |
|
白黒の色(true / false)の表現 | |
|
YUV 色空間での色の表現 |
sRGB 色の表現。すべての色引数の有効範囲は 0.0〜1.0 です。
class ColorRGB : public Color
{
public:
ColorRGB ( double red_, double green_, double blue_ );
ColorRGB ( void );
ColorRGB ( const Color & color_ );
/* virtual */ ~ColorRGB ( void );
void red ( double red_ );
double red ( void ) const;
void green ( double green_ );
double green ( void ) const;
void blue ( double blue_ );
double blue ( void ) const;
// Assignment operator from base class
ColorRGB& operator= ( const Color& color_ );
};
グレースケールカラー(線形色空間)の表現。グレースケールは、赤、緑、青が均等な RGB です。すべての double 引数の有効範囲は 0.0〜1.0 です。
class ColorGray : public Color
{
public:
ColorGray ( double shade_ );
ColorGray ( void );
ColorGray ( const Color & color_ );
/* virtual */ ~ColorGray ();
void shade ( double shade_ );
double shade ( void ) const;
// Assignment operator from base class
ColorGray& operator= ( const Color& color_ );
};
白黒ピクセル(RGB 色空間)の表現。色引数は「false」(黒ピクセル)と「true」(白ピクセル)に制限されます。
class ColorMono : public Color
{
public:
ColorMono ( bool mono_ );
ColorMono ( void );
ColorMono ( const Color & color_ );
/* virtual */ ~ColorMono ();
void mono ( bool mono_ );
bool mono ( void ) const;
// Assignment operator from base class
ColorMono& operator= ( const Color& color_ );
};
色相/彩度/輝度(HSL)色空間での色の表現。
class ColorHSL : public Color
{
public:
ColorHSL ( double hue_, double saturation_, double luminosity_ );
ColorHSL ( void );
ColorHSL ( const Color & color_ );
/* virtual */ ~ColorHSL ( );
void hue ( double hue_ );
double hue ( void ) const;
void saturation ( double saturation_ );
double saturation ( void ) const;
void luminosity ( double luminosity_ );
double luminosity ( void ) const;
// Assignment operator from base class
ColorHSL& operator= ( const Color& color_ );
};
YUV 色空間(テレビ伝送用の色をエンコードするために使用される)での色の表現。
引数範囲
class ColorYUV : public Color
{
public:
ColorYUV ( double y_, double u_, double v_ );
ColorYUV ( void );
ColorYUV ( const Color & color_ );
/* virtual */ ~ColorYUV ( void );
void u ( double u_ );
double u ( void ) const;
void v ( double v_ );
double v ( void ) const;
void y ( double y_ );
double y ( void ) const;
// Assignment operator from base class
ColorYUV& operator= ( const Color& color_ );
};