为什么Zxing.net无法解码这些qr代码?

时间:2015-11-27 08:34:59

标签: c# .net qr-code zxing

我试图解码tiff帧中的qr码。我裁剪框架的右下角四分之一。

System.Drawing.Rectangle section = new        System.Drawing.Rectangle(barcodeBitmap.Width / 2, barcodeBitmap.Height / 2, barcodeBitmap.Width, barcodeBitmap.Height);
System.Drawing.Bitmap croppedBitmap = new System.Drawing.Bitmap(section.Width, section.Height);
System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(croppedBitmap);
g.DrawImage(barcodeBitmap, 0, 0, section, System.Drawing.GraphicsUnit.Pixel);

它可以解码这个裁剪的部分

enter image description here

但它不能解码这些。

enter image description here enter image description here

我使用的代码就是这个

IBarcodeReader reader = new BarcodeReader();
var barcodeBitmap = (Bitmap)Bitmap.FromFile(path);
var result = reader.Decode(barcodeBitmap);
if (result != null)
{
  var Text = result.Text;
}

我可以做些什么来更好地解码?

2 个答案:

答案 0 :(得分:0)

您可以设置属性TryHarder,这会使ZXing花费更多时间来尝试查找条形码。它可以优化准确性,而不是速度:

 var reader = new ZXing.BarcodeReader { TryHarder = true }; 

答案 1 :(得分:0)

如果您的阅读器是专门解码QrCodes,那么您应该使用更有针对性的阅读器。香港专业教育学院使用此代码扫描WP7 +应用程序上的qrcodes没有问题。

using ZXing;
using ZXing.Client.Result;
using ZXing.Common;
using ZXing.QrCode;
....
var reader= new ZXing.QrCode.QRCodeReader();
var barcodeBitmap = (Bitmap)Bitmap.FromFile(path);
var result = reader.decode(barcodeBitmap);
if (result != null)
{
  var text = result.Text;
}

另外,你可以使用更通用的方法,

var reader = new MultiFormatReader();
var barcodeBitmap = (Bitmap)Bitmap.FromFile(path);
var result = reader.decode(barcodeBitmap);
if (result != null)
{
  var format = result.BarcodeFormat;
  var parsedResult = ResultParser.parseResult(result);
  var type = parsedResult.Type;
  var text = result.Text;
  ....
}
相关问题