跳到主要内容

🛰️ 找图模块(FP)

📌 函数: HD识图_截图

描述

截图并保存到文件(.bmp)

原型

__int64 __stdcall HCFP_Capture(__int32 窗口序号,__int32 x,__int32 y,__int32 w,__int32 h,char* fileNamePath,BOOL 是否打开查看器=FALSE);

参数

__int32 窗口序号 - 窗口序号(从1开始)0表示全局全屏识别
__int32 x - 矩形范围左上角x
__int32 y - 矩形范围左上角y
__int32 w - 矩形范围宽度
__int32 h - 矩形范围高度
char* fileNamePath - 保存到文件的路径+文件名(.bmp)
bool 是否打开查看器 - 是否打开查看

返回值

查看返回值表

注意事项


HD识图_截图 - 基础示例

.版本 2

.子程序 _识图截图示例
.局部变量 截图结果, 逻辑型
.局部变量 窗口序号, 整数型
.局部变量 保存路径, 文本型

窗口序号 = 0
保存路径 = "C:\temp\screenshot.bmp"

截图结果 = HD识图_截图 (窗口序号, 0, 0, 800, 600, 保存路径)

.如果 (截图结果 = 真)
调试输出 ("截图保存成功: " + 保存路径)
.否则
调试输出 ("截图失败")
.如果结束

HD识图_截图 - 进阶用法

.版本 2
.子程序 示例2
调试输出("示例2")

HD识图_截图 - 高级应用

.版本 2
.子程序 高级示例
调试输出("高级示例")

📌 函数: HD识图_单点找色

描述

单点找色

原型

__int64 __stdcall HCFP_FindColor(__int32 窗口序号,__int32 x,__int32 y,__int32 w,__int32 h,char* deltaColor,doublesim,__int32 dirType=0);

参数

__int32 窗口序号 - 窗口序号(从1开始)0表示全局全屏识别
__int32 x - 矩形范围左上角x
__int32 y - 矩形范围左上角y
__int32 w - 矩形范围宽度
__int32 h - 矩形范围高度
char* deltaColor - 偏色(如
sim - 整个像素矩阵的相似度
__int32 dirType - 排序类型/方向类型排序/方向类型

返回值

查看返回值表
大于0表示:高4字节为x低4字节为y
json:\"{\"error\":0,\"ret\":[{\"bRet\":ret,\"info\":\"X1,Y1\"}]}\",

注意事项

注意返回值含义和XY值的提取

HD识图_单点找色 - 基础示例

.版本 2

.子程序 _单点找色示例
.局部变量 找色结果, 逻辑型
.局部变量 窗口序号, 整数型
.局部变量 找到的X, 整数型
.局部变量 找到的Y, 整数型
.局部变量 目标颜色, 文本型
.局部变量 相似度, 整数型
.局部变量 查找区域, 文本型

窗口序号 = 0
目标颜色 = "FF0000" ' 红色,格式:RRGGBB
相似度 = 90 ' 颜色相似度 0-100
查找区域 = "全屏(0,0,1920,1080)"

调试输出 ("开始查找颜色: " + 目标颜色 + ",相似度: " + 到文本 (相似度) + "%")
调试输出 ("查找区域: " + 查找区域)

' 先截图确保有最新图像
.如果 (HD截图_获取截图状态 (窗口序号) ≠ 1)
调试输出 ("正在初始化截图...")
HD截图_打开 (窗口序号, 0, 0, 1920, 1080, 1)
HD系统_延时 (200)
.如果结束

找色结果 = HD识图_单点找色 (窗口序号, 0, 0, 1920, 1080, 目标颜色, 相似度, 0, 找到的X, 找到的Y)

.如果 (找色结果 = 真)
调试输出 ("✓ 找到目标颜色!")
调试输出 ("位置坐标: (" + 到文本 (找到的X) + ", " + 到文本 (找到的Y) + ")")

' 验证找到的坐标是否有效
.如果 (找到的X ≥ 0 且 找到的Y ≥ 0 且 找到的X ≤ 1920 且 找到的Y ≤ 1080)
' 获取该坐标的实际颜色进行验证
.局部变量 实际颜色, 文本型
实际颜色 = HD截图_获取像素颜色 (窗口序号, 找到的X, 找到的Y)
调试输出 ("实际颜色: " + 实际颜色)

' 点击找到的坐标
调试输出 ("正在点击目标位置...")
HD键鼠_句柄发送鼠标单击 (窗口序号, 0, 找到的X, 找到的Y, 1, 0)
HD系统_延时 (100)
.否则
调试输出 ("警告:找到的坐标超出有效范围")
.如果结束

.否则
调试输出 ("× 未找到指定颜色")
调试输出 ("建议:")
调试输出 ("1. 检查颜色值是否正确")
调试输出 ("2. 降低相似度要求")
调试输出 ("3. 确认目标颜色在查找区域内")
.如果结束

返回 (找色结果)

HD识图_单点找色 - 进阶用法

.版本 2
.子程序 示例2
调试输出("示例2")

HD识图_单点找色 - 高级应用

.版本 2
.子程序 高级示例
调试输出("高级示例")

📌 函数: HD识图_多点找色

描述

多点找色

原型

__int64 __stdcall HCFP_FindColors(__int32 窗口序号,__int32 x,__int32 y,__int32 w,__int32 h,char* deltaColor,doublesim,__int32 dirType=0);

参数

__int32 窗口序号 - 窗口序号(从1开始)0表示全局全屏识别
__int32 x - 矩形范围左上角x
__int32 y - 矩形范围左上角y
__int32 w - 矩形范围宽度
__int32 h - 矩形范围高度
char* deltaColor - 偏色(如
sim - 整个像素矩阵的相似度
__int32 dirType - 排序类型/方向类型排序/方向类型

返回值

查看返回值表
返回找到匹配颜色的数量

注意事项

json:
{error:0,ret:[{bRet:1,info:结果}]}\"
info格式->像素序号,x1,y1|像素序号,x2,y2

HD识图_多点找色 - 基础示例

.版本 2

.子程序 _多点找色示例
.局部变量 找到数量, 整数型
.局部变量 窗口序号, 整数型
.局部变量 多个颜色, 文本型
.局部变量 返回信息, 文本型

窗口序号 = 0
多个颜色 = "FF0000,00FF00,0000FF" ' 红、绿、蓝三种颜色

找到数量 = HD识图_多点找色 (窗口序号, 0, 0, 1024, 768, 多个颜色, 90, 0)

.如果 (找到数量 > 0)
返回信息 = HD通用_获取最近返回json (窗口序号)
调试输出 ("找到" + 到文本 (找到数量) + "个颜色点")
调试输出 ("详细信息: " + 返回信息)
.否则
调试输出 ("未找到任何指定颜色")
.如果结束

HD识图_多点找色 - 进阶用法

.版本 2
.子程序 示例2
调试输出("示例2")

HD识图_多点找色 - 高级应用

.版本 2
.子程序 高级示例
调试输出("高级示例")

📌 函数: HD识图_多点偏移找色

描述

多点偏移找色

原型

__int64 __stdcall HCFP_FindColorsOffset(__int32 窗口序号,__int32 x,__int32 y,__int32 w,__int32 h,char* firstDeltaColor,char* deltaColor,doublesim,__int32 bALL=0,__int32 dirType=0);

参数

__int32 窗口序号 - 窗口序号(从1开始)0表示全局全屏识别
__int32 x - 矩形范围左上角x
__int32 y - 矩形范围左上角y
__int32 w - 宽度
__int32 h - 高度
char* firstDeltaColor - 首色XXXXXX-YYYYYY格式
char* deltaColor - 偏移色x1|y1|XXXXXX-YYYYYY|XXXXXX-YYYYYY|...,x2|y3|XXXXXX-YYYYYY|XXXXXX-YYYYYY|...,...格式
sim - 相似度
__int32 bALL - 是否全部找0表示找到一个就返回
__int32 dirType - 排序类型/方向类型排序/方向类型

返回值

查看返回值表

注意事项

json:
\"{\\"error\\":0,\\"ret\\":[{\\"bRet\\":%lld,\\"info\\":\\"%s\\"}]}\",
info:x1,y1|x2,y2|

HD识图_多点偏移找色 - 基础示例

.版本 2

.子程序 _多点偏移找色示例
.局部变量 找色结果, 逻辑型
.局部变量 窗口序号, 整数型
.局部变量 主颜色, 文本型
.局部变量 偏移组合, 文本型
.局部变量 坐标数组, HD_2个坐标, , "0"
.局部变量 i, 整数型

窗口序号 = 0
主颜色 = "FF0000" ' 红色为主色
偏移组合 = "10,0,00FF00|0,10,0000FF" ' 右边10像素是绿色,下面10像素是蓝色

找色结果 = HD识图_多点偏移找色 (窗口序号, 0, 0, 1024, 768, 主颜色, 偏移组合, 90, 0, 坐标数组)

.如果 (找色结果 = 真)
调试输出 ("找到符合偏移模式的颜色组合")
.计次循环首 (取数组成员数 (坐标数组), i)
调试输出 ("坐标" + 到文本 (i) + ": X=" + 到文本 (坐标数组 [i].x) + ", Y=" + 到文本 (坐标数组 [i].y))
.计次循环尾 ()
.否则
调试输出 ("未找到符合条件的颜色组合")
.如果结束

HD识图_多点偏移找色 - 进阶用法

.版本 2
.子程序 示例2
调试输出("示例2")

HD识图_多点偏移找色 - 高级应用

.版本 2
.子程序 高级示例
调试输出("高级示例")

📌 函数: HD识图_比较颜色

描述

比较颜色

原型

__int64 __stdcall HCFP_CmpColors(__int32 窗口序号,__int32 x,__int32 y,char* deltaColor);

参数

__int32 窗口序号 - 窗口序号(从1开始)0表示全局全屏识别
char* deltaColor - XXXXXX-YYYYYY格式

返回值

查看返回值表
1找到
0未找到

注意事项


HD识图_比较颜色 - 基础示例

.版本 2

.子程序 _简单颜色比较示例
.局部变量 颜色匹配, 逻辑型
.局部变量 窗口序号, 整数型
.局部变量 目标颜色, 文本型

窗口序号 = 0
目标颜色 = "FF0000" ' 红色

颜色匹配 = HD识图_比较颜色 (窗口序号, 100, 100, 目标颜色, 95)

.如果 (颜色匹配 = 真)
调试输出 ("坐标(100,100)是红色")
.否则
调试输出 ("坐标颜色不匹配")
.如果结束

HD识图_比较颜色 - 进阶用法

.版本 2
.子程序 示例2
调试输出("示例2")

HD识图_比较颜色 - 高级应用

.版本 2
.子程序 高级示例
调试输出("高级示例")

📌 函数: HD识图_比较颜色Ex

描述

多点找色确定某个图像块,指定多个具体点

原型

__int64 __stdcall HCFP_CmpColorExs(__int32 窗口序号,char* deltaXYColor);

参数

__int32 窗口序号 - 窗口序号(从1开始)0表示全局全屏识别
char* deltaXYColor - x1|y1|e3e6eb-101010|e3e6eb-101010|e3e6eb-101010|...,x2|y2|e3e6eb-101010|e3e6eb-101010|e3e6eb-101010|...

返回值

查看返回值表
找到返回8字节长整数包含第一个坐标点x1,y1低4字节x1高4字节y1
未找到返回0或者小于0
json:\"{\"error\":0,\"ret\":[{\"bRet\":ret,\"info\":”X1,Y1“}]}\",

注意事项

这个接口是给具体的坐标直接比较颜色
而这个HCFP_FindColorsOffset是是先搜索首色然后以首色开始拿到偏移的坐标去比较颜色

HD识图_比较颜色Ex - 基础示例

.版本 2

.子程序 _比较颜色Ex示例
.局部变量 比较结果, 逻辑型
.局部变量 窗口序号, 整数型
.局部变量 检查X, 整数型
.局部变量 检查Y, 整数型
.局部变量 返回X, 整数型
.局部变量 返回Y, 整数型

窗口序号 = 0
检查X = 100
检查Y = 200

比较结果 = HD识图_比较颜色Ex (窗口序号, 检查X, 检查Y, "FFFFFF", 95, 返回X, 返回Y)

.如果 (比较结果 = 真)
调试输出 ("坐标(" + 到文本 (检查X) + "," + 到文本 (检查Y) + ")的颜色匹配白色")
.否则
调试输出 ("坐标颜色不匹配")
.如果结束

HD识图_比较颜色Ex - 进阶用法

.版本 2
.子程序 示例2
调试输出("示例2")

HD识图_比较颜色Ex - 高级应用

.版本 2
.子程序 高级示例
调试输出("高级示例")

📌 函数: HD识图_获取颜色

描述

获取某个点的颜色值(从后台)

原型

__int64 __stdcall HCFP_GetColor(__int32 窗口序号,__int32 x,__int32 y);

参数

__int32 窗口序号 - 窗口序号(从1开始)0表示全局全屏识别
__int32 x - 客户区x
__int32 y - 客户区y

返回值

查看返回值表
大于0表示具体颜色值(ARGB)4字节颜色

注意事项

注意返回值含义和值的提取
#pragmapack(1)typedefstructMYA8R8G8B8{BYTEm_a;\n0x00BYTEm_r;\n低8位BYTEm_g;\n中8位BYTEm_b;\n高8位MYA8R8G8B8(){m_a=0;m_r=0;m_g=0;m_b=0;}}MYA8R8G8B8;
#pragmapack()
json:
“{\"error\":0,\"ret\":[{\"bRet\":1,\"info\":\"44,29,5B\"}]}”A(0x00)rgbr红色:低8位g绿色:中8位b蓝色:高8位RGBFFFFFF

HD识图_获取颜色 - 基础示例

.版本 2

.子程序 _获取颜色示例
.局部变量 颜色值, 文本型
.局部变量 窗口序号, 整数型
.局部变量 检查X, 整数型
.局部变量 检查Y, 整数型

窗口序号 = 0
检查X = 500
检查Y = 300

颜色值 = HD识图_获取颜色 (窗口序号, 检查X, 检查Y)

.如果 (颜色值 ≠ "")
调试输出 ("坐标(" + 到文本 (检查X) + "," + 到文本 (检查Y) + ")的颜色: " + 颜色值)

' 可以用获取到的颜色进行后续查找
.如果 (颜色值 = "FF0000")
调试输出 ("这是红色像素")
.如果结束
.否则
调试输出 ("获取颜色失败")
.如果结束

HD识图_获取颜色 - 进阶用法

.版本 2
.子程序 示例2
调试输出("示例2")

HD识图_获取颜色 - 高级应用

.版本 2
.子程序 高级示例
调试输出("高级示例")

📌 函数: HD识图_范围找图

描述

在客户区范围内找图(仅支持一个图片)

原型

__int64 __stdcall HCFP_FindPic(__int32 窗口序号,__int32 x,__int32 y,__int32 w,__int32 h,char* 图片名字,char* deltaColor,doublesim,__int32 dirType=0);

参数

__int32 窗口序号 - 窗口序号(从1开始)0表示全局全屏识别
__int32 x - 矩形范围左上角x
__int32 y - 矩形范围左上角y
__int32 w - 矩形范围宽度
__int32 h - 矩形范围高度
char* 图片名字 - 一张图片(bmp)文件名字(不包含路径,路径调用HCRES_SetResPath全局设置)
char* deltaColor - 偏色(如
sim - 整个像素矩阵的相似度
__int32 dirType - 排序类型/方向类型排序/方向类型

返回值

查看返回值表
大于0表示:低4字节为x高4字节为y
返回json:0,x1,y1,w1,h1|对于这种单图索引固定为0

注意事项

注意返回值含义和xy值的提取
{error:0,ret:[{bRet:NN,info:MM}]}
图片索引,左上角X,左上角Y,宽度,高度|
NN:返回值
MM:index1,x1,y1,w1,h1|index2,x2,y2,w3,h3|index3,x3,y3,w3,h3|含义:图片索引(0开始),左上角X,左上角Y,宽度,高度|

HD识图_范围找图 - 基础示例

.版本 2

.子程序 _范围找图示例
.局部变量 找图结果, 逻辑型
.局部变量 窗口序号, 整数型
.局部变量 图片路径, 文本型
.局部变量 找到的X, 整数型
.局部变量 找到的Y, 整数型

窗口序号 = 0
图片路径 = "C:\images\button.bmp"

找图结果 = HD识图_范围找图 (窗口序号, 0, 0, 1024, 768, 图片路径, "", 90, 0, 找到的X, 找到的Y)

.如果 (找图结果 = 真)
调试输出 ("找到图片位置: X=" + 到文本 (找到的X) + ", Y=" + 到文本 (找到的Y))
' 点击找到的图片中心
HD键鼠_句柄发送鼠标单击 (窗口序号, 0, 找到的X + 25, 找到的Y + 12, 1, 0)
.否则
调试输出 ("未找到指定图片")
.如果结束

HD识图_范围找图 - 进阶用法

.版本 2
.子程序 示例2
调试输出("示例2")

HD识图_范围找图 - 高级应用

.版本 2
.子程序 高级示例
调试输出("高级示例")

📌 函数: HD识图_范围找图Ex

描述

在客户区范围内找图(返回找到其中一张信息)

原型

__int64 __stdcall HCFP_FindPicEx(__int32 窗口序号,__int32 x,__int32 y,__int32 w,__int32 h,char* 图片名字集合,char* deltaColor,doublesim,__int32 dirType=0);

参数

__int32 窗口序号 - 窗口序号(从1开始)0表示全局全屏识别
__int32 x - 矩形范围左上角x
__int32 y - 矩形范围左上角y
__int32 w - 矩形范围宽度
__int32 h - 矩形范围高度
char* 图片名字集合 - 多张张图片(bmp)文件名字(不包含路径,路径调用HCRES_SetResPath全局设置),以'|'分隔开
char* deltaColor - 偏色(如
sim - 整个像素矩阵的相似度
__int32 dirType - 排序类型/方向类型排序/方向类型

返回值

查看返回值表
大于0表示:低4字节为x高4字节为y
返回json:index1,x1,y1,w1,h1|index2,x2,y2,w3,h3|index3,x3,y3,w3,h3|

注意事项

注意返回值含义和xy值的提取
返回json:
{error:0,ret:[{bRet:NN,info:MM}]}
图片索引,左上角X,左上角Y,宽度,高度|
NN:返回值
MM:index1,x1,y1,w1,h1|index2,x2,y2,w3,h3|index3,x3,y3,w3,h3|含义:图片索引(0开始),左上角X,左上角Y,宽度,高度|

HD识图_范围找图Ex - 基础示例

.版本 2

.子程序 _范围找图EX示例
.局部变量 找图结果, 逻辑型
.局部变量 窗口序号, 整数型
.局部变量 图片列表, 文本型
.局部变量 坐标数组, HD_2个坐标, , "0"
.局部变量 返回信息, 文本型
.局部变量 i, 整数型

窗口序号 = 0
图片列表 = "C:\images\button1.bmp|C:\images\button2.bmp|C:\images\button3.bmp"

找图结果 = HD识图_范围找图EX (窗口序号, 0, 0, 1024, 768, 图片列表, "", 90, 0, 坐标数组)

.如果 (找图结果 = 真)
返回信息 = HD通用_获取最近返回json (窗口序号)
调试输出 ("找到图片,详细信息: " + 返回信息)

.计次循环首 (取数组成员数 (坐标数组), i)
调试输出 ("图片" + 到文本 (i) + "位置: X=" + 到文本 (坐标数组 [i].x) + ", Y=" + 到文本 (坐标数组 [i].y))
.计次循环尾 ()
.否则
调试输出 ("未找到任何指定图片")
.如果结束

HD识图_范围找图Ex - 进阶用法

.版本 2
.子程序 示例2
调试输出("示例2")

HD识图_范围找图Ex - 高级应用

.版本 2
.子程序 高级示例
调试输出("高级示例")

📌 函数: HCFP_FindPicExx

描述

在客户区范围内找图(返回全部找到的信息)

原型

__int64 __stdcall HCFP_FindPicExx(__int32 窗口序号,__int32 x,__int32 y,__int32 w,__int32 h,char* 图片名字集合,char* deltaColor,doublesim,BOOL bAll=TRUE,__int32 dirType=0);

参数

__int32 窗口序号 - 窗口序号(从1开始)0表示全局全屏识别
__int32 x - 矩形范围左上角x
__int32 y - 矩形范围左上角y
__int32 w - 矩形范围宽度
__int32 h - 矩形范围高度
char* 图片名字集合 - 多张张图片(bmp)文件名字(不包含路径,路径调用HCRES_SetResPath全局设置),以'|'分隔开
char* deltaColor - 偏色(如
sim - 整个像素矩阵的相似度
bool bAll - 是否全部找如果不是表示每个图片只找一次就换下个图片
__int32 dirType - 排序类型/方向类型排序/方向类型

返回值

查看返回值表
返回01错误值

注意事项

注意返回值含义和xy值的提取
返回json:
{error:0,ret:[{bRet:NN,info:MM}]}
图片索引,左上角X,左上角Y,宽度,高度|
NN:返回值
MM:index1,x1,y1,w1,h1|index2,x2,y2,w3,h3|index3,x3,y3,w3,h3|含义:图片索引(0开始),左上角X,左上角Y,宽度,高度|

HCFP_FindPicExx - 基础示例

.版本 2

.子程序 _范围找图示例
.局部变量 找图结果, 逻辑型
.局部变量 窗口序号, 整数型
.局部变量 图片路径, 文本型
.局部变量 找到的X, 整数型
.局部变量 找到的Y, 整数型

窗口序号 = 0
图片路径 = "C:\images\button.bmp"

找图结果 = HD识图_范围找图 (窗口序号, 0, 0, 1024, 768, 图片路径, "", 90, 0, 找到的X, 找到的Y)

.如果 (找图结果 = 真)
调试输出 ("找到图片位置: X=" + 到文本 (找到的X) + ", Y=" + 到文本 (找到的Y))
' 点击找到的图片中心
HD键鼠_句柄发送鼠标单击 (窗口序号, 0, 找到的X + 25, 找到的Y + 12, 1, 0)
.否则
调试输出 ("未找到指定图片")
.如果结束

HCFP_FindPicExx - 进阶用法

.版本 2
.子程序 示例2
调试输出("示例2")

HCFP_FindPicExx - 高级应用

.版本 2
.子程序 高级示例
调试输出("高级示例")

📌 函数: HD识图_是否卡屏

描述

在客户区范围内检测再规定时间内是否卡图

原型

__int64 __stdcall HCFP_IsDisplayDead(__int32 窗口序号,__int32 x,__int32 y,__int32 w,__int32 h,__int32 mstime);

参数

__int32 窗口序号 - 窗口序号(从1开始)0表示全局全屏识别
__int32 x - 矩形范围左上角x
__int32 y - 矩形范围左上角y
__int32 w - 矩形范围宽度
__int32 h - 矩形范围高度
__int32 mstime - 间隔时间(不变就说明卡屏了),不会卡主线程

返回值

查看返回值表

注意事项


HD识图_是否卡屏 - 基础示例

.版本 2

.子程序 _检测卡屏示例
.局部变量 是否卡屏, 逻辑型
.局部变量 窗口序号, 整数型
.局部变量 等待时间, 整数型

窗口序号 = 0
等待时间 = 3000 ' 等待3秒检测

是否卡屏 = HD识图_是否卡屏 (窗口序号, 0, 0, 800, 600, 等待时间)

.如果 (是否卡屏 = 真)
调试输出 ("检测到卡屏,可能程序无响应")
' 可以采取重启或其他恢复操作
.否则
调试输出 ("屏幕正常,程序运行中")
.如果结束

HD识图_是否卡屏 - 进阶用法

.版本 2
.子程序 示例2
调试输出("示例2")

HD识图_是否卡屏 - 高级应用

.版本 2
.子程序 高级示例
调试输出("高级示例")

📌 函数: HD识图_获取区域图像CRC

描述

在客户区范围内获取像素CRC值,用于卡屏校验

原型

__int64 __stdcall HCFP_GetRangeCRC(__int32 窗口序号,__int32 x,__int32 y,__int32 w,__int32 h);

参数

__int32 窗口序号 - 窗口序号(从1开始)0表示全局全屏识别
__int32 x - 矩形范围左上角x
__int32 y - 矩形范围左上角y
__int32 w - 矩形范围宽度
__int32 h - 矩形范围高度

返回值

查看返回值表

注意事项

json:
{\\"error\\":0,\\"ret\\":[{\\"bRet\\":%lld,\\"info\\":\"%X“,\\"time\\":%d}]}
info字段是校验值4字节整数

HD识图_获取区域图像CRC - 基础示例

.版本 2

.子程序 _获取区域CRC示例
.局部变量 CRC值, 整数型
.局部变量 窗口序号, 整数型
.局部变量 上次CRC值, 整数型

窗口序号 = 0
上次CRC值 = 0

' 获取指定区域的CRC值
CRC值 = HD识图_获取区域图像CRC (窗口序号, 100, 100, 300, 200)

.如果 (CRC值 > 0)
调试输出 ("区域CRC值: " + 到文本 (CRC值))

.如果 (上次CRC值 ≠ 0 且 上次CRC值 ≠ CRC值)
调试输出 ("区域图像发生变化")
.如果结束

上次CRC值 = CRC值
.否则
调试输出 ("获取CRC值失败")
.如果结束

HD识图_获取区域图像CRC - 进阶用法

.版本 2
.子程序 示例2
调试输出("示例2")

HD识图_获取区域图像CRC - 高级应用

.版本 2
.子程序 高级示例
调试输出("高级示例")

📌 函数: HD识图_单点找色从文件

描述

单点找色(从文件)

原型

__int64 __stdcall HCFP_FindColorByFile(__int32 窗口序号,char* orgImageName,__int32 x,__int32 y,__int32 w,__int32 h,char* deltaColor,doublesim,__int32 dirType=0);

参数

__int32 窗口序号 - 窗口序号(从1开始)0表示全局全屏识别
char* orgImageName - 指定一张原图数据(支持绝对路径和相对路径)bmp图片文件
__int32 x - 矩形范围左上角x
__int32 y - 矩形范围左上角y
__int32 w - 矩形范围宽度
__int32 h - 矩形范围高度
char* deltaColor - 偏色(如
sim - 整个像素矩阵的相似度
__int32 dirType - 排序类型/方向类型排序/方向类型

返回值

查看返回值表
大于0表示:高4字节为x低4字节为y
json:\"{\"error\":0,\"ret\":[{\"bRet\":ret,\"info\":\"X1,Y1\"}]}\",

注意事项

注意返回值含义和XY值的提取

HD识图_单点找色从文件 - 基础示例

.版本 2

.子程序 _从文件找色示例
.局部变量 找色结果, 逻辑型
.局部变量 图片路径, 文本型
.局部变量 找到的X, 整数型
.局部变量 找到的Y, 整数型

图片路径 = "C:\temp\target.bmp"

找色结果 = HD识图_单点找色从文件 (图片路径, 0, 0, 800, 600, "00FF00", 95, 0, 找到的X, 找到的Y)

.如果 (找色结果 = 真)
调试输出 ("在图片中找到绿色: X=" + 到文本 (找到的X) + ", Y=" + 到文本 (找到的Y))
.否则
调试输出 ("图片中未找到指定颜色")
.如果结束

HD识图_单点找色从文件 - 进阶用法

.版本 2
.子程序 示例2
调试输出("示例2")

HD识图_单点找色从文件 - 高级应用

.版本 2
.子程序 高级示例
调试输出("高级示例")

📌 函数: HD识图_单点找色从内存

描述

单点找色(从内存)

原型

__int64 __stdcall HCFP_FindColorByMem(__int32 窗口序号,BYTE* data,__int32 dataSize,__int32 x,__int32 y,__int32 w,__int32 h,char* deltaColor,doublesim,__int32 dirType=0);

参数

__int32 窗口序号 - 窗口序号(从1开始)0表示全局全屏识别
byte* data - Bmp图片字节数据缓冲区地址
__int32 dataSize - Bmp图片字节大小
__int32 x - 矩形范围左上角x
__int32 y - 矩形范围左上角y
__int32 w - 矩形范围宽度
__int32 h - 矩形范围高度
char* deltaColor - 偏色(如
sim - 整个像素矩阵的相似度
__int32 dirType - 排序类型/方向类型排序/方向类型

返回值

查看返回值表
大于0表示:高4字节为x低4字节为y
json:\"{\"error\":0,\"ret\":[{\"bRet\":ret,\"info\":\"X1,Y1\"}]}\",

注意事项

注意返回值含义和XY值的提取
图片内存缓冲区自己维护

HD识图_单点找色从内存 - 基础示例

.版本 2

.子程序 _从内存找色示例
.局部变量 找色结果, 逻辑型
.局部变量 图像地址, 整数型
.局部变量 图像宽度, 整数型
.局部变量 图像高度, 整数型
.局部变量 找到的X, 整数型
.局部变量 找到的Y, 整数型

' 首先获取截图数据
HD截图_获取截图数据 (0, 图像地址, 图像宽度)
图像高度 = 600 ' 假设高度

.如果 (图像地址 ≠ 0)
找色结果 = HD识图_单点找色从内存 (图像地址, 图像宽度, 图像高度, 0, 0, 800, 600, "0000FF", 90, 0, 找到的X, 找到的Y)

.如果 (找色结果 = 真)
调试输出 ("从内存找到蓝色: X=" + 到文本 (找到的X) + ", Y=" + 到文本 (找到的Y))
.否则
调试输出 ("内存中未找到指定颜色")
.如果结束

' 释放内存
HD截图_释放内存池数据 (0, 图像地址)
.如果结束

HD识图_单点找色从内存 - 进阶用法

.版本 2
.子程序 示例2
调试输出("示例2")

HD识图_单点找色从内存 - 高级应用

.版本 2
.子程序 高级示例
调试输出("高级示例")

📌 函数: HD识图_多点找色从文件

描述

多点找色(从文件)

原型

__int64 __stdcall HCFP_FindColorsByFile(__int32 窗口序号,char* orgImageName,__int32 x,__int32 y,__int32 w,__int32 h,char* deltaColor,doublesim,__int32 dirType=0);

参数

__int32 窗口序号 - 窗口序号(从1开始)0表示全局全屏识别
char* orgImageName - 指定一张原图数据(支持绝对路径和相对路径)
__int32 x - 矩形范围左上角x
__int32 y - 矩形范围左上角y
__int32 w - 矩形范围宽度
__int32 h - 矩形范围高度
char* deltaColor - 偏色(如
sim - 整个像素矩阵的相似度
__int32 dirType - 排序类型/方向类型排序/方向类型

返回值

查看返回值表

注意事项

json:
{error:0,ret:[{bRet:1,info:结果}]}\"
info格式->像素序号,x1,y1|像素序号,x2,y2

HD识图_多点找色从文件 - 基础示例

.版本 2

.子程序 _从文件比较颜色示例
.局部变量 颜色匹配, 逻辑型
.局部变量 图片路径, 文本型

图片路径 = "C:\temp\sample.bmp"

颜色匹配 = HD识图_比较颜色从文件 (图片路径, 150, 200, "00FF00", 90)

.如果 (颜色匹配 = 真)
调试输出 ("图片中指定位置是绿色")
.否则
调试输出 ("图片中颜色不匹配")
.如果结束

HD识图_多点找色从文件 - 进阶用法

.版本 2
.子程序 示例2
调试输出("示例2")

HD识图_多点找色从文件 - 高级应用

.版本 2
.子程序 高级示例
调试输出("高级示例")

📌 函数: HD识图_多点找色从内存

描述

多点找色(从内存)

原型

__int64 __stdcall HCFP_FindColorsByMem(__int32 窗口序号,BYTE* data,__int32 dataSize,__int32 x,__int32 y,__int32 w,__int32 h,char* deltaColor,doublesim,__int32 dirType=0);

参数

__int32 窗口序号 - 窗口序号(从1开始)0表示全局全屏识别
byte* data - Bmp图片字节数据缓冲区地址
__int32 dataSize - Bmp图片字节大小
__int32 x - 矩形范围左上角x
__int32 y - 矩形范围左上角y
__int32 w - 矩形范围宽度
__int32 h - 矩形范围高度
char* deltaColor - 偏色(如
sim - 整个像素矩阵的相似度
__int32 dirType - 排序类型/方向类型排序/方向类型

返回值

查看返回值表

注意事项

json:
{error:0,ret:[{bRet:1,info:结果}]}\"
info格式->像素序号,x1,y1|像素序号,x2,y2
图片内存缓冲区自己维护

HD识图_多点找色从内存 - 基础示例

.版本 2

.子程序 _从内存比较颜色示例
.局部变量 颜色匹配, 逻辑型
.局部变量 图像地址, 整数型
.局部变量 图像宽度, 整数型
.局部变量 图像高度, 整数型

' 首先获取截图数据
HD截图_获取截图数据 (0, 图像地址, 图像宽度)
图像高度 = 600

.如果 (图像地址 ≠ 0)
颜色匹配 = HD识图_比较颜色从内存 (图像地址, 图像宽度, 图像高度, 200, 150, "FFFFFF", 95)

.如果 (颜色匹配 = 真)
调试输出 ("内存图像中指定位置是白色")
.否则
调试输出 ("内存图像中颜色不匹配")
.如果结束

' 释放内存
HD截图_释放内存池数据 (0, 图像地址)
.如果结束

HD识图_多点找色从内存 - 进阶用法

.版本 2
.子程序 示例2
调试输出("示例2")

HD识图_多点找色从内存 - 高级应用

.版本 2
.子程序 高级示例
调试输出("高级示例")

📌 函数: HD识图_多点偏移找色从文件

描述

多点偏移找色(从文件)

原型

__int64 __stdcall HCFP_FindColorsOffsetByFile(__int32 窗口序号,char* orgImageName,__int32 x,__int32 y,__int32 w,__int32 h,char* firstDeltaColor,char* deltaColor,doublesim,__int32 bALL=0,__int32 dirType=0);

参数

__int32 窗口序号 - 窗口序号(从1开始)0表示全局全屏识别
char* orgImageName - 指定一张原图数据(支持绝对路径和相对路径)
__int32 x - 矩形范围左上角x
__int32 y - 矩形范围左上角y
__int32 w - 宽度
__int32 h - 高度
char* firstDeltaColor - 首色XXXXXX-YYYYYY格式
char* deltaColor - 偏移色x1|y1|XXXXXX-YYYYYY|XXXXXX-YYYYYY|...,x2|y3|XXXXXX-YYYYYY|XXXXXX-YYYYYY|...,...格式
sim - 相似度
__int32 bALL - 是否全部找0表示找到一个就返回
__int32 dirType - 排序类型/方向类型排序/方向类型

返回值

查看返回值表

注意事项


HD识图_多点偏移找色从文件 - 基础示例

.版本 2

.子程序 _多点偏移找色示例
.局部变量 找色结果, 逻辑型
.局部变量 窗口序号, 整数型
.局部变量 主颜色, 文本型
.局部变量 偏移组合, 文本型
.局部变量 坐标数组, HD_2个坐标, , "0"
.局部变量 i, 整数型

窗口序号 = 0
主颜色 = "FF0000" ' 红色为主色
偏移组合 = "10,0,00FF00|0,10,0000FF" ' 右边10像素是绿色,下面10像素是蓝色

找色结果 = HD识图_多点偏移找色 (窗口序号, 0, 0, 1024, 768, 主颜色, 偏移组合, 90, 0, 坐标数组)

.如果 (找色结果 = 真)
调试输出 ("找到符合偏移模式的颜色组合")
.计次循环首 (取数组成员数 (坐标数组), i)
调试输出 ("坐标" + 到文本 (i) + ": X=" + 到文本 (坐标数组 [i].x) + ", Y=" + 到文本 (坐标数组 [i].y))
.计次循环尾 ()
.否则
调试输出 ("未找到符合条件的颜色组合")
.如果结束

HD识图_多点偏移找色从文件 - 进阶用法

.版本 2
.子程序 示例2
调试输出("示例2")

HD识图_多点偏移找色从文件 - 高级应用

.版本 2
.子程序 高级示例
调试输出("高级示例")

📌 函数: HD识图_多点偏移找色从内存

描述

多点偏移找色(从内存)

原型

__int64 __stdcall HCFP_FindColorsOffsetByMem(__int32 窗口序号,BYTE* data,__int32 dataSize,__int32 x,__int32 y,__int32 w,__int32 h,char* firstDeltaColor,char* deltaColor,doublesim,__int32 bALL=0,__int32 dirType=0);

参数

__int32 窗口序号 - 窗口序号(从1开始)0表示全局全屏识别
byte* data - Bmp图片字节数据缓冲区地址
__int32 dataSize - Bmp图片字节大小
__int32 x - 矩形范围左上角x
__int32 y - 矩形范围左上角y
__int32 w - 宽度
__int32 h - 高度
char* firstDeltaColor - 首色XXXXXX-YYYYYY格式
char* deltaColor - 偏移色x1|y1|XXXXXX-YYYYYY|XXXXXX-YYYYYY|...,x2|y3|XXXXXX-YYYYYY|XXXXXX-YYYYYY|...,...格式
sim - 相似度
__int32 bALL - 是否全部找0表示找到一个就返回
__int32 dirType - 排序类型/方向类型排序/方向类型

返回值

查看返回值表

注意事项

图片内存缓冲区自己维护

HD识图_多点偏移找色从内存 - 基础示例

.版本 2

.子程序 _多点偏移找色示例
.局部变量 找色结果, 逻辑型
.局部变量 窗口序号, 整数型
.局部变量 主颜色, 文本型
.局部变量 偏移组合, 文本型
.局部变量 坐标数组, HD_2个坐标, , "0"
.局部变量 i, 整数型

窗口序号 = 0
主颜色 = "FF0000" ' 红色为主色
偏移组合 = "10,0,00FF00|0,10,0000FF" ' 右边10像素是绿色,下面10像素是蓝色

找色结果 = HD识图_多点偏移找色 (窗口序号, 0, 0, 1024, 768, 主颜色, 偏移组合, 90, 0, 坐标数组)

.如果 (找色结果 = 真)
调试输出 ("找到符合偏移模式的颜色组合")
.计次循环首 (取数组成员数 (坐标数组), i)
调试输出 ("坐标" + 到文本 (i) + ": X=" + 到文本 (坐标数组 [i].x) + ", Y=" + 到文本 (坐标数组 [i].y))
.计次循环尾 ()
.否则
调试输出 ("未找到符合条件的颜色组合")
.如果结束

HD识图_多点偏移找色从内存 - 进阶用法

.版本 2
.子程序 示例2
调试输出("示例2")

HD识图_多点偏移找色从内存 - 高级应用

.版本 2
.子程序 高级示例
调试输出("高级示例")

📌 函数: HD识图_范围找图从文件

描述

在客户区范围内找图(从文件)(仅支持一个图片)

原型

__int64 __stdcall HCFP_FindPicByFile(__int32 窗口序号,char* orgImageName,__int32 x,__int32 y,__int32 w,__int32 h,char* 图片名字,char* deltaColor,doublesim,__int32 dirType=0);

参数

__int32 窗口序号 - 窗口序号(从1开始)0表示全局全屏识别
char* orgImageName - 指定一张原图数据(支持绝对路径和相对路径)
__int32 x - 矩形范围左上角x
__int32 y - 矩形范围左上角y
__int32 w - 矩形范围宽度
__int32 h - 矩形范围高度
char* 图片名字 - 一张图片(bmp)文件名字(路径调用HCRES_SetResPath全局设置)(支持绝对路径和相对路径)
char* deltaColor - 偏色(如
sim - 整个像素矩阵的相似度
__int32 dirType - 排序类型/方向类型排序/方向类型

返回值

查看返回值表
大于0表示:高4字节为x低4字节为y

注意事项

注意返回值含义和xy值的提取
{error:0,ret:[{bRet:NN,info:MM}]}
图片索引,左上角X,左上角Y,宽度,高度|
NN:返回值
MM:index1,x1,y1,w1,h1|index2,x2,y2,w3,h3|index3,x3,y3,w3,h3|含义:图片索引(0开始),左上角X,左上角Y,宽度,高度|

HD识图_范围找图从文件 - 基础示例

.版本 2

.子程序 _范围找图示例
.局部变量 找图结果, 逻辑型
.局部变量 窗口序号, 整数型
.局部变量 图片路径, 文本型
.局部变量 找到的X, 整数型
.局部变量 找到的Y, 整数型

窗口序号 = 0
图片路径 = "C:\images\button.bmp"

找图结果 = HD识图_范围找图 (窗口序号, 0, 0, 1024, 768, 图片路径, "", 90, 0, 找到的X, 找到的Y)

.如果 (找图结果 = 真)
调试输出 ("找到图片位置: X=" + 到文本 (找到的X) + ", Y=" + 到文本 (找到的Y))
' 点击找到的图片中心
HD键鼠_句柄发送鼠标单击 (窗口序号, 0, 找到的X + 25, 找到的Y + 12, 1, 0)
.否则
调试输出 ("未找到指定图片")
.如果结束

HD识图_范围找图从文件 - 进阶用法

.版本 2
.子程序 示例2
调试输出("示例2")

HD识图_范围找图从文件 - 高级应用

.版本 2
.子程序 高级示例
调试输出("高级示例")

📌 函数: HD识图_范围找图从内存

描述

在客户区范围内找图(从内存)(仅支持一个图片)

原型

__int64 __stdcall HCFP_FindPicByMem(__int32 窗口序号,BYTE* data,__int32 dataSize,__int32 x,__int32 y,__int32 w,__int32 h,char* 图片名字,char* deltaColor,doublesim,__int32 dirType=0);

参数

__int32 窗口序号 - 窗口序号(从1开始)0表示全局全屏识别
byte* data - Bmp图片字节数据缓冲区地址
__int32 dataSize - Bmp图片字节大小
__int32 x - 矩形范围左上角x
__int32 y - 矩形范围左上角y
__int32 w - 矩形范围宽度
__int32 h - 矩形范围高度
char* 图片名字 - 一张图片(bmp)文件名字(路径调用HCRES_SetResPath全局设置)(支持绝对路径和相对路径)
char* deltaColor - 偏色(如
sim - 整个像素矩阵的相似度
__int32 dirType - 排序类型/方向类型排序/方向类型

返回值

查看返回值表
大于0表示:高4字节为x低4字节为y

注意事项

注意返回值含义和xy值的提取
图片内存缓冲区自己维护
{error:0,ret:[{bRet:NN,info:MM}]}
图片索引,左上角X,左上角Y,宽度,高度|
NN:返回值
MM:index1,x1,y1,w1,h1|index2,x2,y2,w3,h3|index3,x3,y3,w3,h3|含义:图片索引(0开始),左上角X,左上角Y,宽度,高度|

HD识图_范围找图从内存 - 基础示例

.版本 2

.子程序 _范围找图示例
.局部变量 找图结果, 逻辑型
.局部变量 窗口序号, 整数型
.局部变量 图片路径, 文本型
.局部变量 找到的X, 整数型
.局部变量 找到的Y, 整数型

窗口序号 = 0
图片路径 = "C:\images\button.bmp"

找图结果 = HD识图_范围找图 (窗口序号, 0, 0, 1024, 768, 图片路径, "", 90, 0, 找到的X, 找到的Y)

.如果 (找图结果 = 真)
调试输出 ("找到图片位置: X=" + 到文本 (找到的X) + ", Y=" + 到文本 (找到的Y))
' 点击找到的图片中心
HD键鼠_句柄发送鼠标单击 (窗口序号, 0, 找到的X + 25, 找到的Y + 12, 1, 0)
.否则
调试输出 ("未找到指定图片")
.如果结束

HD识图_范围找图从内存 - 进阶用法

.版本 2
.子程序 示例2
调试输出("示例2")

HD识图_范围找图从内存 - 高级应用

.版本 2
.子程序 高级示例
调试输出("高级示例")

📌 函数: HD识图_范围找图从文件Ex

描述

在客户区范围内找图(从文件)(找到一个图片就返回)

原型

__int64 __stdcall HCFP_FindPicExByFile(__int32 窗口序号,char* orgImageName,__int32 x,__int32 y,__int32 w,__int32 h,char* 图片名字集合,char* deltaColor,doublesim,__int32 dirType=0);

参数

__int32 窗口序号 - 窗口序号(从1开始)0表示全局全屏识别
char* orgImageName - 指定一张原图数据(支持绝对路径和相对路径)
__int32 x - 矩形范围左上角x
__int32 y - 矩形范围左上角y
__int32 w - 矩形范围宽度
__int32 h - 矩形范围高度
char* 图片名字集合 - 多张张图片(bmp)文件名字(不包含路径,路径调用HCRES_SetResPath全局设置),以'|'分隔开(支持绝对路径和相对路径)
char* deltaColor - 偏色(如
sim - 整个像素矩阵的相似度
__int32 dirType - 排序类型/方向类型排序/方向类型

返回值

查看返回值表
大于0表示:低4字节为x高4字节为y

注意事项

注意返回值含义和xy值的提取
返回json:
{error:0,ret:[{bRet:NN,info:MM}]}
图片索引,左上角X,左上角Y,宽度,高度|
NN:返回值
MM:index1,x1,y1,w1,h1|index2,x2,y2,w3,h3|index3,x3,y3,w3,h3|含义:图片索引(0开始),左上角X,左上角Y,宽度,高度|

HD识图_范围找图从文件Ex - 基础示例

.版本 2

.子程序 _范围找图EX示例
.局部变量 找图结果, 逻辑型
.局部变量 窗口序号, 整数型
.局部变量 图片列表, 文本型
.局部变量 坐标数组, HD_2个坐标, , "0"
.局部变量 返回信息, 文本型
.局部变量 i, 整数型

窗口序号 = 0
图片列表 = "C:\images\button1.bmp|C:\images\button2.bmp|C:\images\button3.bmp"

找图结果 = HD识图_范围找图EX (窗口序号, 0, 0, 1024, 768, 图片列表, "", 90, 0, 坐标数组)

.如果 (找图结果 = 真)
返回信息 = HD通用_获取最近返回json (窗口序号)
调试输出 ("找到图片,详细信息: " + 返回信息)

.计次循环首 (取数组成员数 (坐标数组), i)
调试输出 ("图片" + 到文本 (i) + "位置: X=" + 到文本 (坐标数组 [i].x) + ", Y=" + 到文本 (坐标数组 [i].y))
.计次循环尾 ()
.否则
调试输出 ("未找到任何指定图片")
.如果结束

HD识图_范围找图从文件Ex - 进阶用法

.版本 2
.子程序 示例2
调试输出("示例2")

HD识图_范围找图从文件Ex - 高级应用

.版本 2
.子程序 高级示例
调试输出("高级示例")

📌 函数: HD识图_范围找图从内存Ex

描述

在客户区范围内找图(从内存)(找到一个图片就返回)

原型

__int64 __stdcall HCFP_FindPicExByMem(__int32 窗口序号,BYTE* data,__int32 dataSize,__int32 x,__int32 y,__int32 w,__int32 h,char* 图片名字集合,char* deltaColor,doublesim,__int32 dirType=0);

参数

__int32 窗口序号 - 窗口序号(从1开始)0表示全局全屏识别
byte* data - Bmp图片字节数据缓冲区地址
__int32 dataSize - Bmp图片字节大小
__int32 x - 矩形范围左上角x
__int32 y - 矩形范围左上角y
__int32 w - 矩形范围宽度
__int32 h - 矩形范围高度
char* 图片名字集合 - 多张张图片(bmp)文件名字(不包含路径,路径调用HCRES_SetResPath全局设置),以'|'分隔开(支持绝对路径和相对路径)
char* deltaColor - 偏色(如
sim - 整个像素矩阵的相似度
__int32 dirType - 排序类型/方向类型排序/方向类型

返回值

查看返回值表
大于0表示:低4字节为x高4字节为y

注意事项

注意返回值含义和xy值的提取
图片内存缓冲区自己维护
返回json:
{error:0,ret:[{bRet:NN,info:MM}]}
图片索引,左上角X,左上角Y,宽度,高度|
NN:返回值
MM:index1,x1,y1,w1,h1|index2,x2,y2,w3,h3|index3,x3,y3,w3,h3|含义:图片索引(0开始),左上角X,左上角Y,宽度,高度|

HD识图_范围找图从内存Ex - 基础示例

.版本 2

.子程序 _范围找图EX示例
.局部变量 找图结果, 逻辑型
.局部变量 窗口序号, 整数型
.局部变量 图片列表, 文本型
.局部变量 坐标数组, HD_2个坐标, , "0"
.局部变量 返回信息, 文本型
.局部变量 i, 整数型

窗口序号 = 0
图片列表 = "C:\images\button1.bmp|C:\images\button2.bmp|C:\images\button3.bmp"

找图结果 = HD识图_范围找图EX (窗口序号, 0, 0, 1024, 768, 图片列表, "", 90, 0, 坐标数组)

.如果 (找图结果 = 真)
返回信息 = HD通用_获取最近返回json (窗口序号)
调试输出 ("找到图片,详细信息: " + 返回信息)

.计次循环首 (取数组成员数 (坐标数组), i)
调试输出 ("图片" + 到文本 (i) + "位置: X=" + 到文本 (坐标数组 [i].x) + ", Y=" + 到文本 (坐标数组 [i].y))
.计次循环尾 ()
.否则
调试输出 ("未找到任何指定图片")
.如果结束

HD识图_范围找图从内存Ex - 进阶用法

.版本 2
.子程序 示例2
调试输出("示例2")

HD识图_范围找图从内存Ex - 高级应用

.版本 2
.子程序 高级示例
调试输出("高级示例")

📌 函数: HCFP_FindPicExxByFile

描述

在客户区范围内找图(从文件)(找全部图片信息坐标)

原型

__int64 __stdcall HCFP_FindPicExxByFile(__int32 窗口序号,char* orgImageName,__int32 x,__int32 y,__int32 w,__int32 h,char* 图片名字集合,char* deltaColor,doublesim,BOOL bAll=TRUE,__int32 dirType=0);

参数

__int32 窗口序号 - 窗口序号(从1开始)0表示全局全屏识别
char* orgImageName - 指定一张原图数据(支持绝对路径和相对路径)
__int32 x - 矩形范围左上角x
__int32 y - 矩形范围左上角y
__int32 w - 矩形范围宽度
__int32 h - 矩形范围高度
char* 图片名字集合 - 多张张图片(bmp)文件名字(不包含路径,路径调用HCRES_SetResPath全局设置),以'|'分隔开(支持绝对路径和相对路径)
char* deltaColor - 偏色(如
sim - 整个像素矩阵的相似度
bool bAll - 是否全部找如果不是表示每个图片只找一次就换下个图片
__int32 dirType - 排序类型/方向类型排序/方向类型

返回值

查看返回值表
返回01错误值

注意事项

注意返回值含义和xy值的提取
返回json:
{error:0,ret:[{bRet:NN,info:MM}]}
图片索引,左上角X,左上角Y,宽度,高度|
NN:返回值
MM:index1,x1,y1,w1,h1|index2,x2,y2,w3,h3|index3,x3,y3,w3,h3|含义:图片索引(0开始),左上角X,左上角Y,宽度,高度|

HCFP_FindPicExxByFile - 基础示例

.版本 2

.子程序 _范围找图示例
.局部变量 找图结果, 逻辑型
.局部变量 窗口序号, 整数型
.局部变量 图片路径, 文本型
.局部变量 找到的X, 整数型
.局部变量 找到的Y, 整数型

窗口序号 = 0
图片路径 = "C:\images\button.bmp"

找图结果 = HD识图_范围找图 (窗口序号, 0, 0, 1024, 768, 图片路径, "", 90, 0, 找到的X, 找到的Y)

.如果 (找图结果 = 真)
调试输出 ("找到图片位置: X=" + 到文本 (找到的X) + ", Y=" + 到文本 (找到的Y))
' 点击找到的图片中心
HD键鼠_句柄发送鼠标单击 (窗口序号, 0, 找到的X + 25, 找到的Y + 12, 1, 0)
.否则
调试输出 ("未找到指定图片")
.如果结束

HCFP_FindPicExxByFile - 进阶用法

.版本 2
.子程序 示例2
调试输出("示例2")

HCFP_FindPicExxByFile - 高级应用

.版本 2
.子程序 高级示例
调试输出("高级示例")

📌 函数: HCFP_FindPicExxByMem

描述

在客户区范围内找图(从内存)(找全部图片信息坐标)

原型

__int64 __stdcall HCFP_FindPicExxByMem(__int32 窗口序号,BYTE* data,__int32 dataSize,__int32 x,__int32 y,__int32 w,__int32 h,char* 图片名字集合,char* deltaColor,doublesim,BOOL bAll=TRUE,__int32 dirType=0);

参数

__int32 窗口序号 - 窗口序号(从1开始)0表示全局全屏识别
byte* data - Bmp图片字节数据缓冲区地址
__int32 dataSize - Bmp图片字节大小
__int32 x - 矩形范围左上角x
__int32 y - 矩形范围左上角y
__int32 w - 矩形范围宽度
__int32 h - 矩形范围高度
char* 图片名字集合 - 多张张图片(bmp)文件名字(不包含路径,路径调用HCRES_SetResPath全局设置),以'|'分隔开(支持绝对路径和相对路径)
char* deltaColor - 偏色(如
sim - 整个像素矩阵的相似度
bool bAll - 是否全部找如果不是表示每个图片只找一次就换下个图片
__int32 dirType - 排序类型/方向类型排序/方向类型

返回值

查看返回值表
返回01错误值

注意事项

注意返回值含义和xy值的提取
图片内存缓冲区自己维护
返回json:
{error:0,ret:[{bRet:NN,info:MM}]}
图片索引,左上角X,左上角Y,宽度,高度|</SPAN>
NN:返回值
MM:index1,x1,y1,w1,h1|index2,x2,y2,w3,h3|index3,x3,y3,w3,h3|含义:图片索引(0开始),左上角X,左上角Y,宽度,高度|

HCFP_FindPicExxByMem - 基础示例

.版本 2

.子程序 _范围找图示例
.局部变量 找图结果, 逻辑型
.局部变量 窗口序号, 整数型
.局部变量 图片路径, 文本型
.局部变量 找到的X, 整数型
.局部变量 找到的Y, 整数型

窗口序号 = 0
图片路径 = "C:\images\button.bmp"

找图结果 = HD识图_范围找图 (窗口序号, 0, 0, 1024, 768, 图片路径, "", 90, 0, 找到的X, 找到的Y)

.如果 (找图结果 = 真)
调试输出 ("找到图片位置: X=" + 到文本 (找到的X) + ", Y=" + 到文本 (找到的Y))
' 点击找到的图片中心
HD键鼠_句柄发送鼠标单击 (窗口序号, 0, 找到的X + 25, 找到的Y + 12, 1, 0)
.否则
调试输出 ("未找到指定图片")
.如果结束

HCFP_FindPicExxByMem - 进阶用法

.版本 2
.子程序 示例2
调试输出("示例2")

HCFP_FindPicExxByMem - 高级应用

.版本 2
.子程序 高级示例
调试输出("高级示例")

📌 函数: HD识图_范围找图来源内存Ex

描述

在客户区范围内找图(子图从内存)(找到一个图片就返回)

原型

__int64 __stdcall HCFP_FindPicExFromMem(__int32 窗口序号,__int32 x,__int32 y,__int32 w,__int32 h,char* 子图内存地址集合字符串,char* deltaColor,doublesim,__int32 dirType=0);

参数

__int32 窗口序号 - 窗口序号(从1开始)0表示全局全屏识别
char* 子图内存地址集合字符串 - \"地址1,长度1|地址2,长度2|地址3,长度3\"地址和长度用十进制表示
__int32 x - 矩形范围左上角x
__int32 y - 矩形范围左上角y
__int32 w - 矩形范围宽度
__int32 h - 矩形范围高度
图片名字集合 - 多张张图片(bmp)文件名字(不包含路径,路径调用HCRES_SetResPath全局设置),以'|'分隔开(支持绝对路径和相对路径)
char* deltaColor - 偏色(如
sim - 整个像素矩阵的相似度
__int32 dirType - 排序类型/方向类型排序/方向类型

返回值

查看返回值表
大于0表示:低4字节为x高4字节为y

注意事项

注意返回值含义和xy值的提取
图片内存缓冲区自己维护
返回json:
{error:0,ret:[{bRet:NN,info:MM}]}
图片索引,左上角X,左上角Y,宽度,高度|
NN:返回值
MM:index1,x1,y1,w1,h1|index2,x2,y2,w3,h3|index3,x3,y3,w3,h3|含义:图片索引(0开始),左上角X,左上角Y,宽度,高度|

HD识图_范围找图来源内存Ex - 基础示例

.版本 2

.子程序 _从内存找图Ex示例
.局部变量 找图结果, 逻辑型
.局部变量 源图地址, 整数型
.局部变量 源图宽度, 整数型
.局部变量 源图高度, 整数型
.局部变量 坐标数组, HD_2个坐标, , "0"
.局部变量 返回信息, 文本型

' 获取源图像数据
HD截图_获取截图数据 (0, 源图地址, 源图宽度)
源图高度 = 600

.如果 (源图地址 ≠ 0)
' 注意:这里的子图数据地址需要预先加载到内存
找图结果 = HD识图_范围找图来源内存Ex (源图地址, 源图宽度, 源图高度, 0, 0, 1024, 768, "子图地址1|子图地址2", "50|60", "30|40", "", 90, 0, 坐标数组)

.如果 (找图结果 = 真)
返回信息 = HD通用_获取最近返回json (0)
调试输出 ("从内存找到图片: " + 返回信息)
.否则
调试输出 ("内存中未找到指定图片")
.如果结束

' 释放源图内存
HD截图_释放内存池数据 (0, 源图地址)
.如果结束

HD识图_范围找图来源内存Ex - 进阶用法

.版本 2
.子程序 示例2
调试输出("示例2")

HD识图_范围找图来源内存Ex - 高级应用

.版本 2
.子程序 高级示例
调试输出("高级示例")

📌 函数: HCFP_FindPicExxFromMem

描述

在客户区范围内找图(子图从内存)(找全部图片信息坐标)

原型

__int64 __stdcall HCFP_FindPicExxFromMem(__int32 窗口序号,__int32 x,__int32 y,__int32 w,__int32 h,char* 子图内存地址集合字符串,char* deltaColor,doublesim,BOOL bAll=TRUE,__int32 dirType=0);

参数

__int32 窗口序号 - 窗口序号(从1开始)0表示全局全屏识别
char* 子图内存地址集合字符串 - \"地址1,长度1|地址2,长度2|地址3,长度3\"地址和长度用十进制表示
__int32 x - 矩形范围左上角x
__int32 y - 矩形范围左上角y
__int32 w - 矩形范围宽度
__int32 h - 矩形范围高度
图片名字集合 - 多张张图片(bmp)文件名字(不包含路径,路径调用HCRES_SetResPath全局设置),以'|'分隔开(支持绝对路径和相对路径)
char* deltaColor - 偏色(如
sim - 整个像素矩阵的相似度
bool bAll - 是否全部找如果不是表示每个图片只找一次就换下个图片
__int32 dirType - 排序类型/方向类型排序/方向类型

返回值

查看返回值表
返回01错误值

注意事项

注意返回值含义和xy值的提取
图片内存缓冲区自己维护
返回json:
{error:0,ret:[{bRet:NN,info:MM}]}
图片索引,左上角X,左上角Y,宽度,高度|
NN:返回值
MM:index1,x1,y1,w1,h1|index2,x2,y2,w3,h3|index3,x3,y3,w3,h3|含义:图片索引(0开始),左上角X,左上角Y,宽度,高度|

HCFP_FindPicExxFromMem - 基础示例

.版本 2

.子程序 _从内存找图Ex示例
.局部变量 找图结果, 逻辑型
.局部变量 源图地址, 整数型
.局部变量 源图宽度, 整数型
.局部变量 源图高度, 整数型
.局部变量 坐标数组, HD_2个坐标, , "0"
.局部变量 返回信息, 文本型

' 获取源图像数据
HD截图_获取截图数据 (0, 源图地址, 源图宽度)
源图高度 = 600

.如果 (源图地址 ≠ 0)
' 注意:这里的子图数据地址需要预先加载到内存
找图结果 = HD识图_范围找图来源内存Ex (源图地址, 源图宽度, 源图高度, 0, 0, 1024, 768, "子图地址1|子图地址2", "50|60", "30|40", "", 90, 0, 坐标数组)

.如果 (找图结果 = 真)
返回信息 = HD通用_获取最近返回json (0)
调试输出 ("从内存找到图片: " + 返回信息)
.否则
调试输出 ("内存中未找到指定图片")
.如果结束

' 释放源图内存
HD截图_释放内存池数据 (0, 源图地址)
.如果结束

HCFP_FindPicExxFromMem - 进阶用法

.版本 2
.子程序 示例2
调试输出("示例2")

HCFP_FindPicExxFromMem - 高级应用

.版本 2
.子程序 高级示例
调试输出("高级示例")

📌 函数: HD识图_比较颜色从文件

描述

比较颜色(从文件)

原型

__int64 __stdcall HCFP_CmpColorsByFile(__int32 窗口序号,char* orgImageName,__int32 x,__int32 y,char* deltaColor);

参数

__int32 窗口序号 - 窗口序号(从1开始)0表示全局全屏识别
char* orgImageName - 指定一张原图数据(支持绝对路径和相对路径)
__int32 x - 矩形范围左上角x
__int32 y - 矩形范围左上角y
char* deltaColor - XXXXXX-YYYYYY格式

返回值

查看返回值表
1找到
0未找到

注意事项


HD识图_比较颜色从文件 - 基础示例

.版本 2

.子程序 _从文件比较颜色示例
.局部变量 颜色匹配, 逻辑型
.局部变量 图片路径, 文本型

图片路径 = "C:\temp\sample.bmp"

颜色匹配 = HD识图_比较颜色从文件 (图片路径, 150, 200, "00FF00", 90)

.如果 (颜色匹配 = 真)
调试输出 ("图片中指定位置是绿色")
.否则
调试输出 ("图片中颜色不匹配")
.如果结束

HD识图_比较颜色从文件 - 进阶用法

.版本 2
.子程序 示例2
调试输出("示例2")

HD识图_比较颜色从文件 - 高级应用

.版本 2
.子程序 高级示例
调试输出("高级示例")

📌 函数: HD识图_比较颜色从内存

描述

比较颜色(从内存)

原型

__int64 __stdcall HCFP_CmpColorsByMem(__int32 窗口序号,BYTE* data,__int32 dataSize,__int32 x,__int32 y,char* deltaColor);

参数

__int32 窗口序号 - 窗口序号(从1开始)0表示全局全屏识别
byte* data - Bmp图片字节数据缓冲区地址
__int32 dataSize - Bmp图片字节大小
__int32 x - 矩形范围左上角x
__int32 y - 矩形范围左上角y
char* deltaColor - XXXXXX-YYYYYY格式

返回值

查看返回值表
1找到
0未找到

注意事项

图片内存缓冲区自己维护

HD识图_比较颜色从内存 - 基础示例

.版本 2

.子程序 _从内存比较颜色示例
.局部变量 颜色匹配, 逻辑型
.局部变量 图像地址, 整数型
.局部变量 图像宽度, 整数型
.局部变量 图像高度, 整数型

' 首先获取截图数据
HD截图_获取截图数据 (0, 图像地址, 图像宽度)
图像高度 = 600

.如果 (图像地址 ≠ 0)
颜色匹配 = HD识图_比较颜色从内存 (图像地址, 图像宽度, 图像高度, 200, 150, "FFFFFF", 95)

.如果 (颜色匹配 = 真)
调试输出 ("内存图像中指定位置是白色")
.否则
调试输出 ("内存图像中颜色不匹配")
.如果结束

' 释放内存
HD截图_释放内存池数据 (0, 图像地址)
.如果结束

HD识图_比较颜色从内存 - 进阶用法

.版本 2
.子程序 示例2
调试输出("示例2")

HD识图_比较颜色从内存 - 高级应用

.版本 2
.子程序 高级示例
调试输出("高级示例")

📌 函数: HD识图_比较颜色从文件Ex

描述

多点找色确定某个图像块,指定多个具体点,从文件

原型

__int64 __stdcall HCFP_CmpColorExsByFile(__int32 窗口序号,char* orgImageName,char* deltaXYColor);

参数

__int32 窗口序号 - 窗口序号(从1开始)0表示全局全屏识别
char* orgImageName - 指定一张原图数据(支持绝对路径和相对路径)
char* deltaXYColor - x1|y1|e3e6eb-101010|e3e6eb-101010|e3e6eb-101010|...,x2|y2|e3e6eb-101010|e3e6eb-101010|e3e6eb-101010|...

返回值

查看返回值表
找到返回8字节长整数包含第一个坐标点x1,y1低4字节x1高4字节y1
未找到返回0或者小于0
json:\"{\"error\":0,\"ret\":[{\"bRet\":ret,\"info\":”X1,Y1“}]}\",

注意事项


HD识图_比较颜色从文件Ex - 基础示例

.版本 2

.子程序 _比较颜色Ex示例
.局部变量 比较结果, 逻辑型
.局部变量 窗口序号, 整数型
.局部变量 检查X, 整数型
.局部变量 检查Y, 整数型
.局部变量 返回X, 整数型
.局部变量 返回Y, 整数型

窗口序号 = 0
检查X = 100
检查Y = 200

比较结果 = HD识图_比较颜色Ex (窗口序号, 检查X, 检查Y, "FFFFFF", 95, 返回X, 返回Y)

.如果 (比较结果 = 真)
调试输出 ("坐标(" + 到文本 (检查X) + "," + 到文本 (检查Y) + ")的颜色匹配白色")
.否则
调试输出 ("坐标颜色不匹配")
.如果结束

HD识图_比较颜色从文件Ex - 进阶用法

.版本 2
.子程序 示例2
调试输出("示例2")

HD识图_比较颜色从文件Ex - 高级应用

.版本 2
.子程序 高级示例
调试输出("高级示例")

📌 函数: HD识图_比较颜色从内存Ex

描述

多点找色确定某个图像块,指定多个具体点,从内存

原型

__int64 __stdcall HCFP_CmpColorExsByMem(__int32 窗口序号,BYTE* data,__int32 dataSize,char* deltaXYColor);

参数

__int32 窗口序号 - 窗口序号(从1开始)0表示全局全屏识别
byte* data - Bmp图片字节数据缓冲区地址
__int32 dataSize - Bmp图片字节大小
char* deltaXYColor - x1|y1|e3e6eb-101010|e3e6eb-101010|e3e6eb-101010|...,x2|y2|e3e6eb-101010|e3e6eb-101010|e3e6eb-101010|...

返回值

查看返回值表
找到返回8字节长整数包含第一个坐标点x1,y1低4字节x1高4字节y1
未找到返回0或者小于0
json:\"{\"error\":0,\"ret\":[{\"bRet\":ret,\"info\":”X1,Y1“}]}\",

注意事项


HD识图_比较颜色从内存Ex - 基础示例

.版本 2

.子程序 _比较颜色Ex示例
.局部变量 比较结果, 逻辑型
.局部变量 窗口序号, 整数型
.局部变量 检查X, 整数型
.局部变量 检查Y, 整数型
.局部变量 返回X, 整数型
.局部变量 返回Y, 整数型

窗口序号 = 0
检查X = 100
检查Y = 200

比较结果 = HD识图_比较颜色Ex (窗口序号, 检查X, 检查Y, "FFFFFF", 95, 返回X, 返回Y)

.如果 (比较结果 = 真)
调试输出 ("坐标(" + 到文本 (检查X) + "," + 到文本 (检查Y) + ")的颜色匹配白色")
.否则
调试输出 ("坐标颜色不匹配")
.如果结束

HD识图_比较颜色从内存Ex - 进阶用法

.版本 2
.子程序 示例2
调试输出("示例2")

HD识图_比较颜色从内存Ex - 高级应用

.版本 2
.子程序 高级示例
调试输出("高级示例")

📌 函数: HD识图_获取颜色从文件

描述

获取颜色(从文件)

原型

__int64 __stdcall HCFP_GetColorByFile(__int32 窗口序号,char* orgImageName,__int32 x,__int32 y);

参数

__int32 窗口序号 - 窗口序号(从1开始)0表示全局全屏识别
char* orgImageName - 指定一张原图数据(支持绝对路径和相对路径)
__int32 x - 矩形范围左上角x
__int32 y - 矩形范围左上角y

返回值

查看返回值表

注意事项

注意返回值含义和值的提取
#pragmapack(1)typedefstructMYA8R8G8B8{BYTEm_a;\n0x00BYTEm_r;\n低8位BYTEm_g;\n中8位BYTEm_b;\n高8位MYA8R8G8B8(){m_a=0;m_r=0;m_g=0;m_b=0;}}MYA8R8G8B8;
#pragmapack()
json:
“{\"error\":0,\"ret\":[{\"bRet\":1,\"info\":\"44,29,5B\"}]}”A(0x00)rgbr红色:低8位g绿色:中8位b蓝色:高8位RGBFFFFFF

HD识图_获取颜色从文件 - 基础示例

.版本 2

.子程序 _获取颜色示例
.局部变量 颜色值, 文本型
.局部变量 窗口序号, 整数型
.局部变量 检查X, 整数型
.局部变量 检查Y, 整数型

窗口序号 = 0
检查X = 500
检查Y = 300

颜色值 = HD识图_获取颜色 (窗口序号, 检查X, 检查Y)

.如果 (颜色值 ≠ "")
调试输出 ("坐标(" + 到文本 (检查X) + "," + 到文本 (检查Y) + ")的颜色: " + 颜色值)

' 可以用获取到的颜色进行后续查找
.如果 (颜色值 = "FF0000")
调试输出 ("这是红色像素")
.如果结束
.否则
调试输出 ("获取颜色失败")
.如果结束

HD识图_获取颜色从文件 - 进阶用法

.版本 2
.子程序 示例2
调试输出("示例2")

HD识图_获取颜色从文件 - 高级应用

.版本 2
.子程序 高级示例
调试输出("高级示例")

📌 函数: HD识图_获取颜色从内存

描述

获取颜色(从内存)

原型

__int64 __stdcall HCFP_GetColorByMem(__int32 窗口序号,BYTE* data,__int32 dataSize,__int32 x,__int32 y);

参数

__int32 窗口序号 - 窗口序号(从1开始)0表示全局全屏识别
byte* data - Bmp图片字节数据缓冲区地址
__int32 dataSize - Bmp图片字节大小
__int32 x - 矩形范围左上角x
__int32 y - 矩形范围左上角y

返回值

查看返回值表

注意事项

图片内存缓冲区自己维护
注意返回值含义和值的提取
#pragmapack(1)typedefstructMYA8R8G8B8{BYTEm_a;\n0x00BYTEm_r;\n低8位BYTEm_g;\n中8位BYTEm_b;\n高8位MYA8R8G8B8(){m_a=0;m_r=0;m_g=0;m_b=0;}}MYA8R8G8B8;
#pragmapack()
json:
“{\"error\":0,\"ret\":[{\"bRet\":1,\"info\":\"44,29,5B\"}]}”A(0x00)rgbr红色:低8位g绿色:中8位b蓝色:高8位RGBFFFFFF

HD识图_获取颜色从内存 - 基础示例

.版本 2

.子程序 _获取颜色示例
.局部变量 颜色值, 文本型
.局部变量 窗口序号, 整数型
.局部变量 检查X, 整数型
.局部变量 检查Y, 整数型

窗口序号 = 0
检查X = 500
检查Y = 300

颜色值 = HD识图_获取颜色 (窗口序号, 检查X, 检查Y)

.如果 (颜色值 ≠ "")
调试输出 ("坐标(" + 到文本 (检查X) + "," + 到文本 (检查Y) + ")的颜色: " + 颜色值)

' 可以用获取到的颜色进行后续查找
.如果 (颜色值 = "FF0000")
调试输出 ("这是红色像素")
.如果结束
.否则
调试输出 ("获取颜色失败")
.如果结束

HD识图_获取颜色从内存 - 进阶用法

.版本 2
.子程序 示例2
调试输出("示例2")

HD识图_获取颜色从内存 - 高级应用

.版本 2
.子程序 高级示例
调试输出("高级示例")