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)