C#实现条形码识别
见过不少人、经过不少事、也吃过不少苦,感悟世事无常、人心多变,靠着回忆将往事串珠成链,聊聊感情、谈谈发展,我慢慢写、你一点一点看......
1.使用Nuget安装第三方库
dotnet add package ZXing.Net
dotnet add package ZXing.Net.Bindings.SkiaSharp
2.识别方法
public class BarcodeReaderService
{
public static string ReadBarcode(SKBitmap readerBitmap, BarcodeFormat barcodeFormat)
{
#region ZXing.NET 0.16.5
//var barcodeReader = new BarcodeReader();
#endregion
#region ZXing.NET 0.16.6 ~0.16.9
var luminanceSource = (Func<SKBitmap, LuminanceSource>)(bitmap => new ZXing.SkiaSharp.SKBitmapLuminanceSource(bitmap));
var barcodeReader = new BarcodeReader<SKBitmap>(null, luminanceSource, null);
#endregion
barcodeReader.Options.PossibleFormats = new List<BarcodeFormat>();
barcodeReader.Options.PossibleFormats.Add(barcodeFormat);
barcodeReader.AutoRotate = true;
barcodeReader.Options.TryHarder = true;
barcodeReader.Options.PureBarcode = false;
Result barcodeResult = null;
try
{
barcodeResult = barcodeReader.Decode(readerBitmap);
}
catch (Exception ex)
{
}
return barcodeResult==null ? string.Empty : barcodeResult.Text;
}
}
3.调用
using var readerQRCodeImage = SKBitmap.Decode(@"C:\Demo\Image\QRCode.png");
string result = BarcodeReaderService.ReadBarcode(readerQRCodeImage, BarcodeFormat.QR_CODE);
Console.WriteLine(result);
using var readerbarCodeImage = SKBitmap.Decode(@"C:\Demo\Image\Code28.png");
result = BarcodeReaderService.ReadBarcode(readerbarCodeImage, BarcodeFormat.CODE_128);
Console.WriteLine(result);
关注我,不失联。有啥问题请留言。
感情恋爱合集
职业发展故事
常用代码片段
程序开发教程
自我备考经验