轉帖|使用教程|編輯:黃竹雯|2016-07-13 14:27:56.000|閱讀 589 次
概述:LeadTools作為全球領先的圖像處理開發包,在條碼處理方面功能非常強大。LEADTOOLS Barcode SDK是世界上首屈一指的工具包,它用于開發圖像中一維和二維條碼讀寫的應用程序。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
LeadTools作為全球領先的圖像處理開發包,在條碼處理方面功能非常強大。LEADTOOLS Barcode SDK是世界上首屈一指的工具包,它用于開發圖像中一維和二維條碼讀寫的應用程序。對于.NET(C# & VB.NET)、C/C++、Java和Web開發者來說,它是快速的、具有高準確和可靠性的條碼引擎。LeadTools幫助程序員在記錄時間內創建令人驚嘆的,功能全面的條碼應用程序。LeadTools綜合支持100余種條碼類型和子類型,如UPC、EAN、Code 128、數據矩陣和PDF417等。
本博文概覽:
條碼(barcode)是將寬度不等的多個黑條和空白,按照一定的編碼規則排列,用以表達一組信息的圖形標識符。常見的條形碼是由反射率相差很大的黑條(簡稱條)和白條(簡稱空)排成的平行線圖案。條形碼可以標出物品的生產國、制造廠家、商品名稱、生產日期、圖書分類號、郵件起止地點、類別、日期等信息,因而在商品流通、圖書管理、郵政管理、銀行系統等許多領域都得到了廣泛的應用。
1. 打開Visual Studio .NET。
2. 點擊 文件->新建->項目…。
3. 打開新建項目對話框后,在模板中選擇“Visual C#”或“Visual Basic”,隨后選擇“Windows窗體應用程序”。在名稱欄中輸入項目名稱“Reading and Writing Barcodes”,并使用“瀏覽”按鈕選擇您工程的存儲路徑,點擊“確定”。
4. 在“解決方案資源管理器”中,右擊“引用”,選擇“添加引用”。根據當前工程的 Framework 版本和生成目標平臺,選擇添加相應的LeadTools控件,例如工程中的版本為 Framework 4.0、生成目標平臺是 x86,則瀏覽選擇Leadtools For .NET文件夾” \Bin\DotNet4\Win32”,選擇以下的DLL“:
點擊“確定”按鈕,將以上所有的DLL添加到應用程序中。
5. 切換到Form1代碼視圖,將以下代碼添加至文件開始:
[C#] using Leadtools; using Leadtools.Codecs; using Leadtools.Forms; using Leadtools.Barcode;
6. 拖拽三個button至Form1。根據下表設置它們的屬性:
Name | Text |
---|---|
loadImageButton | 加載圖像 |
readBarcodesButton | 讀取條碼 |
writeBarcodeButton | 編寫條碼 |
7. 將以下私有變量添加至Form1:
[C#] private BarcodeEngine barcodeEngineInstance; // 條碼引擎 private RasterImage theImage; // 當前加載圖像 private string imageFileName; // 最后加載的圖像,用于編寫條碼
8. 將以下初始化代碼添加至Form1:
[C#] protected override void OnLoad(EventArgs e) { // 用LEADTOOLS提供的解鎖密鑰替換或使用評估版內核 //解鎖一維條碼的讀取 string MY_LICENSE_FILE = "d:\\temp\\TestLic.lic"; string MY_DEVELOPER_KEY = "xyz123abc"; RasterSupport.SetLicense(MY_LICENSE_FILE, MY_DEVELOPER_KEY); // 創建BarcodeEngine實例 barcodeEngineInstance = new BarcodeEngine(); base.OnLoad(e); }
9. 將以下清除代碼添加至Form1:
[C#] protected override void OnFormClosed(FormClosedEventArgs e) { // 刪除我們的資源 if(theImage != null) { theImage.Dispose(); } base.OnFormClosed(e); }
10. 將以下代碼添加至loadImageButton按鈕的Click事件句柄:
[C#] private void loadImageButton_Click(object sender, EventArgs e) { using(OpenFileDialog dlg = new OpenFileDialog()) { if(dlg.ShowDialog(this) == System.Windows.Forms.DialogResult.OK) { fileName = dlg.FileName; } else { return; } } // 加載圖像并顯示 using(RasterCodecs codecs = new RasterCodecs()) { RasterImage newImage = codecs.Load(fileName, 0, CodecsLoadByteOrder.BgrOrGray, 1, 1); //如果有舊圖像,將其刪除 if(theImage != null) { theImage.Dispose(); } theImage = newImage; imageFileName = fileName; } }
11. 將以下代碼添加至readBarcodesButton按鈕的Click事件句柄:
[C#] private void readBarcodesButton_Click(object sender, EventArgs e) { if(theImage == null) { MessageBox.Show("請先加載圖像"); return; } try { // 讀取所有條碼。 // 第一個參數為一個圖像,我們將從這個圖像中讀取條碼。 // 第二個參數為搜索矩形。空矩形表示整個圖像。 // 第三個參數為可讀取條碼的最大數目。0表示。 // 最后一個參數為一個我們感興趣的BarcodeSymbology數組??蓚鲄ull(或不傳值)表示我們希望讀取 // 所有可用的條碼(這些條碼均來自于這個圖像,并有目前的解鎖支持機制支持) BarcodeData[] dataArray = barcodeEngineInstance.Reader.ReadBarcodes(theImage, LogicalRectangle.Empty, 0, null); StringBuilder sb = new StringBuilder(); sb.AppendFormat("共有{0}個條碼", dataArray.Length); sb.AppendLine(); for(int i = 0; i < dataArray.Length; i++) { BarcodeData data = dataArray[i]; sb.AppendFormat("符號: {0}, 位置: {1}, 數據: {2}", data.Symbology.ToString(), data.Bounds.ToString(), data.Value); sb.AppendLine(); } MessageBox.Show(sb.ToString()); } catch(Exception ex) { MessageBox.Show(ex.Message); } }
12. 將以下代碼添加至writeBarcodeButton按鈕的Click事件句柄:
[C#] private void writeBarcodeButton_Click(object sender, EventArgs e) { if(theImage == null) { return; } // 創建一個 UPC A 條碼 BarcodeData data = new BarcodeData(); data.Symbology = BarcodeSymbology.UPCA; data.Value = "01234567890"; data.Bounds = new LogicalRectangle(10, 10, 600, 200, LogicalUnit.Pixel); // 設置選項啟用錯誤檢查,并將文本顯示在條碼的下方 OneDBarcodeWriteOptions options = new OneDBarcodeWriteOptions(); options.EnableErrorCheck = true; try { // 編寫條碼 barcodeEngineInstance.Writer.WriteBarcode(theImage, data, options); // 保存圖像 string dir = System.IO.Path.GetDirectoryName(imageFileName); string name = System.IO.Path.GetFileNameWithoutExtension(imageFileName); string saveFileName = System.IO.Path.Combine(dir, name + "_WriteBarcode.tif"); using(RasterCodecs codecs = new RasterCodecs()) { codecs.Save(theImage, saveFileName, RasterImageFormat.Tif, theImage.BitsPerPixel); } MessageBox.Show(string.Format("此條碼已編寫成功,并保存至 {0}", saveFileName)); } catch(Exception ex) { MessageBox.Show(ex.Message); } }
13. 編譯并運行程序。以下為運行結果。
首先點擊“加載圖像”按鈕,效果如下圖:
隨后若您點擊 “讀取條碼”按鈕則可讀取出所有條碼并顯示信息,效果如下圖:
若您點擊“編寫條碼”按鈕則可在圖像中編寫一個一維UPC A條碼并保存,效果如下圖:
DEMO下載:
文章轉自:葡萄城控件產品博客,//blog.gcpowertools.com.cn
如果你希望親自體驗一下LeadTools讀取和編寫條碼的功能,不妨查看并免費下載LeadTools試用版自己來試試。
如需幫助,請聯系!
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn