1. 程式人生 > 其它 >windev20中文版呼叫zxing 。net dll來識別圖片裡多個條碼

windev20中文版呼叫zxing 。net dll來識別圖片裡多個條碼

windev20中文版裡有識別qr二維碼的內建函式,但是沒有識別條碼的函式,正好zxing現在有。net的介面

參考這批文字的c#寫法   Barcode識別:如何應對多條形碼和複雜場景_yushulx的專欄-程式設計師八零_多條形碼識別 - 程式設計師八零 (cxy80.com)

先去下載dll  在NuGet Gallery | ZXing.Net 0.16.8 下載安裝包,安裝包字尾是nupkg,可以改成zip  解壓出,net2.0的dll,然後在windev工程裡新增。net程式集

 

新增System.Drawing與zxing

 

參考c#語句,用GenericMultipleBarcodeReader 來識別多個條碼

Bitmap barcodeBitmap = (Bitmap)Image.FromFile(file);

ZXing.MultiFormatReader multiFormatReader = new ZXing.MultiFormatReader();
            ZXing.Multi.GenericMultipleBarcodeReader multiBarcodeReader = new ZXing.Multi.GenericMultipleBarcodeReader(multiFormatReader);
LuminanceSource source = new BitmapLuminanceSource(bitmap);
                ZXing.BinaryBitmap bBitmap 
= new ZXing.BinaryBitmap(new HybridBinarizer(source)); ZXing.Result[] zResults=multiBarcodeReader.decodeMultiple(bBitmap);

windev實際是用反射在執行dll函式

重複區域刪除全部(重複區域_識別結果)//重置looper
圖片路徑 是字串型 = 檔案圖片選擇器("C:\Directories","File.bmp","Select an image")
圖片_無名稱1 = 圖片路徑
物件2 是 Bitmap(圖片路徑)//圖片路徑做引數例項化bitmap物件
物件3 是 BitmapLuminanceSource(物件2)
物件4 是 HybridBinarizer(物件3)
物件5 是 BinaryBitmap(物件4) //最後形成BinaryBitmap物件例項
多條碼閱讀器 是 MultiFormatReader
通用多條碼閱讀器 是 GenericMultipleBarcodeReader(多條碼閱讀器)

如果 變數型別(通用多條碼閱讀器.decodeMultiple(物件5)) 不等於 WL.四位元組整數型 那麼//返回數字是無法識別報錯
對於通用多條碼閱讀器.decodeMultiple(物件5) 中的每個 項
重複區域新增行(重複區域_識別結果,項.Text)

結束
否則
錯誤(“無法識別”)
結束

實際識別效果一般  5.87 ZZm:/ 使用zXing.net庫來識別圖片裡多個條碼 https://v.douyin.com/NhSoWrm/   複製此連結,開啟Dou音搜尋,直接觀看視訊!

工程原始碼  

連結:https://pan.baidu.com/s/1Fe6s3jPgTu-Gn9E8ZZ1buA
提取碼:1243