.版本 2 .支持库 BmpOperate .子程序 图片找图x, 坐标型, , 成功返回坐标,失败返回 -1 -1 .参数 原图象数据, 字节集 .参数 目标图片数据, 字节集 .参数 误差值, 整数型, 可空 .参数 吻合值, 整数型, 可空, 空为100 .局部变量 原图象, 位图 .局部变量 目标图片, 位图 .局部变量 i, 整数型 .局部变量 i2, 整数型 .局部变量 i3, 整数型 .局部变量 i4, 整数型 .局部变量 基色, 整数型 .局部变量 基点色, 整数型 .局部变量 已吻合值, 整数型 .局部变量 已不吻合值, 整数型 .局部变量 不吻合值, 整数型 .局部变量 总长, 整数型 .局部变量 临时颜色值, 整数型 .局部变量 位置, 坐标型 .局部变量 坐标, 坐标型, , , 返还目标图片左上角所在坐标 .局部变量 基点, 坐标型 .如果真 (吻合值 = 0) 吻合值 = 100 .如果真结束 .如果真 (误差值 = 0) 误差值 = 100 .如果真结束 原图象.载入数据 (原图象数据) 目标图片.载入数据 (目标图片数据) 总长 = 目标图片.取宽度 () × 目标图片.取高度 () 吻合值 = 总长 × 吻合值 \ 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 返回 (坐标)
办法2
(使用精易模块)
.版本 2 .子程序 图片找图, 精易_坐标 .参数 范围原图, 字节集 .参数 查找图片, 字节集 .局部变量 图色, 类_识图 .局部变量 坐标, 精易_坐标 .局部变量 寻找图, 字节集 坐标 = 图色.找图_从字节集 (范围原图, 查找图片) 返回 (坐标)