[ ホーム ] [ PC技術/システム技術 ] [ VB.NETプログラミング ] [ VB.NETコンポーネント ] [ インフォメーション ]

上へ
色について
Pen
印刷の基本

VB.NET 解説

色について

最終更新:2006/10/30

●色の単位構造

 色はColor構造体(ARGB色を表す)で表現される。ARGBは従来のRGBにアルファブレンドの度合いを追加したもの。アルファブレンドは透明化する技術で、下地を透かして見せる高度な技法


A、R、G、B:それぞれ、8ビットで値は0〜255
A(アルファ):0が透明、255が不透明

●色の種類 

 大きく、システム・カラーと一般的なカラーとからなる。それぞれ、別のクラスで構成される。一般的なカラーはシステムで予め定義されたシステム定義色(既知色)160色程度と、任意にARGBにて指定できるユーザ設定色がある。

 SystemColorsはプロパティのみ、Colorはプロパティとメソッドがある。メソッドは色の作成(構造体を生成する)を異なる方法で行えるようになっている。 

SystemColors
      Color
     ・システム定義色(既知色)
     ・ユーザ設定色

SystemColors 

 Color 構造体で、20数色がWindows の表示要素の色を表す色がプロパティとして定義されている。
 例えば、以下の例のように取得する。 

SystemColors.ControlDark
この色は、3D 要素の影の色を表す。影の色は、光源の反対側にある 3D 要素に部分的に適用される。 

この色は通常、SystemColors オブジェクトの値を使用して新しいペンまたはブラシを作成するのではなく、 あらかじめ用意されているSystemPens オブジェクトまたは SystemBrushes オブジェクトを使用するよう推奨されている。
 
例えば、既存のブラシを使用するには  

SystemBrushes.ControlDark  

などとし、どうしても新しいブラシにしたければ、 

SolidBrush(SystemColors.ControlDark)  

などとする。

Color 

 システム定義色や色の各要素などを取得できるプロパティと、既知色やユーザ設定色を作成するメソッドがある。 

・システム定義色からを値を得る 

 Color.AliceBlue 

・既知色(システム・カラーの一部、システム定義色)から選ぶ 

色を作成する。

 Color.FromKnownColor(KnownColor.ActiveBorder) 

・色名から選ぶ 

システム定義色の色名称(文字列)から色を作成する。

 Color.FromName("AliceBlue") 

・任意の色を作成する 

Color.FromArgb(RGB(200, 200, 200))   オーバーロードあり 

・色の要素を取得する 

 色の構成要素である、R、G、B (プロパティ)やHSB色空間における、Hue(色相)、Saturation(彩度)、Brightness( 明度) (メソッド)などが、現在の構造体で示される色について取得できる。設定はできない。 

Color.B            B成分を得る
Color.GetHue()  色相を得る 

HSB色空間(参考)

 色を、Hue(色相)、Saturation(彩度)、Brightness(明度)の三つの要素で表現する方式。下図参照。人間の色に対する感覚を数値化したものと言える。系統だった色を自動的に生成し良い。

Hue
 色相(色合い)で、色相環の角度0.0〜360.0度。0が赤、120が緑、240が青である。ちなみに、180度異なる色は補色となる。

・Saturation
 彩度(鮮やかさ)で、.NETでは0.0〜1.0の値。0.0は無彩色(グレイスケール)、1.0が純色(ビビッド)となる。 彩度とは、灰色(グレイ)成分がどれくらい混じっているかの度合い。グレイとは、RGBの全成分が同じ量の状態。純色とは、RGBのうち高々二成分で構成された色のこと。通常、濁った色とか淀んだ色とは、RGBの全成分で構成された色のこと。

・Brightness
 明度(明るさ)で、.NETでは0.0〜1.0の値。1.0は真っ白で、0.0が真っ黒。