云外图形巧解滑块坐标原理:通过网站返回,得知Y坐标,通过云外对图片亮度、对比度调整,用来识别X坐标。
[Asm] 纯文本查看 复制代码
.版本 2
.支持库 YunImage
.支持库 spec
.子程序 刷新图片
.局部变量 网站地址, 文本型
.局部变量 临协议头, 文本型
.局部变量 网站返回, 文本型
.局部变量 json, 类_json
.局部变量 主图, 文本型
.局部变量 startY, 整数型
.局部变量 img, 字节集
.局部变量 一点色, 整数型
.局部变量 i, 整数型
.局部变量 当前色, 整数型
.局部变量 X坐标, 整数型
.局部变量 云外, 图像处理类
网站地址 = “https://hazj.cfyedu.com/v1/h5-api/user/vcode?username=” + “13812341234”
临协议头 = 临协议头 + #换行符 + “Accept: application/json, text/plain, */*”
网站返回 = 到文本 (网页_访问_对象 (网站地址, , , , , 临协议头))
json.解析 (网站返回)
主图 = json.取通用属性 (“data.bigImg”)
startY = 到整数 (json.取通用属性 (“data.startY”))
调试输出 (“startY”, startY)
img = 编码_BASE64解码A (到字节集 (文本_取右边 (主图, “base64,”)))
图片框2.宽度 = 图片_取宽度 (img)
图片框2.高度 = 图片_取高度 (img)
图片框2.图片 = img
' ''云外取图
云外.从内存解码 (img, #PNG图片)
' ''通过左下角(1,1)第1个1是横坐标X,第2个1是从下面开始取1的坐标点Y
' ''通过左下角的颜色来判断是什么图形,然后修改亮度和对比度来调出滑块。
一点色 = 云外.取像素颜色 (1, 1, 真)
调试输出 (“一点色”, 一点色)
.如果 (一点色 = -3686157) ' ''图形1
云外.变亮 (-350, 550)
.否则
.如果 (一点色 = -8008792) ' ''图形2
云外.变亮 (-250, 550)
.否则
云外.变亮 (-100, 200) ' '''图形3,-6521927
.如果结束
.如果结束
' '''''因为Y轴已定,所以根据X轴大概加20的位置,不太受干扰。所以取大概20的位置来扫X坐标是否是黑色。
.计次循环首 (云外.取宽度 (), i)
' ''''取横坐标起点加20的颜色值
当前色 = 云外.取像素颜色 (i, 云外.取高度 () - startY - 20, 真)
' ''''这个是用来划线的,实际不需要
云外.置像素颜色 (i, 云外.取高度 () - startY - 1, #白色, 假)
.如果真 (当前色 = -16777216)
' ''如果是黑色,就找到定位了,跳出
X坐标 = i
跳出循环 ()
.如果真结束
.计次循环尾 ()
调试输出 (“找到坐标”, X坐标, startY)
编辑框1.内容 = 到文本 (X坐标) + “,” + 到文本 (startY)
' ''把处理的图片,输出来。
云外.编码到内存 (img, #PNG图片)
' ''图片,显示出来。
图片框1.宽度 = 图片_取宽度 (img)
图片框1.高度 = 图片_取高度 (img)
图片框1.图片 = img
测试.zip
(322.91 KB, 下载次数: 11)
需要 精易模块 和 云外归鸟的图像处理支持库1.1
抛砖引玉,大神勿喷,欢迎提意见。 |