使用ZXing加速QR编码

qan*_*tik 0 java android qr-code bitmap 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);
    }
}
Run Code Online (Sandbox Code Playgroud)

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

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

提前致谢.

小智 5

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

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

希望这将有助于任何与此斗争的人并遇到这个问题.

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

在gradle中:

compile 'com.journeyapps:zxing-android-embedded:3.2.0@aar'
compile 'com.google.zxing:core:3.2.1'
Run Code Online (Sandbox Code Playgroud)

在代码中:

        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);
Run Code Online (Sandbox Code Playgroud)

最后我通过变量调用我的ImageView控件

       imgQR.setImageBitmap(bitmpap);
Run Code Online (Sandbox Code Playgroud)