Skip to content

POINT


返回指定像素坐标处的颜色属性

语法

result = Point( coord_x, coord_y [,buffer] )
or
result = Point( function_index )

用法

coord_x

像素的 x 坐标

coord_y

像素的 y 坐标

buffer

要读取的图像缓冲区

function_index

要返回的屏幕坐标类型:值 0123 之一

返回值

返回数据类型为 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_xcoord_y 坐标处的像素颜色。

在 256 色或更少颜色的 Screen (Graphics) 中返回颜色索引,在真彩色模式下返回 RGB 值。如果坐标超出屏幕或缓冲区范围,则返回 -1

如果提供了单个值,返回由最后执行的图形命令设置的图形光标坐标之一。如果最后一个命令在缓冲区中执行,返回的值将是缓冲区中的坐标。范围 0-3 之外的参数将返回 0

函数 Point 在文本模式下不起作用。

速度注意:虽然 Point 提供有效结果,但由于额外计算和检查的开销,反复调用相当慢。使用 ImageinfoScreeninfo/ScreenPtr 的结果通过直接内存访问可以获得更好的性能。

示例

start GeSHi

vb
' 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
Sleep

end GeSHi

输出:

12

版本

fbc 1.08.0 之前,返回数据类型为 Integer

与 QB 的区别

  • buffer 是 FreeBASIC 新增的
  • 在 16bpp 和 32bpp 模式下,返回 32 位值而不是 8 位调色板索引

另请参阅

  • Pset - 写入像素
  • Pmap
  • Color
  • View (Graphics)
  • Window
  • Internal pixel formats

返回 目录

基于 FreeBASIC 官方文档翻译 如有侵权请联系我们删除
FreeBASIC 是开源项目,与微软公司无隶属关系