基於C#完成12306的靜態驗證碼釀成靜態驗證碼的辦法。本站提示廣大學習愛好者:(基於C#完成12306的靜態驗證碼釀成靜態驗證碼的辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是基於C#完成12306的靜態驗證碼釀成靜態驗證碼的辦法正文
本認為此次12306的靜態驗證碼很凶猛,甚麼刷票軟件都不可了,看了今後發明其實不是很龐雜,估量不出兩日刷票軟件又會東山再起,開來要一個驗證碼很難遏制這些刷票軟了。
此次換的靜態驗證碼采取的是GIF格局在客戶端輸入,至於要拿到這個gif文件然後把靜態圖的各張圖片拼集起來就可以獲得完全的靜態驗證碼,接上去就是辨認靜態驗證碼的工作了。
好比這張靜態驗證碼
他的靜態後果就是
上面是順手寫的代碼,有點凌亂
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);
以上代碼有點亂,願望年夜家不要廢棄,其實這些代碼寫的都是精髓,代碼比擬適用,有哪些不明確的處所迎接年夜家留言,我會在第一時光和年夜家獲得接洽的,感謝年夜家一向以來對網站的支撐。