ハイカラー/トゥルーカラー・モードのための、アルファ(透明)を含む色の値を取り扱います。
構文:
fbc version < 1.08:
fbc version >= 1.08:
用法:
result = RGBA
(red, green, blue, alpha)
パラメタ:
red
赤色成分の値
green
緑色成分の値
blue
青色成分の値
alpha
アルファ成分の値
戻り値:
結合した色
説明:
red, green, blue と alpha は、0 〜255 の範囲の要素です。
RGBA 関数は、ハイカラー/トゥルーカラー・モードで使える、透明度を表現するアルファ値を含む、有効な色の値を取り扱うために、使われます。
fbc バージョン < 1.08 の場合は符号のない整数(integer)を、fbc バージョン >= 1.08 の場合は符号のない long を
&hAARRGGBB の形式で返します。ここで、
RR,
GG,
BB は、この関数に渡される16進形式の値になります。
And と
Shr の組み合わせを使って、色の、赤色、緑色、青色とアルファの値を検索することができます。
下の2番目の例は、このための、
#Define とマクロの使い方を示しています。
例:
注:FreeBASIC 1.08〜 で、SetEnviron を追加しなくても、日本語環境で描画画面が表示されるように改善されました。
' Sets the graphics method GDI
' 描画方法を GDI に設定
SetEnviron("fbgfx=GDI")
'描画画面を開けます。(320*240、32ビット)
ScreenRes 320,
240,
32
Dim As Any Ptr img
Dim As Integer x, y
'透明と色で、異なるイメージを作ります
img =
ImageCreate
(64,
64)
For x =
0 To 63
For y =
0 To 63
PSet img,
(x, y
),
RGBA
(x *
4,
0, y *
4,
(x + y
) *
2)
Next y
Next x
Circle img,
(31,
31),
25,
RGBA(0,
127,
192,
192), ,,, F
'半透明の青い円
Line img,
(26,
20)-
(38,
44),
RGBA(255,
255,
255,
0), BF
'透明な白い長方形
'背景を描く (斜めの白い線)
For x = -
240 To 319 Step 10
Line (x,
0)-
Step(240,
240),
RGB
(255,
255,
255)
Next
Line (10,
10)-
(310,
37),
RGB(127,
0,
0), BF
'文字のための赤い箱
Line (10,
146)-
(310,
229),
RGB(0,
127,
0), BF
'上乗せする緑色の箱
'PSET で、画像と文字を描きます
Draw String(64,
20),
"PSet"
Put(48,
48), img,
PSet
Put(48,
156), img,
PSet
'ALPHA で、画像と文字を描きます。
Draw String (220,
20),
"Alpha"
Put(208,
48), img,
Alpha
Put(208,
156), img,
Alpha
'画像メモリを解放します
ImageDestroy img
'ユーザが、何かキーを押すまで、画面を開いたままで保持します
Sleep
''赤、緑、青、およびアルファーの値を設定して、取得します
#define RGBA_R( c )
( Culng( c ) Shr 16 And 255 )
#define RGBA_G( c )
( Culng( c ) Shr 8 And 255 )
#define RGBA_B( c )
( Culng( c ) And 255 )
#define RGBA_A( c )
( Culng( c ) Shr 24 )
Dim As UInteger r, g, b, a
Dim As UInteger col = RGBA
(255, 192, 64, 128)
Dim As UByte r, g, b, a
Dim As ULong col = RGBA(255, 192, 64, 128)
Print Using "Color:
_
&H\ \";
Hex
(col, 8)
r = RGBA_R
( col )
g = RGBA_G
( col )
b = RGBA_B
( col )
a = RGBA_A
( col )
Print
Print Using "Red:
_
&H\\ = ###";
Hex(r, 2);
r
Print Using "Green:
_
&H\\ = ###";
Hex(g, 2);
g
Print Using "Blue:
_
&H\\ = ###";
Hex(b, 2);
b
Print Using "Alpha:
_
&H\\ = ###";
Hex(a, 2);
a
Sleep '終了まで待たせます。
バージョン:
- fbc 1.08.0 より前:
構文:
RGBA 関数は符号なし整数を返しました。
方言差:
-
-lang qb 方言では、別名 __Rgba とともに参照を付けないと、使えません。
QBとの違い:
参照:
描画予約語一覧