Android 二维码相关(二)

这篇具有很好参考价值的文章主要介绍了Android 二维码相关(二)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Android 二维码相关(二)

本篇文章继续讲述下如何使用zxing解析二维码图片,获取内容.

1: 创建RGBLuminanceSource对象.

首先获取二维码图片的bitmap对象.

Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.test);

根据getPixels()获取位图指定区域的像素颜色值.

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

//使用pixels数组创建RGBLuminanceSource对象

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

2: 获取BinaryBitmap对象

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

BinaryBitmap类的主要作用是为解码器提供一个可读取的二进制图像。

解码器可以使用BinaryBitmap来解码包含在图像中的条形码或二维码。

3: 创建解码器

MultiFormatReader类是ZXing库中的核心类之一,它可以识别和解码多种不同类型的条码和二维码.

MultiFormatReader multiFormatReader = new MultiFormatReader();

4: 解码

try {
    Result decode = multiFormatReader.decode(binaryBitmap);
    String text = decode.getText();
    return text;
} catch (Throwable e) {
    Log.e(TAG, "decodeBitmap: ", e);
}

完整的代码如下:

/**
     * @param srcBitmap 二维码图片
     * @return 文案
     */
    public static String decodeBitmap(Bitmap srcBitmap) {
        if (srcBitmap == null) return "";

        int width = srcBitmap.getWidth();
        int height = srcBitmap.getHeight();
        int[] pixels = new int[width * height];
        srcBitmap.getPixels(pixels, 0, width, 0, 0, width, height);
        //使用Bitmap对象创建RGBLuminanceSource对象,该对象将被传递给zxing库进行识别
        RGBLuminanceSource rgbLuminanceSource = new RGBLuminanceSource(width, height, pixels);

		//BinaryBitmap类的主要作用是为解码器提供一个可读取的二进制图像。解码器可以使用BinaryBitmap来解码包含在图像中的条形码或二维码。
        BinaryBitmap binaryBitmap = new BinaryBitmap(new HybridBinarizer(rgbLuminanceSource));

        MultiFormatReader multiFormatReader = new MultiFormatReader();
        try {
            Result decode = multiFormatReader.decode(binaryBitmap);
            String text = decode.getText();
            return text;
        } catch (Throwable e) {
            Log.e(TAG, "decodeBitmap: ", e);
        }
        return "";
    }

本文由博客一文多发平台 OpenWrite 发布!文章来源地址https://www.toymoban.com/news/detail-837808.html

到了这里,关于Android 二维码相关(二)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android生成二维码

    目录 一.zxing jar包地址 二.封装工具类 链接: https://pan.baidu.com/s/1toPsCFS1yV6ZifXC1hwwkw?pwd=y12a 提取码: y12a 复制这段内容后打开百度网盘手机App,操作更方便哦  --来自百度网盘超级会员v3的分享  

    2024年02月06日
    浏览(21)
  • Android之 Zxing二维码详解

    一 简介 1.1 ZXing 目前Android扫描二维码,条形码主要用google官方的工具Zxing,支持扫码,相册解码,生成带logo的二维码等功能  Zxing github 示例地址:https://github.com/zxing/zxing 1.2 ZBar 由于zxing是基于java编写的,扫码速度和解析上可能没那么快,但大部分场合足够用。也有基于c/

    2024年02月08日
    浏览(29)
  • 微信小程序 图片 相机 二维码 动画相关API(实现选择相册、拍照、录像、动画)

    本文探讨微信小程序 图片 相机 二维码 动画相关API(实现选择相册、拍照、录像、动画)功能,带有示例代码

    2024年02月04日
    浏览(40)
  • 二维码生成&点击按钮展示二维码

    使用HBuider 1.先安装插件 (地址 :  https://ext.dcloud.net.cn/plugin?id=1287) 这里直接就安装到了uni-modules里面了 import uQRCode from ‘@/uni_modules/Sansnn-uQRCode/components/u-qrcode/u-qrcode.vue’ 弹框用到了uni-app提供的uni-popup弹框,把二维码放到内容那块,替换即可

    2024年02月10日
    浏览(40)
  • js生成二维码和解析二维码

    这个整了好久,用的包换了好几次,所以记录一下 生成二维码 解析二维码 然后是两个引入的js reqrcode和qrcode

    2023年04月09日
    浏览(33)
  • vue批量生成二维码,打印生成的二维码,并批量下载生成的二维码,qrcode

    通过使用 qrcode 生成二维码, 使用 jszip 打包批量二维码文件, 使用 file-saver 下载打包好的zip文件, 使用 vue-print-nb 打印生成的二维码 配置项: width 二维码宽度 height 二维码高度 errorCorrectionLevel 二维码纠错级别,指二维码被遮挡可以扫出结果的区域比例 color: 7. 打印生成的二

    2024年02月01日
    浏览(35)
  • 【微信小程序二维码配置】微信公众平台配置二维码,小程序测试二维码,小程序动态二维码,然后扫码打开对应页面进行操作

    微信公众平台地址:微信公众平台 选择 开发管理 – 开发设置 – 扫普通链接二维码打开小程序 配置项 二维码规则: URL 为内含下载校验文件的服务器 URL , 可以加二级,比如我的 https://*** /preview , 二级随便写什么都可以 测试链接(选填): 匹配二维码规则地址,后加 *** 参数, 因

    2024年01月19日
    浏览(56)
  • uniapp小程序中长按识别公众号二维码,企业微信二维码,个人微信二维码

    长按识别公众号二维码,企业微信二维码,个人微信二维码 效果图 通过给image标签添加show-menu-by-longpress=\\\"true\\\"属性,实现长按识别功能 注意:二维码图片样式尺寸不能太小,太小时也会出现长按二维码识别不了

    2024年02月12日
    浏览(43)
  • 什么是二维码?带你快速了解二维码的原理

    二维条码是指在一维条码的基础上扩展出另一维具有可读性的条码,使用黑白矩形图案表示二进制数据,被设备扫描后可获取其中所包含的信息。与一维条码不同的是,二维条码的长度和宽度都可以记载数据,而一维条码仅宽度记载数据。二维条码还有独特的“定位点”和“

    2024年01月16日
    浏览(33)
  • 【支付系统】java springboot 生成二维码,二维码中文乱码

            支付系统必不可少的就是生成二维码,有时我们会需要将支付链接转换为二维码.用户通过移动设备扫描二维码调起支付. 该篇文章主要使用的是hutool自带的二维码生成功能.  1. 引入依赖(hutool 可以按需引入这里就直接使用all了) 2. hutool的官方已经有很详细的生成方式

    2024年02月11日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包