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_ ); };