当前位置: 首页 > news >正文

「按键精灵安卓/ios辅助工具」动态验证码该怎么得到完整的图片

今天要讲的动图验证码并不常见,先来看看它到底长啥样:

和普通验证码的区别是图片上的文字是时隐时现的,通过分析动图的每一帧画面发现,每帧画面至少缺失一个以上的文字,所以无论怎么截图,都无法得到全部文字的图片。

我们要怎么得到包含全部文字的图片,就是今天要讲的内容。

先说一下思路:

截取多张图片,把所有图片上的文字合并到一起,得到全部文字的图片。

怎么实现这个效果呢,过程如下:

(1)连续截取10张图片,分别以1-10命名,方便后续合并图片文字使用。

 

For i=1 to 10
SnapShot "/sdcard/pictures/gif/"&i&".png",347,707,732,849
Next

 

存放图片的路径可以自行设置,这里你可能会有疑问,为啥截图是10张,其实10张是随便弄的,具体截几张图,我们是根据截图后,全部图片中文字是不是齐全,以我这个为例,其实1-5张图就包含全部文字了,所以截图5张也可以,为了确保一定能包含全部文字,所以截图10张。

(2)获取图1的颜色信息。

Dim PixelData =Image.GetPicData("/sdcard/pictures/gif/1.png")

郭立员老师是为了做教程,所以把颜色信息转成json,截图给大家看看,你们如果测试,不需要输出,因为运行这个会比较卡。

(3)分析背景颜色的数值

通过抓抓或者上面颜色信息转换,可以直接到背景颜色RGB的10进制(192,192,192)

(4)合并图片文字的颜色信息

合并的规则是这样,图片1是基准图片,以它的颜色信息为基准颜色,图1文字部分的颜色保留,背景部分的颜色需要替换。

以图1和图2合并文字为例,图1的背景颜色全部用图2同位置的颜色替换。这样图1缺失的文字会被图2补全一些,这里说的是一些,因为有些文字,可能图1、图2都缺失,这种就是没法补全,需要图3-图10去补全。每张图都增添一些新文字,最后补全所有文字。

(5)判断处图片中背景颜色的方法

我们已经知道背景颜色是192,192,192,那么需要做的就是判断每一个颜色是不是等于这个,为了保证容错率,我们不直接用等于,而是一个范围±30吧。

(6)遍历出每一个背景颜色,然后逐个替换成后面的图片。

因为是只替换背景颜色,每次合并后新增的文字都会保留,最终得到所有的文字图片。

完成代码:

For i=1 to 10
SnapShot "/sdcard/pictures/gif/"&i&".png",347,707,732,849
Next
Dim path="/sdcard/pictures/gif/1.png"
Dim pic=image.size(path)
Dim x=pic[1]
Dim y=pic[2]
TracePrint x,yDim PixelData =Image.GetPicData("/sdcard/pictures/gif/1.png")
For m = 2 To 10
Dim PixelData1 =Image.GetPicData("/sdcard/pictures/gif/"&m&".png")
For j = 1 To x
For i = 1 To y
For k = 1 To 3
If 160 < PixelData[j][i][k] < 220 Then
PixelData[j][i][k]=PixelData1[j][i][k]
End If
Next
Next
Next
Next
Image.SavePixelData(PixelData,"/sdcard/pictures/gif/a.png")

 

测试效果:


至于识别图片上的文字,直接对接打码平台即可,不是本文重点省略了。

http://www.dtcms.com/a/272105.html

相关文章:

  • 20250710解决KickPi的K7的SDK编译异常:rk3576-android14.0-25250704.tar.gz【降低BUILD_JOBS】
  • 微软365 PDF导出功能存在本地文件包含漏洞,可泄露敏感服务器数据
  • 【办公类-107-01】20250710视频慢速与视频截图
  • 用 ngrok + SSH 实现公网远程控制电脑
  • Linux Vim 编辑器详解:从入门到进阶(含图示+插件推荐)
  • FPGA设计思想与验证方法系列学习笔记001
  • XCZU47DR-2FFVG1517I Xilinx FPGA AMD ZynqUltraScale+ RFSoC
  • 原生微信小程序研发,如何对图片进行统一管理?
  • 从代码生成到智能运维的革命性变革
  • 基于elementUI的el-autocomplete组件的自动补全下拉框实践
  • LFU 缓存
  • Vue2_element 表头查询功能
  • Vue+Element Plus 中按回车刷新页面问题排查与解决
  • pytorch 神经网络
  • 深入理解机器学习
  • 【深度学习新浪潮】什么是持续预训练?
  • 深度学习中的常见损失函数详解及PyTorch实现
  • B2、进度汇报(— 25/06/16)
  • Sigma-Aldrich细胞培养基础知识:细胞培养的安全注意事项
  • Vue 中监测路由变化时,通常不需要开启深度监听(deep: true)
  • 基于Python的旅游推荐协同过滤算法系统(去哪儿网数据分析及可视化(Django+echarts))
  • 《Stata面板数据分析:数据检验、回归模型与诊断技术 - 以NLSW工资研究(公开数据)为例》
  • android studio 运行,偶然会导致死机,设置Memory Settings尝试解决
  • 不止于快:金士顿XS2000移动固态硬盘如何重塑你的数字生活
  • 机器学习1
  • ssh: connect to host github.com port 22: connection refused
  • Web学习笔记2
  • 使用球体模型模拟相机成像:地面与天空的可见性判断与纹理映射
  • 「py数据分析」04如何将 Python 爬取的数据保存为 CSV 文件
  • 基于Python的程序员数据分析与可视化系统的设计与实现