POINT
- 来源: https://www.freebasic.net/wiki/wikka.php?wakka=KeyPgPoint
- 最后更新: 2023-07-09
返回指定像素坐标处的颜色属性
语法
result = Point( coord_x, coord_y [,buffer] )
or
result = Point( function_index )用法
coord_x
像素的 x 坐标
coord_y
像素的 y 坐标
buffer
要读取的图像缓冲区
function_index
要返回的屏幕坐标类型:值 0、1、2、3 之一
返回值
返回数据类型为 ULong。
如果提供了像素的 x, y 坐标,Point 返回指定坐标处的颜色属性:在 8bpp 索引模式下为 8 位调色板索引,在 16bpp 模式下为 24 位 RGB 值(高 8 位未使用,R、G、B 精度有限),在 32bpp 模式下为 32 位 RGB 或 RGBA 值(高 8 位未使用或保存 Alpha)。注意它不返回 16 位值(5 位 R + 6 位 G + 5 位 B)。
如果参数为函数索引,Point 返回由最后一条图形命令设置的图形光标坐标之一。
| 参数 | 返回值 |
|---|---|
| 0 | 当前物理 x 坐标。 |
| 1 | 当前物理 y 坐标。 |
| 2 | 当前视图 x 坐标。如果未使用 WINDOW 语句,返回与 POINT(0) 函数相同的值。 |
| 3 | 当前视图 y 坐标。如果未使用 WINDOW 语句,返回与 POINT(1) 函数相同的值。 |
说明
GfxLib 函数,有两种不同用途。
如果提供了两个坐标,读取屏幕(或提供了 buffer 时读取缓冲区)中 coord_x、coord_y 坐标处的像素颜色。
在 256 色或更少颜色的 Screen (Graphics) 中返回颜色索引,在真彩色模式下返回 RGB 值。如果坐标超出屏幕或缓冲区范围,则返回 -1。
如果提供了单个值,返回由最后执行的图形命令设置的图形光标坐标之一。如果最后一个命令在缓冲区中执行,返回的值将是缓冲区中的坐标。范围 0-3 之外的参数将返回 0。
函数 Point 在文本模式下不起作用。
速度注意:虽然 Point 提供有效结果,但由于额外计算和检查的开销,反复调用相当慢。使用 Imageinfo 和 Screeninfo/ScreenPtr 的结果通过直接内存访问可以获得更好的性能。
示例
start GeSHi
' Set an appropriate screen mode - 320 x 240 x 8bpp indexed color
ScreenRes 320, 240, 8
' Draw a line using color 12 (light red)
Line (20,20)-(100,100), 12
' Print the color of a point on the line
Print Point(20,20)
' Sleep before the program closes
Sleepend GeSHi
输出:
12版本
fbc 1.08.0 之前,返回数据类型为 Integer。
与 QB 的区别
buffer是 FreeBASIC 新增的- 在 16bpp 和 32bpp 模式下,返回 32 位值而不是 8 位调色板索引
另请参阅
Pset- 写入像素PmapColorView (Graphics)WindowInternal pixel formats
返回 目录