代码之家  ›  专栏  ›  技术社区  ›  Karthikeyan

无法读取IMB条形码

  •  1
  • Karthikeyan  · 技术社区  · 7 年前

    我试图从带有以下代码段的图像中读取IMB条形码,但它总是返回null。我也在下面的黑盒测试中尝试了IMB条形码图像,但不起作用。

    https://github.com/micjahn/ZXing.Net/tree/master/Source/test/data/blackbox/imb-1

    private static void Decode()
    {
        Bitmap bitmap = new Bitmap(@"\07.png");
        try
        {
            MemoryStream memoryStream = new MemoryStream();
            bitmap.Save(memoryStream, ImageFormat.Bmp);
            byte[] byteArray = memoryStream.GetBuffer();
            ZXing.LuminanceSource source = new RGBLuminanceSource(byteArray, bitmap.Width, bitmap.Height);
            var binarizer = new HybridBinarizer(source);
            var binBitmap = new BinaryBitmap(binarizer);
            IMBReader imbReader = new IMBReader();
    
            Result str = imbReader.decode(binBitmap);
    
        }
        catch { }
    
    }
    
    1 回复  |  直到 7 年前
        1
  •  0
  •   Karthikeyan    7 年前

    我通过使用下面的链接共享的代码片段解决了这个问题。 https://github.com/micjahn/ZXing.Net/issues/59

    private static void Decode2()
    {
        var bitmap = new Bitmap(@"\07.png"); // make sure that the file exists at the root level
        try
        {
            var imbReader = new BarcodeReader
            {
                Options =
                {
                    PossibleFormats = new List<BarcodeFormat> {BarcodeFormat.IMB}
                }
            };
            var result = imbReader.Decode(bitmap);
            if (result != null)
                System.Console.WriteLine(result.Text);
            else
                System.Console.WriteLine("nothing found");
        }
        catch (System.Exception exc)
        {
            System.Console.WriteLine(exc.ToString());
        }
    }