【问题标题】:Getting NULL value for barcode decoding获取条形码解码的 NULL 值
【发布时间】: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

【问题讨论】:

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


    【解决方案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&lt;&gt;
    • 那么要么.Net 端口无法正常工作,您需要向项目提交问题,或者向我们提供您尝试使用的图像以便进行测试。
    • 我已附上图片
    • 不要使用“PureBarcode = true”选项。仅针对由编码器生成的黑白图像引入该图像。它通常不适用于现实生活中的图像。顺便提一句。使用 ZXing.Net 项目的 WinForms 示例应用程序可以成功解码条码。您需要选项“TryHarder = true”。
    【解决方案2】:

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

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

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

    【讨论】:

    • 是的,这解决了问题。但是有什么方法可以从整个图像中扫描该条形码?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-05
    • 1970-01-01
    • 1970-01-01
    • 2021-06-02
    • 2015-01-12
    • 1970-01-01
    • 2012-01-27
    相关资源
    最近更新 更多