gpt4 book ai didi

c# - ZXing.Net 解码条形码给出错误 - 无法从 'System.Drawing.Bitmap' 转换为 'ZXing.LuminanceSource'

转载 作者:行者123 更新时间:2023-12-03 19:31:07 26 4
gpt4 key购买 nike

我正在使用 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 pacakage 添加到 ASP.NET Core 应用程序时,然后是 ZXing.IBarcodeReader 缺少 Decode 重载方法:

IBarcodeReader 只有 2 个 decode 方法重载:
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(文件中的字符串文件)
{
//创建一个条形码阅读器实例
IBarcodeReader reader = new BarcodeReader();
BarcodeReader reader = new BarcodeReader();
//加载位图
varbarcodeBitmap = (Bitmap)Image.FromFile("wwwroot/qrr/"+ Path.GetFileName(file));

//检测并解码位图中的条形码
var 结果 = reader.Decode(barcodeBitmap);
}

注意这个 .Decode()an extension method IBarcodeReaderGeneric 而不是 IBarcodeReader

关于c# - ZXing.Net 解码条形码给出错误 - 无法从 'System.Drawing.Bitmap' 转换为 'ZXing.LuminanceSource',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54329643/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com