VB.net 2010 视频教程 VB.net 2010 视频教程 VB.net 2010 视频教程
  • c#教程之基于C#实现12306的动态验证码变成静态验

  • 2018-04-23 20:08 来源:未知

新疆25选7开奖号码 www.d1dx0.cn 本以为这次12306的动态验证码很厉害,什么刷票软件都不行了,看了以后发现并不是很复杂,估计不出两日刷票软件又会卷土重来,开来要一个验证码很难遏制这些刷票软了。

这次换的动态验证码采用的是GIF格式在客户端输出,至于要拿到这个gif文件然后把动态图的各张图片拼凑起来就能得到完整的静态验证码,接下来就是识别静态验证码的事情了。

比如这张动态验证码

他的静态效果就是

下面是随手写的代码,有点混乱

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Image imgGif = Image.FromFile(Application.StartupPath + @"\getPassCodeNew.gif");
FrameDimension ImgFrmDim = new FrameDimension(imgGif.FrameDimensionsList[0]);
System.Drawing.Bitmap bp = new Bitmap(imgGif.Size.Width, imgGif.Size.Height);
int nFrameCount = imgGif.GetFrameCount(ImgFrmDim);
for (int i = 0; i < nFrameCount; i++)
{
imgGif.SelectActiveFrame(ImgFrmDim, i);
System.Drawing.Bitmap nbp = new Bitmap(imgGif);
Color dd = nbp.GetPixel(1, 1);
if (i == 0)
{
for (int x = 0; x < nbp.Width; x++)
{
for (int y = 0; y < nbp.Height; y++)
{
bp.SetPixel(x, y, dd);
}
}
}
for (int x = 0; x < nbp.Width; x++)
{
for (int y = 0; y < nbp.Height; y++)
{
Color c = nbp.GetPixel(x, y);
if (c == dd) continue;
bp.SetPixel(x, y, c);
}
}
}
bp.Save(Application.StartupPath + @"\Frame.jpg", ImageFormat.Bmp);

以上代码有点乱,希望大家不要放弃,其实这些代码写的都是精华,代码比较实用,有哪些不明白的地方欢迎大家留言,我会在第一时间和大家取得联系的,谢谢大家一直以来对脚本之家网站的支持。

 


相关教程
  • 中国算是世界杯中最能长期保持着稳定成绩的一个了。 2018-12-19
  • 北欧的千湖之国被选为2018全球最幸福国家 2018-12-19
  • 设计众议院:神奇的MQB让全新一代宝来重生 2018-12-19
  • 坚持思想建党 推进理论强党 2018-12-18
  • 苏57空中姿态控制能力瞬间救场, F22隐身战机无法超越! 2018-12-18
  • 河北省对中央环保督察“回头看”问题整改进行部署 强化标本兼治 防止整改问题反弹 2018-12-18
  • 文天祥就义秘闻:时人写“生祭文”催其速死成就英名 2018-12-18
  • 在学习中进步。[奋斗] 2018-12-17
  • 香港海关加强查检堵截涉世界杯赛事侵权物品 2018-12-17
  • 中兴展台图赏:可折叠手机AXON M吸睛丨CES2018 2018-12-17
  • 逛博物馆 淳化大鼎的身世之谜:是何方显贵之物? 2018-12-16
  • 大陆首批台湾乘务员晋升乘务长 2018-12-16
  • 端午假期国内游客超8900万人次 全域旅游见成效 2018-12-15
  • 好,那我领教一下,回答我提出的问题 2018-12-15
  • 藏医保健常识:保肝护肝有讲究 2018-12-15
  • 683| 175| 367| 669| 451| 266| 626| 783| 858| 880|