获取条形码解码的 NULL 值
Posted
技术标签:
【中文标题】获取条形码解码的 NULL 值【英文标题】:Getting NULL value for barcode decoding 【发布时间】:2016-08-19 20:45:45 【问题描述】:我在 VS 2015 中从 NuGet 包管理器添加了 Zxing.Net。我尝试使用以下代码来解码 CODE_128
条形码。但它给出了 null 作为结果。
同一张图片在包括Zxing Online Decoder在内的几乎所有在线读码网站都成功解码。
using System;
using System.Drawing;
using ZXing.QrCode;
using ZXing.QrCode.Internal;
public string barcode_scan()
string qr = @"C:\Users\Admin\Desktop\barcode.jpg";
ZXing.BarcodeReader reader = new ZXing.BarcodeReader();
var result = reader.Decode((Bitmap)Bitmap.FromFile(qr));
return result;
我不知道哪里出错了。
编辑:图片附Image with barcode
【问题讨论】:
【参考方案1】:您是否尝试过:
ZXing.BarcodeReader reader = new ZXing.BarcodeReader()
AutoRotate = true,
TryInverted = true,
Options = new DecodingOptions
TryHarder = true,
PureBarcode = true,
PossibleFormats = new List<BarcodeFormat> BarcodeFormat.CODE_128
;
这不会针对速度进行优化,但如果它有效,您可以删除一些蛮力选项。
【讨论】:
如果我想解码作为输入给出的任何条形码?我应该删除那个BarcodeFormat.CODE_128
吗??
你的评论特别提到了CODE_128
,所以我给了你。还有其他格式选项,可以添加到List<>
。
那么要么.Net 端口无法正常工作,您需要向项目提交问题,或者向我们提供您尝试使用的图像以便进行测试。
我已附上图片
不要使用“PureBarcode = true”选项。仅针对由编码器生成的黑白图像引入该图像。它通常不适用于现实生活中的图像。顺便提一句。使用 ZXing.Net 项目的 WinForms 示例应用程序可以成功解码条码。您需要选项“TryHarder = true”。【参考方案2】:
如果您裁剪图像的一部分,则条形码会被正确解码。显然 zxing 无法确定“MDS”条形码是您要扫描的条形码。
仅从图像中删除 EAN13 是不够的,但如果您的图像只有垂直的“大象条”,它确实会找到条形码:
换句话说,您需要“瞄准”扫描仪:)
【讨论】:
是的,这解决了问题。但是有什么方法可以从整个图像中扫描该条形码?以上是关于获取条形码解码的 NULL 值的主要内容,如果未能解决你的问题,请参考以下文章