hge中如何获取图片的像素点的颜色

来源:百度知道 编辑:UC知道 时间:2024/09/20 21:21:36
要获取鼠标点的颜色值要怎样操作

HGE::Texture_Lock

锁定一个纹理,以便对其进行访问。

DWORD *Texture_Lock(
HTEXTURE texture,
bool bReadOnly = true,
int left = 0,
int top = 0,
int width = 0,
int height = 0
);

参数
texture
要锁定的纹理句柄。
bReadOnly
可选项。如果为true,纹理在解锁之后将不会被更新。
left
可选项,要锁定的纹理区域的左上角X坐标。
top
可选项,要锁定的纹理区域的左上角Y坐标。
width
可选项,要锁定的纹理区域的宽度。
height
可选项,要锁定的纹理区域的高度。
返回值
如果执行成功,则返回被锁定的纹理数据的指针,否则返回0。

备注
被锁定的纹理数据是一个DWORD类型的color values数组。只有32位的纹理可以被锁定。因此在诸如Intel Solano这些比较老的显卡上无法锁定纹理。渲染目标和压缩纹理也无法被锁定。

如果纹理区域被指定,返回的指针将从纹理数据的起始位置跳过一段。要访问指定区域的纹理像素可以使用如下的语法:

DWORD color = locked_ptr[y*tex_width+x];
这里tex_width是纹理的宽度,可以通过Texture_GetWidth获得。

如果你不想编辑该纹理而只是想读取一些像素,那么请务必设置bReadOnly为true,这将跳过显卡的更新文理过程,从而加快执行效率。另外如果你只是编辑纹理的一部分,请务必指定纹理区域,因为只有这部分会在显存中更新。

当结束纹理访问时,必须使用Texture_Unlock函数对其进行解锁。

GetCursorPos
GetPixel