ページ 11

RGB値の抽出

Posted: 2005年6月03日(金) 22:04
by tak
RGB関数は、次のように定義されています。

コード: 全て選択


Const RGB(r, g, b) = r Or (g <<8) Or (b <<16)
よって、次のコードによりRGB値を抽出できます。

コード: 全て選択


Const EXT_RED   = 0
Const EXT_GREEN = 8
Const EXT_BLUE  = 16

Const EXTRACTRGB(crCode, extColor) = (crCode >> extColor) And &HFF
引数の説明
crCode ・・・・・ カラーコードを指定する
extColor ・・・ 抽出する要素を上記定数(EXT_xxx)から指定する

extColorで指定した要素の強さが返ります。
使う機会は滅多にありませんが・・・

Posted: 2005年6月04日(土) 00:03
by イグトランス
MSのC/C++用のヘッダにはGetBValue, GetGValue, GetRValueというマクロがあるので、これに合わせた方が良いのではないかと思います。

Posted: 2005年6月04日(土) 00:12
by tak
> MSのC/C++用のヘッダにはGetBValue, GetGValue, GetRValueというマクロがあるので、これに合わせた方が良いのではないかと思います。

これは失礼。そんなものがあるなんて知りませんでした。
そこで、次のように訂正します。

コード: 全て選択

Const GetRValue(crCode) = crCode And &HFF
Const GetGValue(crCode) = (crCode And &HFF00) >> 8
Const GetBValue(crCode) = (crCode And &HFF0000) >> 16
こんな感じでどうでしょうか