2016-04-26 3 views
1

Ich habe das Zxing.Net von NuGet Package Manager in VS 2015 hinzugefügt. Ich habe den folgenden Code zum Entschlüsseln eines CODE_128 Strichcodes ausprobiert. Aber es gibt null als Ergebnis. Das gleiche Bild wird erfolgreich in fast allen Online-Barcode-Leseseiten einschließlich Zxing Online Decoder decodiert.NULL-Wert für Barcode-Dekodierung erhalten

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; 
} 

Ich bin nicht in der Lage zu erkennen, wo ich falsch liege.

Edit: Bild angehängt Image with barcode

Antwort

1

Wenn Sie ein Bildstück ausschneiden, wird der Strichcode korrekt dekodiert. Offenbar kann zxing nicht feststellen, dass der "MDS" Barcode der Barcode ist, den Sie scannen möchten.

einfach das EAN13 aus dem Bild zu entfernen, ist nicht genug, aber wenn Sie ein Bild mit nur der vertikalen „Elephant Bar“ haben sie den Barcode nicht finden:

enter image description here

Mit anderen Worten, Sie‘ ll muss den Scanner "zielen" :)

+0

Ja, das hat das Problem gelöst. Aber kann ich den Barcode aus dem ganzen Bild scannen? –

0

Haben Sie versucht, mit:

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

Dies wird nicht auf Geschwindigkeit optimiert werden, aber wenn es funktioniert, können Sie einen Teil der Brute-Force entfernen Optionen.

+0

Falls ich irgendeinen Barcode dekodieren möchte, der als Eingabe gegeben wird? Soll ich das 'BarcodeFormat.CODE_128' entfernen? –

+0

Ihr Kommentar speziell erwähnt 'CODE_128', also habe ich Ihnen das gegeben. Es gibt andere Optionen für Formate, die zur 'Liste <>' hinzugefügt werden können. – Patrick

+0

Funktioniert immer noch nicht –