ColorToARGB

この関数は、色の型をuint型に変換して、色のARGB表現を取得ますARGBカラー形式は、グラフィカルリソーステキスト表示、およびCCanvas標準ライブラリクラスの生成に使用されます

uint  ColorToARGB(
   color  clr,          // converted color in color format
   uchar  alpha=255     // alpha channel managing color transparency
   );

パラメーター

clr

[in]カラータイプ変数のカラー値。

アルファ

[入力] ARGB形式の色を受信するために使用されるアルファチャネルの値値は、0(前景ピクセルの色は下にあるピクセルの表示を変更しない)から最大255(下にあるピクセルの色は前景ピクセルの色に完全に置き換えられます)から設定できます。パーセンテージで表した色の透明度は、(1-alpha / 255)* 100%として計算されます。つまり、アルファチャンネルの値が小さいほど、透明度が高くなります。

戻り値

アルファ、赤、緑、青(アルファチャネル、赤、緑、青)の値が4つのuint型バイトで連続して設定されるARGB形式で色を表示します。

注意

RGBは、コンピューターグラフィックスの画面上のピクセルカラーの説明に使用される基本的な一般的な形式です。基本色の名前は、赤、緑、青の色成分を設定するために使用されます。各コンポーネントは、0〜255(16進形式の0x00〜0XFF)の範囲の彩度を指定する1バイトで記述されます。白い色にはすべての色が含まれているため、0xFFFFFFと記述されます。つまり、3つのコンポーネントのそれぞれが最大値0xFFで表されます。

ただし、一部のタスクでは、ある程度の透明度を持つ色で覆われている場合に、画像の外観を記述するために色の透明度を指定する必要があります。このような場合のために、アルファチャネルの概念が導入されています。RGB形式の追加コンポーネントとして実装されます。ARGB形式の構造を以下に示します。

ARGB

ARGB値は通常、16進形式を使用して表現され、各桁のペアはそれぞれ、アルファ、赤、緑、青のチャンネルの値を表します。たとえば、80FFFF00色は50.2%の不透明な黄色を表します。最初は、0xFF値の50.2%であるため、0x80はアルファ値50.2%を設定します。次に、最初のFFペアが赤成分の最高値を定義します。次のFFペアは前のものと似ていますが、緑色のコンポーネント用です。最後の00のペアは、青のコンポーネントが持つことができる最低の値を表します(青がない)。緑と赤の色の組み合わせにより、黄色が生成されます。アルファチャネルを使用しない場合、エントリを6 RRGGBB桁に減らすことができます。これが、アルファチャネル値がuint整数型の最上位ビットに格納される理由です。

コンテキストに応じて、80FFFF00、0x80FFFF00、または#80FFFF00のように、16進数字を ‘0x’または ‘#’プレフィックスで書き込むことができます。

例:

//+——————————————————————+
//| Script program start function                                    |
//+——————————————————————+
void OnStart()
  {
//— set transparency
   uchar alfa=0x55;  // 0x55 means 55/255=21.6 % of transparency   
   //— derive conversion to ARGB for clrBlue color
   PrintFormat(“0x%.8X – clrBlue”,clrBlue);
   PrintFormat(“0x%.8X – clrBlue ARGB with alfa=0x55 (transparency 21.6%%)”,ColorToARGB(clrBlue,alfa));
   //— derive conversion to ARGB for clrGreen color
   PrintFormat(“0x%.8X – clrGreen”,clrGreen);
   PrintFormat(“0x%.8X – clrGreen ARGB with alfa=0x55 (transparency 21.6%%)”,ColorToARGB(clrGreen,alfa));
   //— derive conversion to ARGB for clrRed color
   PrintFormat(“0x%.8X – clrRed”,clrRed);
   PrintFormat(“0x%.8X – clrRed ARGB with alfa=0x55 (transparency 21.6%%)”,ColorToARGB(clrRed,alfa));
  }

Leave a Reply

Your email address will not be published. Required fields are marked *

CAPTCHA


You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">