У меня есть следующий код:
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using ZXing;
namespace SeparatorPageSplit.framework
{
class QRCodeScanner
{
BarcodeReader reader;
public QRCodeScanner()
{
try
{
this.reader = new BarcodeReader { AutoRotate = true, TryInverted = true };
this.reader = new BarcodeReader();
this.reader.Options.PossibleFormats = new List<BarcodeFormat>();
this.reader.Options.PossibleFormats.Add(BarcodeFormat.QR_CODE);
// this.reader.Options.TryHarder = true;
}
catch (Exception ex)
{
Program.WriteToLogFile(ex.ToString());
}
}
public Boolean IsQRCodeFound(string ImagePath)
{
string decoded = "";
Bitmap bitmap = new Bitmap(ImagePath);
try
{
Result result = this.reader.Decode(bitmap);
if (result != null)
{
decoded = result.ToString().Trim();
}
}
catch (Exception ex)
{
Program.WriteToLogFile(ex.ToString());
}
finally
{
bitmap.Dispose();
}
if (decoded == "CCA001")
{
return true;
}
else
{
return false;
}
}
}
}
И я попытался прочитать следующее изображение:
Этот кодработает хорошо, если я сканирую в цвете или оттенках серого. Он не работает, когда я сканирую в черно-белом режиме.
Есть ли в ZXing какие-либо настройки, позволяющие сканировать это?
Есть ли простой способ очистки маленьких точек?
[ПРАВИТЬ] Мы используем ZXing.Net v0.16.5, установленный из Nuget в Visual Studio. Nuget показывает, что в последней доступной версии.