Я использую ZXing.Net для извлечения штрих-кодов из изображений, полученных с сетевого сканера.
Однако ZXing иногда обнаруживает часть текста в виде штрих-кода.
Вот пример:
Красные линии (приблизительно) - это обнаруженные штрих-коды (выдержка из возврата ResultingPoints
методом DecodeMultiple
).
В этом примере обнаружены следующие штрих-коды: 0
, Marqueur de debut de scan
и 07493835
. Ожидаются первые два, но не последний (07493835
).
Есть ли способ исправить это поведение?
К вашему сведению, вот как я называю библиотеку:
public static BarCodeInfo[] ScanBarCode(Bitmap source)
{
var barcodeReader = new BarcodeReader();
barcodeReader.Options.TryHarder = true;
var result = barcodeReader.DecodeMultiple(source);
if (result != null)
{
return result.Select(r =>new BarCodeInfo(r.Text, r.ResultPoints)).ToArray();
}
else
{
Debug.WriteLine("No barcode found");
return new BarCodeInfo[0];
}
}
public class BarCodeInfo
{
private string m_Text;
private ResultPoint[] m_ResultPoints;
public BarCodeInfo(string text, ResultPoint[] resultPoints)
{
this.m_Text = text;
this.m_ResultPoints = resultPoints;
}
public string Text => m_Text;
public ResultPoint[] ResultPoints => m_ResultPoints;
}
Без установки TryHarder
в true штрих-коды не обнаруживаются в моих изображениях (которые на самом деле являются страницами формата A4).