ZX在C#下的多格式读取?

时间:2012-02-01 03:20:08

标签: c# winforms barcode zxing

将ZXing与网络摄像头源一起使用,尝试读取各种条形码/ QR码。只有一个问题,它拒绝阅读它们。它会读取我躺在一个条形码,我认为类型128,但当我试图让它读取其他任何东西时,没有任何反应。

这是我现在用于设置读取各种类型的提示的代码:

reader = new MultiFormatReader();

hints = new Hashtable();
fmts = new ArrayList();
fmts.Add(BarcodeFormat.DATAMATRIX);
fmts.Add(BarcodeFormat.QR_CODE);
fmts.Add(BarcodeFormat.PDF417);
fmts.Add(BarcodeFormat.UPC_E);
fmts.Add(BarcodeFormat.UPC_A);
fmts.Add(BarcodeFormat.CODE_128);
fmts.Add(BarcodeFormat.CODE_39);
fmts.Add(BarcodeFormat.ITF);
fmts.Add(BarcodeFormat.EAN_8);
fmts.Add(BarcodeFormat.EAN_13);
hints.Add(DecodeHintType.TRY_HARDER, true);
hints.Add(DecodeHintType.POSSIBLE_FORMATS, fmts);

reader.Hints = hints;

(基于:http://osdir.com/ml/zxing/2010-02/msg00043.html

实际的解码代码看起来像这样......

RGBLuminanceSource lumi = new RGBLuminanceSource((Bitmap)image, width, height);
Result result = reader.decode(new BinaryBitmap(new HybridBinarizer(lumi)), hints);
readData = result.Text;

我做傻事吗?有没有其他人在C#下与ZXing取得成功?

所有人都非常感谢。

干杯。

P.S。在Win7 32b上使用VS2008下的ZXing 1.7。

1 个答案:

答案 0 :(得分:0)

尝试使用GlobalHistogramBinarizer,HybridBinarizer似乎不起作用..

QRCodeReader reader = new QRCodeReader();
       Bitmap bmp = new Bitmap(@"2.bmp");


        LuminanceSource s = new RGBLuminanceSource(bmp, bmp.Width, bmp.Height);
        BinaryBitmap bb = new BinaryBitmap(new GlobalHistogramBinarizer(s));
        Hashtable hints = new Hashtable();

        Result result = reader.decode(bb);


        MessageBox.Show(result.Text);