使用ZXing加速QR编码

时间:2016-09-06 14:59:33

标签: java android bitmap qr-code zxing

我目前正在Android项目中使用大量QR码,zxing是我首选的库。

要实际显示生成的QR码,将使用编码信息创建位图。

QRCodeWriter writer = new QRCodeWriter();
BitMatrix matrix = writer.encode(message, BarcodeFormat.QR_CODE, px, px);

Bitmap bitmap = Bitmap.createBitmap(px, px, Bitmap.Config.RGB_565);
for (int x = 0; x < px; x++) {
    for (int y = 0; y < px; y++) {
        bitmap.setPixel(x, y, matrix.get(x,y) ? Color.BLACK : Color.WHITE);
    }
}

这很好用,但速度非常慢。即使对于相当小的位图,整个过程也需要几秒钟。

有没有办法智能地加快这个程序(例如并行化)甚至更好的库?

提前致谢。

1 个答案:

答案 0 :(得分:5)

在这个意义上我遇到了同样的问题,我设法通过跟踪这个人来加速我的qr代码加载:

https://www.youtube.com/watch?v=-vWHbCr_OWM

希望这会帮助任何与此斗争的人并遇到这个问题。

其实也许我可以省去你的麻烦:

in gradle:

compile 'com.journeyapps:zxing-android-embedded:3.2.0@aar'
compile 'com.google.zxing:core:3.2.1'

在代码中:

        String myStringToEncode = "Something";
        MultiFormatWriter multiFormatWriter = new MultiFormatWriter();
        BitMatrix bitMatrix = multiFormatWriter.encode(myStringToEncode, BarcodeFormat.QR_CODE,200,200);
        BarcodeEncoder barcodeEncoder = new BarcodeEncoder();
        Bitmap bitmpap = barcodeEncoder.createBitmap(bitMatrix);

最后我通过变量

调用我的ImageView控件
       imgQR.setImageBitmap(bitmpap);