基于C#實(shí)現(xiàn)12306的動(dòng)態(tài)驗(yàn)證碼變成靜態(tài)驗(yàn)證碼的方法
本以為這次12306的動(dòng)態(tài)驗(yàn)證碼很厲害,什么刷票軟件都不行了,看了以后發(fā)現(xiàn)并不是很復(fù)雜,估計(jì)不出兩日刷票軟件又會卷土重來,開來要一個(gè)驗(yàn)證碼很難遏制這些刷票軟了。
這次換的動(dòng)態(tài)驗(yàn)證碼采用的是GIF格式在客戶端輸出,至于要拿到這個(gè)gif文件然后把動(dòng)態(tài)圖的各張圖片拼湊起來就能得到完整的靜態(tài)驗(yàn)證碼,接下來就是識別靜態(tài)驗(yàn)證碼的事情了。
比如這張動(dòng)態(tài)驗(yàn)證碼

他的靜態(tài)效果就是

下面是隨手寫的代碼,有點(diǎn)混亂
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);
以上代碼有點(diǎn)亂,希望大家不要放棄,其實(shí)這些代碼寫的都是精華,代碼比較實(shí)用,有哪些不明白的地方歡迎大家留言,我會在第一時(shí)間和大家取得聯(lián)系的,謝謝大家一直以來對腳本之家網(wǎng)站的支持。
相關(guān)文章
C#中winform窗體實(shí)現(xiàn)注冊/登錄功能實(shí)例(DBHelper類)
在編寫項(xiàng)目時(shí),編寫了一部分關(guān)于登錄頁面的一些代碼,下面這篇文章主要給大家介紹了關(guān)于C#中winform窗體實(shí)現(xiàn)注冊/登錄功能(DBHelper類)的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-06-06
C#搜索TreeView子節(jié)點(diǎn),保留父節(jié)點(diǎn)的方法
這篇文章主要介紹了C#搜索TreeView子節(jié)點(diǎn),保留父節(jié)點(diǎn)的方法,實(shí)例分析了C#操作TreeView節(jié)點(diǎn)的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-09-09
C#實(shí)現(xiàn)圖像選擇驗(yàn)證碼的示例代碼
為了防止網(wǎng)站被非法登陸,網(wǎng)站一般通過驗(yàn)證碼的方式,防止黑客用軟件非法登陸,本文主要介紹了C#實(shí)現(xiàn)圖像選擇驗(yàn)證碼的示例代碼,具有一定的參考價(jià)值,感興趣的可以了解一下2023-08-08
C#執(zhí)行表達(dá)式樹(Expression Tree)的具體使用
本文將深入探討表達(dá)式樹的基本概念、創(chuàng)建方法、修改和刪除節(jié)點(diǎn)、查詢和遍歷技巧以及在C#中的應(yīng)用示例,具有一定的參考價(jià)值,感興趣的可以了解一下2024-03-03
C#實(shí)現(xiàn)多文件打包壓縮(.Net?Core)
本文詳細(xì)講解了.Net?Core框架下C#實(shí)現(xiàn)多文件打包壓縮的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-12-12
C#調(diào)用海康工業(yè)相機(jī)SDK采集圖像并在Halcon窗口中顯示方式
這篇文章主要介紹了C#調(diào)用??倒I(yè)相機(jī)SDK采集圖像并在Halcon窗口中顯示方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02

