易语言怎么做到识别某图片出现时 结束xx进程 并蹦出窗口1
发布网友
发布时间:2022-05-05 06:59
我来回答
共1个回答
热心网友
时间:2023-10-14 04:06
通过时钟循环找图,如果找到就调用“终止进程 ()”,之后调用“载入 ()”命令。
代码如下:
.版本 2
.支持库 BmpOperate
.支持库 eAPI
.程序集 窗口程序集_启动窗口
.程序集变量 图片数据, 字节集
.子程序 __启动窗口_创建完毕
时钟1.时钟周期 = 2000
图片数据 = #图片 '请调用图片数据
.子程序 模糊找图, 坐标, , 成功返回坐标,失败返回{-1, -1}。注:此源码来自网络。
.参数 源图像数据, 字节集, , 被找寻的图像。
.参数 目标图片数据, 字节集, , 欲找寻的图像。
.参数 误差值, 整数型, 可空, 即源图像与目标图片的误差有多大。为0则需要源图像中的被找寻图像大小、颜色值完全相等才能找到。推荐设置为50。为空为50。
.参数 吻合值, 整数型, 可空, 即源图像与目标图片的吻合度有多大。为100则需要源图像中的被找寻图像大小、颜色值完全相等才能找到。推荐设置为50。为空为100。
.局部变量 源图像, 位图
.局部变量 目标图片, 位图
.局部变量 i, 整数型
.局部变量 i2, 整数型
.局部变量 i3, 整数型
.局部变量 i4, 整数型
.局部变量 基色, 整数型
.局部变量 基点色, 整数型
.局部变量 已吻合值, 整数型
.局部变量 已不吻合值, 整数型
.局部变量 不吻合值, 整数型
.局部变量 总长, 整数型
.局部变量 临时颜色值, 整数型
.局部变量 位置, 坐标
.局部变量 坐标, 坐标, , , 返还目标图片左上角所在坐标
.局部变量 基点, 坐标
.如果真 (是否为空 (吻合值))
吻合值 = 100
.如果真结束
.如果真 (是否为空 (误差值))
误差值 = 50
.如果真结束
源图像.载入数据 (源图像数据)
目标图片.载入数据 (目标图片数据)
总长 = 目标图片.取宽度 () × 目标图片.取高度 ()
吻合值 = 总长 × 吻合值 \ 100
.如果 (吻合值 = 总长)
不吻合值 = 1
.否则
不吻合值 = 总长 - 吻合值 + 1
.如果结束
误差值 = 取绝对值 (误差值 × 16777215 \ 100000)
置随机数种子 ()
基点.x = 取随机数 (0, 目标图片.取宽度 () - 1)
基点.y = 取随机数 (0, 目标图片.取高度 () - 1)
基色 = 目标图片.取某点颜色 (基点.x, 基点.y)
.计次循环首 (源图像.取宽度 (), i)
.计次循环首 (源图像.取高度 (), i2)
基点色 = 源图像.取某点颜色 (i - 1, i2 - 1) ' 取大图片中某点色
.如果真 (取绝对值 (基点色 - 基色) ≤ 误差值) ' 取起点颜色值
已吻合值 = 0
已不吻合值 = 0
.计次循环首 (目标图片.取宽度 (), i3) ' 循环判断颜色值
.计次循环首 (目标图片.取高度 (), i4)
位置.x = i + i3 - 2 - 基点.x
.如果真 (位置.x > 源图像.取宽度 () - 1 或 位置.x < 0)
跳出循环 ()
.如果真结束
位置.y = i2 + i4 - 2 - 基点.y
.如果真 (源图像.取高度 () - 1 < 位置.y 或 位置.y < 0)
跳出循环 ()
.如果真结束
临时颜色值 = 取绝对值 (源图像.取某点颜色 (位置.x, 位置.y) - 目标图片.取某点颜色 (i3 - 1, i4 - 1))
.如果 (临时颜色值 ≤ 误差值)
已吻合值 = 已吻合值 + 1
.否则
已不吻合值 = 已不吻合值 + 1
.如果结束
.如果真 (已吻合值 ≥ 吻合值)
坐标.x = i - 1 - 基点.x
坐标.y = i2 - 1 - 基点.y
返回 (坐标)
.如果真结束
.如果真 (已不吻合值 ≥ 不吻合值)
跳出循环 ()
.如果真结束
处理事件 ()
.计次循环尾 ()
.如果真 (已不吻合值 ≥ 不吻合值)
跳出循环 ()
.如果真结束
.计次循环尾 ()
.如果真结束
处理事件 ()
.计次循环尾 ()
.计次循环尾 ()
坐标.x = -1
坐标.y = -1
返回 (坐标)
.子程序 _时钟1_周期事件
.局部变量 坐标, 坐标
坐标 = 模糊找图 (快照 (, , ), 图片数据, 50, 50)
.如果真 (坐标.x ≠ -1 且 坐标.y ≠ -1)
终止进程 () ' 请写你的进程名
载入 (窗口1, , 真)
.如果真结束
自定义数据类型代码如下:
.版本 2
.数据类型 坐标, 公开
.成员 x, 整数型
.成员 y, 整数型
以上代码即符合你的要求。
如有疑问请追问。
热心网友
时间:2023-10-14 04:06
通过时钟循环找图,如果找到就调用“终止进程 ()”,之后调用“载入 ()”命令。
代码如下:
.版本 2
.支持库 BmpOperate
.支持库 eAPI
.程序集 窗口程序集_启动窗口
.程序集变量 图片数据, 字节集
.子程序 __启动窗口_创建完毕
时钟1.时钟周期 = 2000
图片数据 = #图片 '请调用图片数据
.子程序 模糊找图, 坐标, , 成功返回坐标,失败返回{-1, -1}。注:此源码来自网络。
.参数 源图像数据, 字节集, , 被找寻的图像。
.参数 目标图片数据, 字节集, , 欲找寻的图像。
.参数 误差值, 整数型, 可空, 即源图像与目标图片的误差有多大。为0则需要源图像中的被找寻图像大小、颜色值完全相等才能找到。推荐设置为50。为空为50。
.参数 吻合值, 整数型, 可空, 即源图像与目标图片的吻合度有多大。为100则需要源图像中的被找寻图像大小、颜色值完全相等才能找到。推荐设置为50。为空为100。
.局部变量 源图像, 位图
.局部变量 目标图片, 位图
.局部变量 i, 整数型
.局部变量 i2, 整数型
.局部变量 i3, 整数型
.局部变量 i4, 整数型
.局部变量 基色, 整数型
.局部变量 基点色, 整数型
.局部变量 已吻合值, 整数型
.局部变量 已不吻合值, 整数型
.局部变量 不吻合值, 整数型
.局部变量 总长, 整数型
.局部变量 临时颜色值, 整数型
.局部变量 位置, 坐标
.局部变量 坐标, 坐标, , , 返还目标图片左上角所在坐标
.局部变量 基点, 坐标
.如果真 (是否为空 (吻合值))
吻合值 = 100
.如果真结束
.如果真 (是否为空 (误差值))
误差值 = 50
.如果真结束
源图像.载入数据 (源图像数据)
目标图片.载入数据 (目标图片数据)
总长 = 目标图片.取宽度 () × 目标图片.取高度 ()
吻合值 = 总长 × 吻合值 \ 100
.如果 (吻合值 = 总长)
不吻合值 = 1
.否则
不吻合值 = 总长 - 吻合值 + 1
.如果结束
误差值 = 取绝对值 (误差值 × 16777215 \ 100000)
置随机数种子 ()
基点.x = 取随机数 (0, 目标图片.取宽度 () - 1)
基点.y = 取随机数 (0, 目标图片.取高度 () - 1)
基色 = 目标图片.取某点颜色 (基点.x, 基点.y)
.计次循环首 (源图像.取宽度 (), i)
.计次循环首 (源图像.取高度 (), i2)
基点色 = 源图像.取某点颜色 (i - 1, i2 - 1) ' 取大图片中某点色
.如果真 (取绝对值 (基点色 - 基色) ≤ 误差值) ' 取起点颜色值
已吻合值 = 0
已不吻合值 = 0
.计次循环首 (目标图片.取宽度 (), i3) ' 循环判断颜色值
.计次循环首 (目标图片.取高度 (), i4)
位置.x = i + i3 - 2 - 基点.x
.如果真 (位置.x > 源图像.取宽度 () - 1 或 位置.x < 0)
跳出循环 ()
.如果真结束
位置.y = i2 + i4 - 2 - 基点.y
.如果真 (源图像.取高度 () - 1 < 位置.y 或 位置.y < 0)
跳出循环 ()
.如果真结束
临时颜色值 = 取绝对值 (源图像.取某点颜色 (位置.x, 位置.y) - 目标图片.取某点颜色 (i3 - 1, i4 - 1))
.如果 (临时颜色值 ≤ 误差值)
已吻合值 = 已吻合值 + 1
.否则
已不吻合值 = 已不吻合值 + 1
.如果结束
.如果真 (已吻合值 ≥ 吻合值)
坐标.x = i - 1 - 基点.x
坐标.y = i2 - 1 - 基点.y
返回 (坐标)
.如果真结束
.如果真 (已不吻合值 ≥ 不吻合值)
跳出循环 ()
.如果真结束
处理事件 ()
.计次循环尾 ()
.如果真 (已不吻合值 ≥ 不吻合值)
跳出循环 ()
.如果真结束
.计次循环尾 ()
.如果真结束
处理事件 ()
.计次循环尾 ()
.计次循环尾 ()
坐标.x = -1
坐标.y = -1
返回 (坐标)
.子程序 _时钟1_周期事件
.局部变量 坐标, 坐标
坐标 = 模糊找图 (快照 (, , ), 图片数据, 50, 50)
.如果真 (坐标.x ≠ -1 且 坐标.y ≠ -1)
终止进程 () ' 请写你的进程名
载入 (窗口1, , 真)
.如果真结束
自定义数据类型代码如下:
.版本 2
.数据类型 坐标, 公开
.成员 x, 整数型
.成员 y, 整数型
以上代码即符合你的要求。
如有疑问请追问。