我试图解码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);
它可以解码这个裁剪的部分
但它不能解码这些。
我使用的代码就是这个
IBarcodeReader reader = new BarcodeReader();
var barcodeBitmap = (Bitmap)Bitmap.FromFile(path);
var result = reader.Decode(barcodeBitmap);
if (result != null)
{
var Text = result.Text;
}
我可以做些什么来更好地解码?
答案 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;
....
}