2

zxing を使用して QRcode 画像をデコードしていますが、常に NotFoundException が返されます。http://zxing.org/w/decode.jspxのオンライン デコーダーは、これらの画像を完全にスキャンするので、私のアプリでもスキャンできるはずです。私はこのコードを使用しています:

String path = Environment.getExternalStorageDirectory().getPath()+"/QRPictures/QRTest.bmp";
Bitmap bmp = BitmapFactory.decodeFile(path);
int[] pixels = new int[bmp.getWidth()*bmp.getHeight()];
bmp.getPixels(pixels, 0, bmp.getWidth(), 0, 0, bmp.getWidth(), bmp.getHeight());
LuminanceSource source = new RGBLuminanceSource(bmp.getWidth(), bmp.getHeight(), pixels); 
BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source));
Reader reader = new MultiFormatReader();
try {
    Result result = reader.decode(bitmap);
    String contents = result.getText(); 
    Log.d(TAG, content);
} catch (NotFoundException e) {
    Log.d(TAG, "NFE");
} catch (ChecksumException e) {
    Log.d(TAG, "CSE");
} catch (FormatException e) {
    Log.d(TAG, "FE");
} 

これを手伝ってくれませんか?

4

3 に答える 3

1

私もこの問題を抱えていました。そして、私はそれを解決しました。このヒントをコードに追加してみてください。

hints.put(DecodeHintType.PURE_BARCODE, Boolean.TRUE);
于 2013-12-14T07:32:52.757 に答える
1

関連する質問への回答によると、 TRY_HARDER「速度ではなく精度を最適化する」ため、デコードヒントを使用すると役立つ場合があります。

Hashtable<DecodeHintType, Object> decodeHints = new Hashtable<DecodeHintType, Object>();
decodeHints.put(DecodeHintType.TRY_HARDER, Boolean.TRUE);
Result result = reader.decode(bitmap, decodeHints);

オンライン サービスでは同じ画像が正しく解釈されているが、あなたのケースでは失敗している場合TRY_HARDERは、オフにしている間にオンになっている可能性があります。

于 2013-02-21T04:58:29.333 に答える
0

私はこれを解決しました:hints.put(DecodeHintType.PURE_BARCODE, Boolean.TRUE);

于 2016-04-20T09:48:22.803 に答える