'Открываем графический экран (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
'' Установка и получение Red, Green, Blue и 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 = 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