ZXing.Net 解码条形码给出错误 - 无法从 'System.Drawing.Bitmap' 转换为 'ZXing.LuminanceSource'
ZXing.Net decode barcode giving Error - Cannot convert from 'System.Drawing.Bitmap' to 'ZXing.LuminanceSource'
我正在使用 ZXing.Net 0.16.4.0 解码保存在 'wwwroot/qrr' 文件夹中的二维码文件,但出现编译时错误:
Cannot convert from 'System.Drawing.Bitmap' to
'ZXing.LuminanceSource'
我的代码:
string[] files = Directory.GetFiles("wwwroot/qrr");
foreach (string file in files)
{
// create a barcode reader instance
IBarcodeReader reader = new BarcodeReader();
// load a bitmap
var barcodeBitmap = (Bitmap)Image.FromFile("wwwroot/qrr/" + Path.GetFileName(file));
// detect and decode the barcode inside the bitmap
var result = reader.Decode(barcodeBitmap);
}
错误在最后一行代码:
var result = reader.Decode(barcodeBitmap);
我的应用程序在 ASP.NET Core 中,我使用的是官方文档代码,但它们无法正常工作。请帮忙?
更新
我注意到 ZXing 包添加到 ASP.NET 核心应用程序后,ZXing.IBarcodeReader 缺少解码重载方法:
IBarcodeReader 只有 2 个解码方法重载:
Result Decode(byte[] rawRGB, int width, int height, RGBLuminanceSource.BitmapFormat format);
Result Decode(LuminanceSource luminanceSource);
但是当你在.Net 4.6.1 框架中安装这个包时,还有一种重载方法:
Result Decode(Bitmap barcodeBitmap);
一个包如何在不同的框架下给出不同的代码?
由于您使用的是 ASP.NET Core,我假设您已经添加了对 ZXing.Net.Bindings.CoreCompat.System.Drawing
包的引用。您需要更改代码如下:
string[] files = Directory.GetFiles("wwwroot/qrr");
foreach (string file in files)
{
// create a barcode reader instance
IBarcodeReader reader = new BarcodeReader();
BarcodeReader reader = new BarcodeReader();
// load a bitmap
var barcodeBitmap = (Bitmap)Image.FromFile("wwwroot/qrr/" + Path.GetFileName(file));
// detect and decode the barcode inside the bitmap
var result = reader.Decode(barcodeBitmap);
}
注意这个.Decode()
是an extension method of IBarcodeReaderGeneric
instead of the IBarcodeReader
我正在使用 ZXing.Net 0.16.4.0 解码保存在 'wwwroot/qrr' 文件夹中的二维码文件,但出现编译时错误:
Cannot convert from 'System.Drawing.Bitmap' to 'ZXing.LuminanceSource'
我的代码:
string[] files = Directory.GetFiles("wwwroot/qrr");
foreach (string file in files)
{
// create a barcode reader instance
IBarcodeReader reader = new BarcodeReader();
// load a bitmap
var barcodeBitmap = (Bitmap)Image.FromFile("wwwroot/qrr/" + Path.GetFileName(file));
// detect and decode the barcode inside the bitmap
var result = reader.Decode(barcodeBitmap);
}
错误在最后一行代码:
var result = reader.Decode(barcodeBitmap);
我的应用程序在 ASP.NET Core 中,我使用的是官方文档代码,但它们无法正常工作。请帮忙?
更新
我注意到 ZXing 包添加到 ASP.NET 核心应用程序后,ZXing.IBarcodeReader 缺少解码重载方法:
IBarcodeReader 只有 2 个解码方法重载:
Result Decode(byte[] rawRGB, int width, int height, RGBLuminanceSource.BitmapFormat format);
Result Decode(LuminanceSource luminanceSource);
但是当你在.Net 4.6.1 框架中安装这个包时,还有一种重载方法:
Result Decode(Bitmap barcodeBitmap);
一个包如何在不同的框架下给出不同的代码?
由于您使用的是 ASP.NET Core,我假设您已经添加了对 ZXing.Net.Bindings.CoreCompat.System.Drawing
包的引用。您需要更改代码如下:
string[] files = Directory.GetFiles("wwwroot/qrr"); foreach (string file in files) { // create a barcode reader instanceIBarcodeReader reader = new BarcodeReader();BarcodeReader reader = new BarcodeReader(); // load a bitmap var barcodeBitmap = (Bitmap)Image.FromFile("wwwroot/qrr/" + Path.GetFileName(file)); // detect and decode the barcode inside the bitmap var result = reader.Decode(barcodeBitmap); }
注意这个.Decode()
是an extension method of IBarcodeReaderGeneric
instead of the IBarcodeReader