0

VS 2010のwinformsアプリケーションでQRコードをデコードするためにzXingC#ライブラリを使用しています。一部の画像では正常に機能しますが、一部の画像では失敗します。

例外メッセージ:

タイプ'com.google.zxing.ReaderException'の例外がスローされました。

これが私のコードです:

デコードされたデータを返す関数のコード

    public string GetQRValue(Bitmap value)
    {
        string result = string.Empty;

        try
        {
            QRCodeReader reader = new QRCodeReader();
            //com.google.zxing.Reader re
            com.google.zxing.LuminanceSource source = new RGBLuminanceSource(value, value.Width, value.Height);
            var binarizer = new HybridBinarizer(source);
            var binBitmap = new BinaryBitmap(binarizer);
            result = reader.decode(binBitmap).Text;
        }
        catch(Exception ex)
        {
            result = ex.Message; //string.Empty;
        }

        return result;
    }

上記の関数を呼び出すコード:

Bitmap image1 = (Bitmap)Image.FromFile(txtFile.Text , true);
lblData.Text = cls.GetQRValue(image1);

ここで、txtFileはファイルへのパスであり、clsはデコード関数を含むクラスのオブジェクトです。

以下は、デコードに失敗した画像です。

デコードに失敗したQrコード
次のWebサイトでデコードしてみました。そしてそこでデコードされます。
http://www.patrick-wied.at/static/qrgen/

そして、次の画像は正常にデコードされます。

正常にデコードされたQrコード

問題を解決するのを手伝ってください

4

1 に答える 1

0

C#ポートはやや古く、維持されていません。メインブランチ(Java)がこれらを正常にデコードするため、2値化に問題があるか、ポートに問題があるように見えます。

http://zxing.org/w/decode?u=http%3A%2F%2Fi.stack.imgur.com%2FTEiIH.jpg&full=true http://zxing.org/w/decode?u=http%3A %2F%2Fi.stack.imgur.com%2FP8irV.png&full = true

于 2012-11-02T20:07:27.337 に答える