原創|使用教程|編輯:龔雪|2013-12-04 09:32:04.000|閱讀 1050 次
概述:本文主要介紹幾個主流的條形碼類型以及開發人員如何使用條碼開發工具包LEADTOOLS Barcodes SDK快速輕松地開發自己的應用程序。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
條碼的類型非常多,選擇合適的條形碼對于成功的軟件是必不可少的。從大的分類來看,條形碼分為:一維(1D)條碼和二維(2D)條碼。一維(1D)條碼最簡單,使用最廣泛,但持有的信息量比較小。二維(2D)條碼由于其攜帶的信息量較大而日益普及。然而,選擇使用一維(1D)條碼或二維(2D)條碼是一件非常復雜的工作。在選擇條形碼類型前,我們首先來了解一下當下最流行的條形碼以及如何使用這些一維(1D)條形碼和二維(2D)條形碼。
Code 128
Code 128屬于一維(1D)條形碼,表示從 ASCII 0 到ASCII 127 共128個字符,故稱128碼。其中包含了數字、字母和符號字符。CODE128條碼由于其字符集大,密度高,廣泛應用在企業內部管理、生產流程、物流控制、航運、包裝、運輸等方面的條碼碼制。
Code 39 (Code 3 of 9)
Code 39碼與Code 128有很多相似之處,都廣泛運用在企業內部管理、生產流程、物流控制系統方面。不同的在于Code 128比Code 39能表現更多的字符,單位長度里的編碼密度更高。當單位長度里不能容下Code 39編碼或編碼字符超出了Code 39的限制時,就可選擇Code 128來編碼。所以Code 128比Code 39更具靈性。
UPC / EAN
UPC / EAN是使用最頻繁的條形碼。通用產品代碼(UPC)歐洲商品編號(EAN)被廣泛用于標識商品銷售點零售領域。UPC和EAN主要不同之處在于,商品條碼EAN 使用兩位數字(00-99)和UPC使用一個(0-9)。
QR Code
QR Code屬于二維(2D)條形碼,是目前最知名、最友好的條碼。QR來自英文 “Quick Response” 的縮寫,即快速反應的意思,這種二維碼能夠快速讀取,與之前的條形碼相比,QR 碼能存儲更豐富的信息,包括對文字、URL 地址和其他類型的數據加密。QR碼的信息容量令人難以置信:數字最多7,089 字節;字母最多4,296 字節;二進位數 (8 bit) 最多2,953 字節。除了其巨大的儲存能力外,QR碼也是最強大、修正錯誤能力最強的條碼之一。
PDF417
PDF417是最常見的二維條碼,是一種高密度、高信息含量的便攜式數據文件,是實現證件及卡片等大容量、高可靠性信息自動存儲、攜帶并可用機器自動識讀的理想手段。從誕生之始就受到了國際社會的廣泛關注。經過幾年的努力,現已廣泛地應用在國防、公共安全、交通運輸、醫療保健、工業、商業、金融、海關及政府管理等領域。
Data Matrix
Data Matrix是二維條碼的一種,它被稱為 “數據碼” 或 “數據矩陣碼”。Data Matrix二維條碼的最小尺寸是目前所有條碼中最小的,尤其特別適用於小零件的標識,以及直接印刷在實體上。Data Matrix 可以對大量數據進行編碼:3116 個字符 (僅限數字字符)、2335 個字符 (僅限字母數字字符) 及 1556 個字符(僅限二進制數據)。Data Matrix 的另一個特性是縮小了尺寸。正是因為這種特性,Data Matrix 可以刻印在液晶顯示器、半導體或 IC 零件上。
在了解并選擇了條形碼后,如何將她們添加到應用程序中是一件較為困難的事情。當然,一維條碼可以自己編寫,因為它比較簡單,但是如果需要支持二維條碼或者多個一維條碼時,就比較復雜,最好使用專業的條碼SDK。
在尋找專業的條碼工具包時,選擇范圍是非常廣的。大多數條形碼具有直接的規范和標準,所以只需要選擇符合您應用程序的條碼SDK即可。但這只是一種理想狀態,假設每個圖像都非常干凈,所拍攝照片的光線非常好。然而在實際應用中,圖像有時候不太清晰,需要對圖像做一些預處理,因此一般的條形碼SDK無法達到要求。
LEADTOOLS公司擁有超過20年的圖像成像技術,旗下的條形碼工具包LEADTOOLS for Barcodes除了能否準確地讀寫條形碼外,而且只需要幾行代碼便可完成讀寫,參考代碼如下:
// Create a Barcode engine BarcodeEngine engine = new BarcodeEngine(); // Write a barcode to the image (UPC in this example) BarcodeData data = new BarcodeData(BarcodeSymbology.UPCA, "01234567890"); data.Bounds = new LogicalRectangle(0, 0, 400, 200, LogicalUnit.Pixel); engine.Writer.WriteBarcode(myImage, data, null); // Read all barcodes with default options. BarcodeData[] barcodes = engine.Reader.ReadBarcodes(myImage, LogicalRectangle.Empty, 0, null);
如上所示,LEADTOOLS提供了強大的條碼讀寫功能,而且還提供了條碼識別的微調選項。當已知條碼類型時,你可以限制程序中所使用符號的搜索范圍,因此對條碼程序性能要求比較高:
// Create a Barcode engine BarcodeEngine engine = new BarcodeEngine(); // Read only PDF417 and Data Matrix barcodes PDF417BarcodeReadOptions pdf417Options = new PDF417BarcodeReadOptions(); pdf417Options.BackColor = RasterColor.White; pdf417Options.ForeColor = RasterColor.Black; pdf417Options.SearchDirection = BarcodeSearchDirection.Vertical; DatamatrixBarcodeReadOptions dataMatrixOptions = new DatamatrixBarcodeReadOptions(); dataMatrixOptions.BackColor = RasterColor.White; dataMatrixOptions.ForeColor = RasterColor.Black; dataMatrixOptions.EnableSmallSymbols = true; BarcodeData[] barcodes = engine.Reader.ReadBarcodes( myImage, LogicalRectangle.Empty, 0, new BarcodeSymbology[] { BarcodeSymbology.PDF417, BarcodeSymbology.Datamatrix}, new BarcodeReadOptions[] { pdf417Options, dataMatrixOptions });
LEADTOOLS for Barcodes可以幫助開發人員縮短整個軟件開發過程的生命周期,提供多種條形碼支持,處理現實世界的圖像。而且,LEADTOOLS能提供最快的條形碼識別速度。相比較于其它的商業引擎來說,LEADTOOLS Barcode SDK 模塊有更快的條形碼識別速度。這就減少了高速掃描應用程序時的瓶頸問題。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:慧都控件網