FreeBASIC マニュアルのトップに戻る

FreeBASIC RGBA

目次→描画ライブラリー参考→2次元 描画関数RGBA

RGBA 左にメニュー・フレームが表示されていない場合は、ここをクリックして下さい

←リンク元に戻る プログラム開発関連に戻る

 ハイカラー/トゥルーカラー・モードのための、アルファ(透明)を含む色の値を取り扱います。

構文:
fbc version < 1.08:
#define RGBA(r,g,b,a) ((CUlng(r) shl 16) or (CUlng(g) shl 8) or CUlng(b) or (CUlng(a) shl 24))
fbc version >= 1.08:
#define RGBA(r,g,b,a) CUlng((CUByte(r) shl 16) or (CUByte(g) shl 8) or CUByte(b) or (CUByte(a) shl 24))

用法:
result = RGBA (red, green, blue, alpha)

パラメタ:
red
赤色成分の値
green
緑色成分の値
blue
青色成分の値
alpha
アルファ成分の値

戻り値:
結合した色

説明:
 red, green, bluealpha は、0255 の範囲の要素です。

 RGBA 関数は、ハイカラー/トゥルーカラー・モードで使える、透明度を表現するアルファ値を含む、有効な色の値を取り扱うために、使われます。
fbc バージョン < 1.08 の場合は符号のない整数(integer)を、fbc バージョン >= 1.08 の場合は符号のない long を &hAARRGGBB の形式で返します。ここで、RR, GG, BB は、この関数に渡される16進形式の値になります。
 AndShr の組み合わせを使って、色の、赤色、緑色、青色とアルファの値を検索することができます。
 下の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 (1010)-(31037), RGB(127, 0, 0), BF '文字のための赤い箱
Line (10, 146)-(310, 229), RGB(0, 127, 0), BF '上乗せする緑色の箱

'PSET で、画像と文字を描きます
Draw String(64, 20), "PSet"
Put(4848), img, PSet
Put(48, 156), img, PSet

'ALPHA で、画像と文字を描きます。
Draw String (220, 20), "Alpha"
Put(20848), 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 '終了まで待たせます。


バージョン: 方言差:

QBとの違い:
参照:

 描画予約語一覧

2次元 描画関数に戻る
←リンク元に戻る プログラム開発関連に戻る
ページ歴史:2021-10-13 05:59:05
日本語翻訳:WATANABE Makoto、原文著作者:AntoniGual

ホームページのトップに戻る

表示-非営利-継承