本以為這次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);
以上代碼有點亂,希望大家不要放棄,其實這些代碼寫的都是精華,代碼比較實用,有哪些不明白的地方歡迎大家留言,我會在第一時間和大家取得聯系的,謝謝大家一直以來對武林網網站的支持。
新聞熱點
疑難解答