RGB値の抽出

オープンソース形式でコードを共有するフォーラムです。お役立ちコード、あなたも投稿してみませんか?
返信する
メッセージ
作成者
tak
記事: 162
登録日時: 2005年5月31日(火) 07:49

RGB値の抽出

#1 投稿記事 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で指定した要素の強さが返ります。
使う機会は滅多にありませんが・・・
イグトランス
記事: 899
登録日時: 2005年5月31日(火) 17:59
お住まい: 東京都
連絡する:

#2 投稿記事 by イグトランス »

MSのC/C++用のヘッダにはGetBValue, GetGValue, GetRValueというマクロがあるので、これに合わせた方が良いのではないかと思います。
tak
記事: 162
登録日時: 2005年5月31日(火) 07:49

#3 投稿記事 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
こんな感じでどうでしょうか
返信する