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

Android zxing如何識(shí)別反轉(zhuǎn)二維碼詳解

 更新時(shí)間:2018年09月12日 09:22:16   作者:AndroidTraveler  
這篇文章主要給大家介紹了關(guān)于Android zxing如何識(shí)別反轉(zhuǎn)二維碼的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

前言

說起二維碼掃描,估計(jì)很多人用的是 zxing 吧。

需要學(xué)習(xí)的朋友們也可以先看看這篇文章:http://www.fzitv.net/article/99765.htm

然而 zxing 雖然好用,但是卻有一些坑。

這邊分析一下自己實(shí)際項(xiàng)目遇到的一個(gè)坑。

什么坑呢?

下面舉個(gè)栗子你就懂了。

這邊生成二維碼使用的是網(wǎng)絡(luò)上的一個(gè)網(wǎng)站聯(lián)圖

以百度為例,正常情況生成的二維碼如下:

這種情況下用 zxing 分分鐘就可以識(shí)別出來。

但是假設(shè)我將前景色和后景色調(diào)換,生成的二維碼如下:

這種情況下 zxing 就識(shí)別不出了。

所以說這種時(shí)候就很無奈了。畢竟有些場(chǎng)景就需要用到反轉(zhuǎn)二維碼。

所以本篇說的 zxing 的坑就是無法識(shí)別反轉(zhuǎn)二維碼。

咋辦呢?涼拌。

這種時(shí)候就需要去源碼看看了。

看一下二維碼解析的代碼邏輯在哪?

通過一番折騰,跟蹤調(diào)試,最后定位到如下位置:

https://github.com/zxing/zxing/blob/master/android/src/com/google/zxing/client/android/DecodeHandler.java#L80

關(guān)鍵代碼:(DecodeHandler.java 里面的 decode 方法)

BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source));

如果要識(shí)別上面的反轉(zhuǎn)百度二維碼,需要如何處理呢?

很簡(jiǎn)單,只需要將上面的代碼改為:

BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source.invert()));

即可。

到了這里,相信聰明的你應(yīng)該知道如何讓 zxing 同時(shí)支持兩種格式了。

只需要設(shè)置一個(gè)計(jì)數(shù)器,然后在指定次數(shù)(比如前 3 次)里面使用

BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source));

在另外次數(shù)(比如后 3 次)里面使用

BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source.invert()));

交替使用即可。

這樣就可以解決正轉(zhuǎn)和反轉(zhuǎn)二維碼的識(shí)別了。

NOTE:

  • 通過交替識(shí)別可能會(huì)降低識(shí)別速度,因此次數(shù)設(shè)置為多少需要自己調(diào)試把控。
  • 計(jì)數(shù)時(shí)注意避免次數(shù)溢出。

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

相關(guān)文章

  • 懸浮對(duì)話框Android代碼實(shí)現(xiàn)

    懸浮對(duì)話框Android代碼實(shí)現(xiàn)

    這篇文章主要為大家詳細(xì)介紹了懸浮對(duì)話框Android代碼實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-08-08
  • Android項(xiàng)目中g(shù)radle的執(zhí)行流程

    Android項(xiàng)目中g(shù)radle的執(zhí)行流程

    大家好,本篇文章主要講的是Android項(xiàng)目中g(shù)radle的執(zhí)行流程,感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下
    2022-01-01
  • Android?AIDL通信DeadObjectException解決方法示例

    Android?AIDL通信DeadObjectException解決方法示例

    這篇文章主要為大家介紹了Android?AIDL通信DeadObjectException解決的方法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • 分享一個(gè)輕量級(jí)圖片加載類 ImageLoader

    分享一個(gè)輕量級(jí)圖片加載類 ImageLoader

    這篇文章給大家分享一個(gè)輕量級(jí)圖片加載類 ImageLoader,需要的朋友可以參考下
    2016-08-08
  • Android自定義View過程解析

    Android自定義View過程解析

    這篇文章主要針對(duì)Android自定義View過程進(jìn)行解析,Android創(chuàng)建自定義的view,感興趣的小伙伴們可以參考一下
    2016-01-01
  • Android開發(fā)之Kotlin委托的原理與使用詳解

    Android開發(fā)之Kotlin委托的原理與使用詳解

    我們常用的委托模式怎么使用?在?Java?語言中需要我們手動(dòng)的實(shí)現(xiàn),而在?Kotlin?語言中直接通過關(guān)鍵字?by?就可以實(shí)現(xiàn)委托,下面我們就一起看看不同種類的委托使用以及在?Android?常見的一些場(chǎng)景中的使用
    2023-03-03
  • Android入門之讀寫本地文件的實(shí)現(xiàn)

    Android入門之讀寫本地文件的實(shí)現(xiàn)

    這篇文章主要為大家詳細(xì)介紹了Android如何實(shí)現(xiàn)讀寫本地文件的功能,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Android有一定的幫助,需要的可以參考一下
    2022-12-12
  • Android圓角按鈕的制作方法

    Android圓角按鈕的制作方法

    這篇文章主要為大家詳細(xì)介紹了Android圓角按鈕的制作方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • 解決Android 高CPU占用率的問題

    解決Android 高CPU占用率的問題

    最近測(cè)試測(cè)試APP的一個(gè)功能,發(fā)現(xiàn)點(diǎn)擊頁面上的按鈕后,CPU占有率比之前的版本要高,所以本文給大家介紹了如何解決Android 高CPU占用率的問題,需要的朋友可以參考下
    2023-09-09
  • Kotlin中的高階函數(shù)深入講解

    Kotlin中的高階函數(shù)深入講解

    這篇文章主要給大家介紹了關(guān)于Kotlin中高階函數(shù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-11-11

最新評(píng)論

砀山县| 刚察县| 威海市| 嘉峪关市| 塘沽区| 措美县| 阜康市| 南和县| 隆子县| 澎湖县| 盖州市| 哈巴河县| 资中县| 宁远县| 河西区| 长沙县| 米泉市| 方城县| 吴江市| 吉木萨尔县| 诸暨市| 陇川县| 永定县| 台南县| 南阳市| 南江县| 隆林| 南阳市| 斗六市| 芦溪县| 天水市| 镇远县| 五河县| 贡嘎县| 彭阳县| 揭东县| 兴业县| 涪陵区| 措美县| 岗巴县| 镇巴县|