为什么 ZXing.net 不解码自己创建的 EAN-13 条形码

Why ZXing.net doesn't decode EAN-13 barcodes, created by itself

我正在尝试生成并扫描 EAN-13 条形码:

BarcodeReader barcodeReader = new BarcodeReader();
        BarcodeWriter barcodeWriter = new BarcodeWriter
        {
            Format = BarcodeFormat.EAN_13
        };
        barcodeWriter.Options.Height = 200;
        barcodeWriter.Options.Width = 200;

        barcodeReader.Options.PossibleFormats = new List<BarcodeFormat>();
        barcodeReader.Options.PossibleFormats.Add(BarcodeFormat.EAN_13);
        barcodeReader.Options.TryHarder = true;


        string content = "123123123123";
        Bitmap barcodeBitmap = barcodeWriter.Write(content);
        var res = barcodeReader.Decode((Bitmap)barcodeBitmap); //res == null
        Console.WriteLine(res.Text);

为什么ZXing.net无法扫描自己生成的条码?

更新: 我在 A4 纸上打印条形码,扫描它并通过图像编辑器裁剪,如下所示:

ZXing也扫描不了这个条码

EAN-13 条形码需要水平静区(边距)。 BarcodeReader 似乎未能检测到条形码,因为图像左右两侧没有足够的空白 space。

我在写入条形码之前设置了 Margin 选项,并且能够创建一个可以读取的条形码图像:

barcodeWriter.Options.Margin = 6;

文档说这应该产生 6 像素的水平边距。但是,实际上我在生成的图像中看到了更大的边距。

由于左数第 5 栏中的垂直白线伪像,您打印后扫描的图像似乎无法读取。我从您的图像中删除了这条白线(见下文),然后 BarcodeReader 能够成功读取条形码。