2021SC@SDUSC
一、Zxing簡介
ZXing (“zebra crossing”) 是一個開源的、多格式的1D/2D條形碼影像處理庫,支持在影像中解碼和生成條形碼,用Java實作,具有其他語言的埠,而且支持PC端、移動端,目前支持以下格式的1D/2D條形碼:
| Type | 名稱 | 簡述 |
|---|---|---|
| 1D product | UPC-A | UPC標準碼,標識商品 |
| UPC-E | UPC縮短碼,縮短碼一般用在商品包裝比較小也就是條碼位置不夠的商品上, | |
| EAN-8 | 用于百貨業和超市 | |
| EAN-13 | 用于百貨業和超市 | |
| 1D industrial | Code 39 | 內部管理碼,工業行業應用較多,適用于比較小的商品 |
| Code 93 | 密度比39碼高,面積不足時,可替代39碼 | |
| Code 128 | 比39碼能表現更多的字符,適用于非銷售點產品,比如可作為運輸行業的集裝箱識別碼, | |
| Codabar | 自檢條碼,用于讀取印刷形式的條碼,用于航運業、血庫單、圖書館書脊等地方 | |
| ITF | 全球范圍內的商品運輸包裝 | |
| 2D | QR Code | 通常用于產品跟蹤或營銷,比如廣告、雜志或名片, |
| Data Matrix | 占用空間比QR二維碼小,是物流或運營中的小件產品的理想選擇 | |
| Aztec | 適用于運輸行業的二維碼,多用于機票和航空公司登機牌, | |
| PDF 417 | 適用于需要存盤大量資料(如照片、指紋、簽名、文本、數字、圖形或其他資訊)的應用程式,也可用于標識危險品、電子儀器技術規格與標準化資料 | |
| MaxiCode | Maxicode是特別為高速掃瞄而設計,主要應用于包裹搜尋和追蹤上, | |
| RSS-14 | RSS系列條碼是一維碼和二維碼的組合碼, | |
| RSS-Expanded | 同上 |
二、Zxing模塊分析
?ZXing 由多個模塊組成,包括核心影像解碼庫、JavaSE 特定客戶端代碼和 Android 客戶端條形碼掃描儀,它是許多其他第三方開源專案的基礎,
GitHub地址:https://github.com/zxing/zxing
API檔案:https://zxing.github.io/zxing/apidocs/index.html
介紹檔案(和docs中的內容同):https://zxing.github.io/zxing/
在這里我們稱每個檔案夾為一個模塊,對各檔案夾的描述如下:
| 模塊 | 描述 |
|---|---|
| core | 核心影像解碼庫以及測驗代碼 |
| javase | 特定于JavaSE的客戶端代碼 |
| android | 安卓客戶端條碼掃描器,安卓掃碼的實體 |
| android-integration | 支持通過 Intent 與安卓集成 |
| android-core | 配置 Android 相機 |
| zxingorg | 基于網路的(在線的)條形碼解碼器的代碼 |
| zxing.appspot.com | 基于網路的(在線的)條形碼生成器的代碼 |
| docs | Zxing的介紹檔案 |
核心部分的代碼為:core、android、android-core
三、與其他相關的第三方開源專案簡要比較
Zbar和 barcode4j是官方的README.md檔案中提到的其他相關的第三方開源專案,Zbar和Zxing均可以解碼;barcode4j和Zxing均用java撰寫,都可以生成碼,
| Zxing | Zbar |
|---|---|
| Java撰寫,覆寫主流編程語言 | C撰寫,速度極快 |
| 目前仍有多人維護 | 目前處于無人維護狀態 |
| Zxing支持更多的1D/2D條形碼,例如Data Matrix、Axtec等 | Zbar支持1D/2D條形碼較少 |
| Zxing不會出現中文亂碼 | Zbar 有中文會亂碼 |
| Android一般用Zxing | ios一般用Zbar |
| Zxing可以生成、決議碼 | Zbar無法生成碼 |
更多詳細資料對比可見:QR 代碼讀取基準和比較|動態軟體開發人員 (dynamsoft.com)
| Zxing | barcode4j |
|---|---|
| 可以生成、決議碼 | 只能生成碼 |
| 生成條形碼下方沒有數字 | 生成的條形碼下邊有數字 |
四、分工
分析core模塊代碼中影像解碼演算法(以主流碼制QR Code為例),嘗試對光線不足或過強情況下二維碼損壞的影像進行預處理后精準解碼;嘗試優化二維碼檢測演算法,
通過查閱資料簡要總結了以上幾條,
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/306267.html
標籤:其他
上一篇:iOS-class、object_getClass、objc_getClass、objc_getMetaClass區別
