|
2精币
.版本 2
.支持库 spec
.子程序 找图, 逻辑型
.参数 窗口句柄, 整数型, 可空
.参数 图片数据, 字节集
.参数 误差, 整数型, 可空
.参数 坐标x, 整数型, 参考
.参数 坐标y, 整数型, 参考
.参数 左边, 整数型, 可空
.参数 顶边, 整数型, 可空
.参数 宽度, 整数型, 可空
.参数 高度, 整数型, 可空
.局部变量 临时字节集, 字节集
.局部变量 找到位置, 整数型
.局部变量 宽, 整数型
.局部变量 高, 整数型
.局部变量 字节集, 字节集
.局部变量 临时坐标, 坐标
.局部变量 窗口大小, 矩形_
.局部变量 临时图片字节集, 字节集, , "0"
.局部变量 图片数据宽, 整数型
.局部变量 图片数据高, 整数型
.局部变量 计次, 整数型
坐标x = 0
坐标y = 0
.如果 (窗口句柄 ≠ 0)
_取窗口区域位置 (窗口句柄, 临时坐标)
.如果真 (宽度 = 0 或 高度 = 0)
_取窗口大小 (窗口句柄, 窗口大小)
.如果真结束
.如果真 (宽度 = 0)
宽度 = 窗口大小.右边 - 左边
.如果真结束
.如果真 (高度 = 0)
高度 = 窗口大小.底边 - 顶边
.如果真结束
.否则
.如果真 (宽度 = 0)
宽度 = 取屏幕宽度 () - 左边
.如果真结束
.如果真 (高度 = 0)
高度 = 取屏幕高度 () - 顶边
.如果真结束
.如果结束
.如果真 (取字节集长度 (图片数据) < 58)
返回 (假)
.如果真结束
调试输出 (取字节集长度 (图片数据))
调试输出 (图片数据)
图片数据宽 = 图片数据 [19] + 图片数据 [20] × 256
图片数据高 = 图片数据 [23] + 图片数据 [24] × 256
.如果真 (图片数据高 < 1)
返回 (假)
.如果真结束
图片数据 = 取字节集右边 (图片数据, 取字节集长度 (图片数据) - 54)
.计次循环首 (图片数据高, 计次)
加入成员 (临时图片字节集, 取字节集中间 (图片数据, 计次 × 图片数据宽 × 3 - 图片数据宽 × 3 + 1, 图片数据宽 × 3))
.计次循环尾 ()
临时字节集 = 快照 (0, , )
.如果真 (取字节集长度 (临时字节集) = 0)
返回 (假)
.如果真结束
宽 = 临时字节集 [19] + 临时字节集 [20] × 256
高 = 临时字节集 [23] + 临时字节集 [24] × 256
临时字节集 = 取字节集右边 (临时字节集, 取字节集长度 (临时字节集) - 54)
找到位置 = -1
.循环判断首 ()
找到位置 = 找字节集 (临时字节集, 临时图片字节集 [1], 找到位置 + 1, 误差)
.如果真 (找到位置 = -1)
返回 (假)
.如果真结束
.如果真 (找到位置 = -1)
.计次循环首 (图片数据高, 计次)
.如果真 (计次 = 1)
到循环尾 ()
.如果真结束
找到位置 = 找字节集 (临时字节集, 临时图片字节集 [计次], 找到位置 + 图片数据宽 × 3, 误差)
.如果真 (找到位置 = -1)
返回 (假)
.如果真结束
.计次循环尾 ()
.如果真结束
坐标x = ((找到位置 - 1) ÷ 3 + 1) % 宽
坐标y = 高 - ((找到位置 - 1) ÷ 3 + 1) \ 宽
.循环判断尾 (坐标x < 临时坐标.x + 左边 或 坐标x > 临时坐标.x + 左边 + 宽度 - 图片数据宽 或 坐标y < 临时坐标.y + 顶边 或 坐标y > 临时坐标.y + 顶边 + 高度 - 图片数据高)
坐标x = 坐标x - 临时坐标.x
坐标y = 坐标y - 临时坐标.y - 图片数据高
返回 (真)
.子程序 找字节集, 整数型
.参数 被搜寻的字节集, 字节集
.参数 欲寻找的字节集, 字节集
.参数 起始寻找位置, 整数型, 可空
.参数 误差值, 整数型, 可空
.局部变量 计次1, 整数型
.局部变量 长度, 整数型
.局部变量 计次2, 整数型
.局部变量 总长度, 整数型
.如果真 (起始寻找位置 = 0)
起始寻找位置 = 1
.如果真结束
长度 = 取字节集长度 (欲寻找的字节集)
总长度 = 取字节集长度 (被搜寻的字节集)
.计次循环首 (总长度 - 长度 + 1, 计次1)
.如果真 (起始寻找位置 > 计次1)
到循环尾 ()
.如果真结束
.计次循环首 (长度, 计次2)
.如果真 (计次1 + 计次2 - 1 > 总长度)
返回 (-1)
.如果真结束
.如果真 (取绝对值 (欲寻找的字节集 [计次2] - 被搜寻的字节集 [计次1 + 计次2 - 1]) > 误差值)
跳出循环 ()
.如果真结束
.如果真 (长度 = 计次2)
返回 (计次1)
.如果真结束
.计次循环尾 ()
.计次循环尾 ()
返回 (-1)
.版本 2
.如果真 (取字节集长度 (图片数据) < 58)
返回 (假)
.如果真结束
' 调试输出 (取字节集长度 (图片数据))
' 调试输出 (图片数据)
图片数据宽 = 图片数据 [19] + 图片数据 [20] × 256
图片数据高 = 图片数据 [23] + 图片数据 [24] × 256
里面的字节集长度为什么要和58做比较,,
为什么图片数据的宽=图片数据 [19] + 图片数据 [20] × 256
高有为什么的图片数据 [23] + 图片数据 [24] × 256
19 23 20 24
是字节集数组里的数组元数
那么256有是什么意思。。谁能解释下这个是字节集找图的,,子程序。源代码来自易语言论坛
|
|