RGB
 
计算一个颜色值用于高/真彩 mode(模式)

语法

#define RGB(r ,g ,b ) ((CUInt(r) Shl 16) Or (CUInt(g) Shl 8) Or CUInt(b) Or &hFF000000)

用法

result = RGB(red , green , blue )

参数

red
红色分量值
green
绿色分量值
blue
蓝色分量值

返回值

组合颜色。

说明

red green blue 是范围为0 - 255的组件。

RGB功能可用于计算在hi / truecolor模式下使用的有效颜色值。它返回格式为&hAARRGGBB 的无符号整数,其中RR GG BB 以十六进制格式等于传递给此函数的值。AA 是隐式Alpha值,并自动设置为&hFF(不透明)。
可以使用AndShr的组合从颜色值中检索红,绿,蓝和半透明值。下面的第二个例子显示了如何#define并使用宏来执行此操作。

Windows API程序员注意事项:Windows引用中名为RGB的宏已在Windows的FB头中重新命名为BGR,以避免冲突。

例子

另见放(图)示例。

ScreenRes 640,480,32  '32位颜色
Line(0,0)-(319,479), RGB(255,0,0) '在窗口的左侧画一个明亮的红色框
Line(639,0)-(320,479), RGB(0,0,255) '在窗口的右侧画一个明亮的蓝色框

Sleep '退出前等待


''设置和检索红色,绿色,蓝色和Alpha值

#define RGBA_R( c ) ( CUInt( c ) Shr 16 And 255 )
#define RGBA_G( c ) ( CUInt( c ) Shr  8 And 255 )
#define RGBA_B( c ) ( CUInt( c )        And 255 )
#define RGBA_A( c ) ( CUInt( c ) Shr 24         )

Dim As UInteger r, g, b, a

Dim As UInteger col = RGB(128, 192, 64)

Print Using "颜色:_ &H \\ \\"; Hex(col, 8)

r = RGBA_R( col )
g = RGBA_G( col )
b = RGBA_B( col )
a = RGBA_A( col )

Print
Print Using "红色:_ &H \\\\ = ###"; Hex(r, 2); r
Print Using "绿色:_ &H \\\\ = ###"; Hex(g, 2); g
Print Using "蓝色:_ &H \\\\ = ###"; Hex(b, 2); b
Print Using "Alpha:_ &H \\\\ = ###"; Hex(a, 2); a


方言差异

  • -lang qb 方言中不可用,除非使用别名__Rgb引用。

与QB差别

  • 新的FreeBASIC

参考