首先,我們來看看zxing一些基本介紹。
zxing是一個開放源碼的,用java實作的多種格式的1d(注1d條碼主要常見的條碼)

/2d條碼(主要是二維碼)
圖像處理庫,它包含了聯系到其他語言的端口。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的了解。