【问题标题】:QR code decoding images using zxing android二维码使用zxing android解码图像
【发布时间】:2015-08-20 14:28:23
【问题描述】:

我正在 Android 上做一个简单的应用程序,如下所示:

将二维码图像放入应用程序的可绘制文件中。通过ButtonClick,它应该被解码并显示结果(使用Zxing库)。

我在 Java 上做了同样的应用程序(解码使用BufferedImageLuminanceSource 类)。

在我的 android 应用程序中,我使用了 RGBLuminanceSource 类,如下所示:

LuminanceSource source = new RGBLuminanceSource(width, height, pixels)BinaryBitmap binaryBitmap = new BinaryBitmap(new HybridBinarizer(source));

我在这里面临的问题是:图像必须太小而无法被 android 应用程序解码(我不得不尝试多种尺寸才能最终得到一个可以解码 QR 码图像的尺寸)。同时,在 Java 应用程序中使用 BufferedImageLuminanceSource 可以轻松解码相同的图像,无需调整大小。

如何避免这种调整大小的问题?

【问题讨论】:

  • 我知道这一点,但现在没有时间告诉你明天会回答你
  • 好酷!你会救我的命.. 等待你的回答。谢谢@amitsharma
  • @amitsharma 我还在等你的答复。请帮助我..
  • @amitsharma 我的电子邮件是:rawya.abed.enit@gmail.com
  • @amitsharma 我仍然没有收到你的任何东西:(

标签: android zxing


【解决方案1】:

为时已晚,但对他人有帮助,

所以我们可以使用 Zxing 库从 Bitmap 获取二维码信息。

 Bitmap generatedQRCode;
    int width = generatedQRCode.getWidth();
    int height = generatedQRCode.getHeight();
    int[] pixels = new int[width * height];
    generatedQRCode.getPixels(pixels, 0, width, 0, 0, width, height);

    RGBLuminanceSource source = new RGBLuminanceSource(width, height, pixels);

    BinaryBitmap binaryBitmap = new BinaryBitmap(new HybridBinarizer(source));

    Reader reader = new MultiFormatReader();
    Result result = null;
    try {
        result = reader.decode(binaryBitmap);
    } catch (NotFoundException e) {
        e.printStackTrace();
    } catch (ChecksumException e) {
        e.printStackTrace();
    } catch (FormatException e) {
        e.printStackTrace();
    }
    String text = result.getText();
    textViewQRCode.setText(" CONTENT: " + text);

【讨论】:

  • 对我不起作用不知道为什么,无法识别code128条形码:(
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-30
  • 1970-01-01
  • 2014-02-24
  • 1970-01-01
相关资源
最近更新 更多