OR(图形 Put)
- 来源: https://www.freebasic.net/wiki/wikka.php?wakka=KeyPgOrGfx
- 最后更新: 2023-07-09
Put 图形语句的参数,使用位运算 Or 作为位图传输方法
语法
Put [ target, ] [ STEP ] ( x,y ), source [ ,( x1,y1 )-( x2,y2 ) ], Or参数
Or
必填。
说明
Or 方法将每个源像素与对应的目标像素进行位运算 Or 操作,结果作为目标像素输出。
此方法适用于所有图形模式。没有遮罩颜色,但由于 Or 的特性,颜色值为 0(全彩模式下为 RGBA(0, 0, 0, 0))的像素不会产生任何效果。
在全彩模式下,每个分量(红、绿、蓝和 alpha)都保存在一组独立的位中,因此只需将其他通道的所有值设为 0,即可使操作仅影响某些通道。
示例
start GeSHi
vb
''open a graphics window
ScreenRes 320, 200, 16
''create 3 sprites containing red, green and blue circles
Const As Long r = 32
Dim As Any Ptr cr, cg, cb
cr = ImageCreate(r * 2 + 1, r * 2 + 1, RGBA(0, 0, 0, 0))
cg = ImageCreate(r * 2 + 1, r * 2 + 1, RGBA(0, 0, 0, 0))
cb = ImageCreate(r * 2 + 1, r * 2 + 1, RGBA(0, 0, 0, 0))
Circle cr, (r, r), r, RGB(255, 0, 0), , , 1, f
Circle cg, (r, r), r, RGB(0, 255, 0), , , 1, f
Circle cb, (r, r), r, RGB(0, 0, 255), , , 1, f
''put the sprite at three different multipier
''levels, overlapping each other in the middle
Put (146 - r, 108 - r), cr, Or
Put (174 - r, 108 - r), cg, Or
Put (160 - r, 84 - r), cb, Or
''free the memory used by the sprites
ImageDestroy cr
ImageDestroy cg
ImageDestroy cb
''pause the program before closing
Sleepend GeSHi
与 QB 的区别
- 无
另请参阅
OrPut (Graphics)
返回 目录