获取条形码解码的NULL值

时间:2016-04-26 07:17:44

标签: c# asp.net-mvc barcode zxing zxing.net

我在VS 2015中添加了来自NuGet Package Manager的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

2 个答案:

答案 0 :(得分:1)

如果您裁剪掉一部分图像,条形码将被正确解码。显然zxing无法确定“MDS”条形码是您尝试扫描的条形码。

仅仅从图像中移除EAN13是不够的,但如果您的图像只有垂直的“大象栏”,它确实找到了条形码:

enter image description here

换句话说,你需要“瞄准”扫描仪:)

答案 1 :(得分:0)

您是否尝试过:

ZXing.BarcodeReader reader = new ZXing.BarcodeReader()
{
    AutoRotate = true,
    TryInverted = true,
    Options = new DecodingOptions
    {
        TryHarder = true,
        PureBarcode = true,
        PossibleFormats = new List<BarcodeFormat> { BarcodeFormat.CODE_128 }
    }
};

这不会针对速度进行优化,但如果有效,您可以删除一些强力选项。