天天看點

人生就要挑戰新難度——記zxing的深化

  首先,我們來看看zxing一些基本介紹。

  zxing是一個開放源碼的,用java實作的多種格式的1d(注1d條碼主要常見的條碼)

  

人生就要挑戰新難度——記zxing的深化

  /2d條碼(主要是二維碼)

人生就要挑戰新難度——記zxing的深化

  圖像處理庫,它包含了聯系到其他語言的端口。zxing可以實作使用手機的内置的攝像頭完成條形碼的掃描及解碼。該項目可實作的條形碼編碼和解碼。我們目前支援以下格式:

  upc-a,upc-e

  ean-8,ean-13

  39碼

  93碼

  代碼128

  創新及科技基金

  庫德巴

  rss-14(所有的變體

  rss擴充(大多數變體)

  qr碼

  資料矩陣

  阿茲台克人('測試版'品質)

  pdf 417('阿爾法'的品質)

  zxing庫的主要部分支援以下幾個功能:核心代碼的使用、适用于j2se用戶端的版本、适用于android用戶端的版本(即barcodescanner)、android的內建(通過intent支援和barcodescanner的內建)等。

  在android下生成二維碼

  相應的源代碼如下: 

 通過代碼,我們可以得出下列的結論:

  為了更好的生成相應的二維碼,我們需要将相應的二維碼内容轉換成相應的流對象,将流對象轉換成相應的圖檔,這圖檔是不同部分變成黑白的圖檔。

  相應的解析的結果是:姓名:曾馳文,性别:男,年齡:27,籍貫:湖南長沙,

  解析二維碼

  下面是 二維碼從圖檔解析内容的分析與實作

  解碼的流程大緻分成以下幾個步驟:

  1:擷取攝像頭byte[] data

2:對資料進行解析

在zxing用戶端源碼中

previewcallback 攝像頭回調 data就是出自這裡

planaryuvluminancesource 繼承與luminancesource不同的資料原 yuv rgb  

rgbluminancesource

autofocuscallback  自動對焦。不能自動對焦的手機zxing就不能發威了(這個處理相應的攝像頭的過程中,在android系統下,由于是調用硬體裝置,往往系統排程無法處理,進而實作後退鍵反映不及時的結果)

cameramanager  攝像頭管理類。打開,關閉

decodethread   線程管理主要利用到了countdownlatch

decodehandler  資料傳輸中樞。我了解decodethread控制線程,decodehandler發送資料

decodeformatmanager  這個配置解碼格式。一維碼,二維碼等

captureactivityhandler 這個是解碼與avtivity中介。解碼成功,失敗都用她回調

viewfinderview  我們看到的掃描框,搞花樣就從她入手

      同樣,我們來看看源代碼:

 我們可以看出:

  ①指定相應的系統的參數來解碼byte數組中的内容。

  ②這樣數組往往會出現亂碼,我們需要經過crc等等的編碼格式的校正。

  ③把相應的文字指派給對話框。

  這就是我對zxing的了解。

繼續閱讀