欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

android zxing 解析二维码图片与生成二维码图片的代码实现

程序员文章站 2022-10-26 11:42:35
关于生成二维码图片:android下使用zxing包生成二维码里提供的qrcodeutil就是一切了。非常的方便。 关于解析二维码图片,获取内容: public result parseinfo...

关于生成二维码图片:android下使用zxing包生成二维码里提供的qrcodeutil就是一切了。非常的方便。

关于解析二维码图片,获取内容:

public result parseinfofrombitmap(bitmap bitmap) {
 int[] pixels = new int[bitmap.getwidth() * bitmap.getheight()];
 bitmap.getpixels(pixels, 0, bitmap.getwidth(), 0, 0, bitmap.getwidth(), bitmap.getheight());
 logutils.w("### pixels dest==" + arrays.tostring(pixels));

 rgbluminancesource source = new rgbluminancesource(bitmap.getwidth(),
bitmap.getheight(), pixels);
 globalhistogrambinarizer binarizer = new globalhistogrambinarizer(source);
 binarybitmap image = new binarybitmap(binarizer);
 result result = null;
 try {
  result = new qrcodereader().decode(image);
  return result;
 } catch (notfoundexception e) {
  e.printstacktrace();
 } catch (checksumexception e) {
  e.printstacktrace();
 } catch (formatexception e) {
  e.printstacktrace();
 }

 return null;

}

调用:

view..setonclicklistener(new view.onclicklistener() {
 @override
 public void onclick(view v) {
  logutils.w("扫描二维码");
  string path = new file(getcachedir(), "zx.jpg").getabsolutepath();
  bitmap bitmap = bitmapfactory.decodefile(path);
  result result = parseinfofrombitmap(bitmap);
  if (result != null) {
logutils.w(result);
logutils.i("result info==" + result.gettext());
  }
 }
});

前提:build.gradle里面添加依赖:

implementation 'com.google.zxing:core:3.3.1'

我这里是3.3.0,也可以使用更新的,比如3.3.1。

就这样了,图片,你自己去拍照,或者图片里面选择好了。这里提供的仅仅是解析二维码图片的逻辑

二维码图片生成的逻辑,我顶部的链接里面提供了。


以上。

=====================================================

关于解析二维码,再说一下,核心代码就是:new qrcodereader().decode(xx);

然后就是把自己的数据(bitmap)封装成它.decode()所能解析的对象即可。

生成二维码同理。