android 生成二维码_Java 生成二维码实战
简介
ZXing 是一个开源 Java 类库用于解析多种格式的 1D/2D 条形码。目标是能够对QR编码、Data Matrix、UPC的1D条形码进行解码。其提供了多种平台下的客户端包括:J2ME、J2SE和Android。
官网:ZXing github仓库
实战
本例演示如何在一个非 android 的 Java 项目中使用 ZXing 来生成、解析二维码图片。
安装
maven项目只需引入依赖:
<dependency> <groupId>com.google.zxing</groupId> <artifactId>core</artifactId> <version>3.3.0</version> </dependency> <dependency> <groupId>com.google.zxing</groupId> <artifactId>javase</artifactId> <version>3.3.0</version> </dependency>
如果非maven项目,就去官网下载发布版本:下载地址
生成二维码图片
ZXing 生成二维码图片有以下步骤:
1、com.google.zxing.MultiFormatWriter 根据内容以及图像编码参数生成图像2D矩阵。
2、com.google.zxing.client.j2se.MatrixToImageWriter 根据图像矩阵生成图片文件或图片缓存 BufferedImage 。
public void encode(String content, String filepath) throws WriterException, IOException { int width = 100; int height = 100; Map<EncodeHintType, Object> encodeHints = new HashMap<EncodeHintType, Object>(); encodeHints.put(EncodeHintType.CHARACTER_SET, "UTF-8"); BitMatrix bitMatrix = new MultiFormatWriter().encode(content, BarcodeFormat.QR_CODE, width, height, encodeHints); Path path = FileSystems.getDefault().getPath(filepath); MatrixToImageWriter.writeToPath(bitMatrix, "png", path); }
解析二维码图片
ZXing 解析二维码图片有以下步骤:
1、使用 javax.imageio.ImageIO 读取图片文件,并存为一个 java.awt.image.BufferedImage对象。
2、将 java.awt.image.BufferedImage 转换为 ZXing 能识别的com.google.zxing.BinaryBitmap 对象。
3、com.google.zxing.MultiFormatReader 根据图像解码参数来解析com.google.zxing.BinaryBitmap 。
public String decode(String filepath) throws IOException, NotFoundException { BufferedImage bufferedImage = ImageIO.read(new FileInputStream(filepath)); LuminanceSource source = new BufferedImageLuminanceSource(bufferedImage); Binarizer binarizer = new HybridBinarizer(source); BinaryBitmap bitmap = new BinaryBitmap(binarizer); HashMap<DecodeHintType, Object> decodeHints = new HashMap<DecodeHintType, Object>(); decodeHints.put(DecodeHintType.CHARACTER_SET, "UTF-8"); Result result = new MultiFormatReader().decode(bitmap, decodeHints); return result.getText(); }
欢迎关注我的微信公众号「码农突围」,分享Python、Java、大数据、机器学习、人工智能等技术,关注码农技术提升•职场突围•思维跃迁,20万+码农成长充电第一站,陪有梦想的你一起成长
android 生成二维码_Java 生成二维码实战相关推荐
- java如何输出ascll码_Java如何打印ASCII码
Java如何打印ASCII码 1 Java打印ASCII码的方式 美国信息交换标准代码的ASCII缩写.它是一个7位字符集,包含128个(0到127)个字符.它代表一个字符的数值.例如,ASCII值的 ...
- java 转码_JAVA自带转码方式的学习
最近工作中遇到一个问题,由于海外系统环境默认采用UTF-8格式编码,以支持多语言环境.而国内系统由于只需要支持中英文,故默认采用GBK编码格式.因此当把海外环境生成的交易报告单发送给国内的报表系统时, ...
- java txt 二维数组_java 将一个二维数组存到txt文件里,然后再读取
java 将一个二维数组存到txt文件里,然后再读取 mip版 关注:286 答案:3 悬赏:30 解决时间 2021-01-26 21:40 已解决 2021-01-26 04:05 将一个d ...
- java 打印一维码_java生成一维码
/** * * 一维码图片生成器 * @author winter.liu * */ public class OneBarcodeUtil { /** * 生成一维码 * @param value ...
- java生成文字与图片_java生成word(文字和图片)
1.整体思路 利用xml模板,在模板中预留占位标识(${yourContent}),然后将xml转为ftl文件,通过Map传值填充对应的内容即可,word其实和html一样,也有自己的xml标签,表头 ...
- arcgis java 二次开发_arcgis二次开发_cad二次开发_java arcgis二次开发
属性查询是GIS应用不可缺少的重要功能,尤其是在各种业务系统中,根据用户输入相应的查询条件,从属性要素中快速定位到用户感兴趣的要素,为业务应用提供了便利.本文就来聊一聊QGis二次开发中如何实现属性查 ...
- java生成验证码工具类_Java生成图形验证码工具类
生成验证码效果 validatecode.java 验证码生成类 package cn.dsna.util.images; import java.awt.color; import java.awt ...
- java项目生成多个条码_java – 生成随机条形码 – 一个设计问题
我正在修复生成条形码的java代码中的错误(线程问题).根据设计,条形码只是一个数字,下一个"未使用"条形码是序列中的下一个.有990亿可能的数字. 首先,由于安全问题,我不喜欢自 ...
- java 生成操作excel文件_Java生成和操作Excel文件
AVA EXCEL API:是一开放源码项目,通过它Java开发人员可以读取Excel文件的内容.创建新的Excel文件.更新已经存在的Excel文件.使用该API非Windows操作系统也可以通过纯 ...
最新文章
- 短信猫GSM Modem
- GBDT 和 AdaBoost区别?
- jstat 内存泄漏_一次Java内存泄漏的排查!要了自己的老命!
- C或C 如何通过程序执行shell命令并获取命令执行结果?
- linux中gradle编译慢,【Linux】解决linux下android studio用gradle构建从jcenter或maven下载依赖太慢...
- windows中运行qt5构建的程序提示 无法启动此程序,因为计算机中丢失qt5Cored.dll 解决方法
- 数据增量更新定义_技术资讯 | TiDB在准实时数据仓库中的实践
- Chrome浏览器Network面板http请求时间分析
- 关于mis系统思维导图
- wireless tools工具的移植和使用
- Launchpad是什么?Launchpad使用教程
- Megacli格式化显示脚本
- html5 表格 在线生成,专业的Web报表软件——在线表格生成制作工具
- JAVA美食预定推荐系统
- 联想笔记本键盘亮屏幕不亮_机械师笔记本电脑屏幕不亮但键盘亮,而且开不开机维修...
- Zookeeper开源客户端Curator之基本功能讲解
- python数据分析报告范文_Python数据分析求解题
- 如何不用串口线进行连接其他交换机
- 雷泰Endurance高温红外测温仪
- c语言double类型的输入
热门文章
- 通过浏览器启动php cli,Cron作业PHP脚本失败但脚本将通过CLI或浏览器运行
- 金山云笔试题:AKM函数
- 将网址url中的参数转化为JSON格式的两种方法
- .NET、.NET框架、ASP.NET和C#的关系(完成)
- ASP.NET Core 源码学习之 Logging[4]:FileProvider
- 软测试综述——PV操作
- mysql 40014无效,Oracle问题-ORA-14400:插入的分区关键字未映射到任何分区
- JavaScript之BOM对象(JS函数作用域、window、history、location对象)
- 单片机 驱动 标签打印机tsc_指令打印与驱动打印随笔
- python百度ai文字识别、代码分析_python利用百度AI实现文字识别功能