最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#使用zxing/zbar/thoughtworkQRcode解析二維碼的示例代碼

 更新時(shí)間:2023年07月24日 09:37:30   作者:產(chǎn)卵的魚  
zxing是谷歌開源的二維碼庫,zbar,thoughtworkQRcode也是開源的,三者之間比較各有優(yōu)劣,本文將通過一個(gè)案例demo源碼,帶來認(rèn)識(shí)學(xué)習(xí)下這三者的實(shí)際解碼效果,感興趣的可以了解一下

最近做項(xiàng)目需要解析二維碼圖片,找了一大圈,發(fā)現(xiàn)沒有人去整理下開源的幾個(gè)庫案例,花了點(diǎn)時(shí)間

做了zxing,zbar和thoughtworkqrcode解析二維碼案例,希望大家有幫助。

zxing是谷歌開源的二維碼庫,zbar,thoughtworkQRcode也是開源的,三者之間比較各有優(yōu)劣

下面通過一個(gè)案例demo源碼,來認(rèn)識(shí)學(xué)習(xí)下這三者的實(shí)際解碼效果,

第一次上傳demo源碼,獻(xiàn)丑了

zbar解析關(guān)鍵代碼:

Image primaryImage = Image.FromFile(fileName);
Bitmap pImg = MakeGrayscale3((Bitmap)primaryImage);
using (ZBar.ImageScanner scanner = new ZBar.ImageScanner())
{
    List<ZBar.Symbol> symbols = new List<ZBar.Symbol>();
    System.Diagnostics.Stopwatch watch = new Stopwatch();
    watch.Start();
    symbols = scanner.Scan((Image)pImg);
    watch.Stop();
    TimeSpan timeSpan = watch.Elapsed;
    MessageBox.Show("掃描執(zhí)行時(shí)間:" + timeSpan.TotalMilliseconds.ToString());
    if (symbols != null && symbols.Count > 0)
    {
        string result = string.Empty;
        symbols.ForEach(s => result += "條碼內(nèi)容:" + s.Data + " 條碼質(zhì)量:" + s.Type + Environment.NewLine);
        MessageBox.Show(result);
    }
}

zxing解析關(guān)鍵代碼:

Image primaryImage = Image.FromFile(fileName);
Bitmap pImg = MakeGrayscale3((Bitmap)primaryImage);
BarcodeReader reader = new BarcodeReader();
System.Diagnostics.Stopwatch watch = new Stopwatch();
watch.Start();
Result result = reader.Decode((Bitmap)pImg); //通過reader解碼
watch.Stop();
TimeSpan timeSpan = watch.Elapsed;
MessageBox.Show("二維碼值:"+result+"掃描執(zhí)行時(shí)間:" + timeSpan.TotalMilliseconds.ToString());

thoughtworkqrcode解析關(guān)鍵代碼:

Image primaryImage = Image.FromFile(fileName);
Bitmap pImg = (Bitmap)primaryImage;// MakeGrayscale3((Bitmap)primaryImage);
try
{
    System.Diagnostics.Stopwatch watch = new Stopwatch();
    watch.Start();
    string decodedString = new QRCodeDecoder().decode(new QRCodeBitmapImage(pImg), Encoding.UTF8);
    watch.Stop();
    TimeSpan timeSpan = watch.Elapsed;
    MessageBox.Show("二維碼值:" + decodedString + "掃描執(zhí)行時(shí)間:" + timeSpan.TotalMilliseconds.ToString());
}
catch (Exception ex)
{
    MessageBox.Show("好難過");
}

下面來測(cè)試下三者之間的給力程度吧,在草料二維碼網(wǎng)頁上在線生成一個(gè)二維碼

為了測(cè)試給力程度,我們截出如下圖片,三者對(duì)比解碼:

下面來看下效果吧:

zbar效果

zxing效果

thoughtworqrcode效果

從解碼的效率上來看zbar》zxing》thoughtworkqrcode

從穩(wěn)定性來看zbar是最差的,zbar這個(gè)開源項(xiàng)目已經(jīng)很久沒再維護(hù)更新了,所以這也是跟不上時(shí)代的一個(gè)原因,但是效率確實(shí)比較高。

到此這篇關(guān)于C#使用zxing/zbar/thoughtworkQRcode解析二維碼的示例代碼的文章就介紹到這了,更多相關(guān)C#解析二維碼內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C#獲取全部目錄和文件的簡(jiǎn)單實(shí)例

    C#獲取全部目錄和文件的簡(jiǎn)單實(shí)例

    這篇文章介紹了C#獲取全部目錄和文件的簡(jiǎn)單實(shí)例,有需要的朋友可以參考一下
    2013-10-10
  • C#  .NET實(shí)現(xiàn)Excel到JSON的自動(dòng)化轉(zhuǎn)換

    C#  .NET實(shí)現(xiàn)Excel到JSON的自動(dòng)化轉(zhuǎn)換

    在 .NET 開發(fā)中,Excel 與 JSON 的格式轉(zhuǎn)換是數(shù)據(jù)交互的高頻需求,本文將詳細(xì)講解如何使用免費(fèi) 庫快速實(shí)現(xiàn) Excel 到 JSON 的自動(dòng)化轉(zhuǎn)換,有需要的可以了解下
    2026-01-01
  • C#向Word文檔中添加內(nèi)容控件的方法示例

    C#向Word文檔中添加內(nèi)容控件的方法示例

    這篇文章主要給大家介紹了C#向Word文檔中添加內(nèi)容控件的方法,文中對(duì)各種不同控件的添加方法分別進(jìn)行了介紹,如組合框、文本、圖片、日期選取器及下拉列表等內(nèi)容控件,都給出了詳細(xì)的示例代碼,有需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-01-01
  • 使用linq to xml修改app.config示例(linq讀取xml)

    使用linq to xml修改app.config示例(linq讀取xml)

    這篇文章主要介紹了使用linq to xml修改app.config示例,需要的朋友可以參考下
    2014-02-02
  • C#程序加密工具.Net?Reactor詳細(xì)教程

    C#程序加密工具.Net?Reactor詳細(xì)教程

    .Net?Reacto加密工具是一款強(qiáng)大的?.NET?代碼保護(hù)和授權(quán)管理系統(tǒng),安全可靠、簡(jiǎn)單易用,主要用來幫助開發(fā)人員保護(hù)他們的?.NET?軟件產(chǎn)品,本文給大家詳細(xì)介紹C#程序加密工具.Net?Reactor教程,感興趣的朋友一起看看吧
    2022-02-02
  • C#儀器數(shù)據(jù)文件解析Excel文件的方法淺析(xls、xlsx)

    C#儀器數(shù)據(jù)文件解析Excel文件的方法淺析(xls、xlsx)

    這篇文章主要給大家介紹了關(guān)于C#儀器數(shù)據(jù)文件如何解析Excel文件的方法,包括解析xls、xlsx兩種格式,文中介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-10-10
  • C#配置文件操作類分享

    C#配置文件操作類分享

    這篇文章主要分享了C#配置文件操作類,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • C# 實(shí)現(xiàn)dataGridView選中一行右鍵出現(xiàn)菜單的示例代碼

    C# 實(shí)現(xiàn)dataGridView選中一行右鍵出現(xiàn)菜單的示例代碼

    這篇文章主要介紹了C# 實(shí)現(xiàn)dataGridView選中一行右鍵出現(xiàn)菜單,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-09-09
  • Unity3D實(shí)現(xiàn)導(dǎo)航效果

    Unity3D實(shí)現(xiàn)導(dǎo)航效果

    這篇文章主要為大家詳細(xì)介紹了Unity3D實(shí)現(xiàn)簡(jiǎn)單導(dǎo)航效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • C#使用DateTime.Now靜態(tài)屬性動(dòng)態(tài)獲得系統(tǒng)當(dāng)前日期和時(shí)間

    C#使用DateTime.Now靜態(tài)屬性動(dòng)態(tài)獲得系統(tǒng)當(dāng)前日期和時(shí)間

    本文主要介紹了C#使用DateTime.Now靜態(tài)屬性動(dòng)態(tài)獲得系統(tǒng)當(dāng)前日期和時(shí)間,DateTime結(jié)構(gòu)的Now靜態(tài)屬性只是得到一個(gè)系統(tǒng)時(shí)間對(duì)象,該時(shí)間對(duì)象不會(huì)隨著系統(tǒng)時(shí)間的變化而變化,如果要?jiǎng)討B(tài)顯示系統(tǒng)時(shí)間,可以使用計(jì)時(shí)器間隔地獲取系統(tǒng)時(shí)間對(duì)象并顯示,感興趣的可以了解一下
    2024-01-01

最新評(píng)論

台东市| 五常市| 临猗县| 锡林浩特市| 中西区| 沅江市| 苏尼特左旗| 大名县| 开化县| 江安县| 秦皇岛市| 安宁市| 黄陵县| 宿松县| 琼中| 和龙市| 响水县| 勐海县| 临猗县| 渭南市| 镇坪县| 大荔县| 博罗县| 固阳县| 泽库县| 娱乐| 广饶县| 紫云| 莎车县| 怀来县| 来安县| 谷城县| 南丹县| 常山县| 罗田县| 平顺县| 北安市| 克东县| 旌德县| 寿宁县| 将乐县|