基于google zxing的Java二维码生成与解码

发布时间 - 2026-01-11 02:30:48    点击率:

 本文实例为大家分享了Java二维码生成与解码的具体代码,供大家参考,具体内容如下

一、添加Maven依赖(解码时需要上传二维码图片,所以需要依赖文件上传包)

<!-- google二维码工具 -->
<dependency>
 <groupId>com.google.zxing</groupId>
 <artifactId>javase</artifactId>
 <version>3.1.0</version>
</dependency>

<!-- 文件上传 -->
<dependency>
 <groupId>commons-fileupload</groupId>
 <artifactId>commons-fileupload</artifactId>
 <version>1.3.1</version>
</dependency>
<dependency>
 <groupId>commons-io</groupId>
 <artifactId>commons-io</artifactId>
 <version>2.4</version>
</dependency>

二、创建生成二维码接口(接口参数为二维码内容,通常是URL)

/**
 * 生成二维码
 * google zxing 实现
 * @param text
 * @return
 */
@RequestMapping(value = "/qrcode/encode", method = RequestMethod.POST)
public void encodeQrCode(String text, HttpServletResponse response) {
  try {
   // 设置二维码参数
   Map<EncodeHintType, Object> hints = new HashMap<EncodeHintType, Object>();
   hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");
   BitMatrix bitMatrix = new MultiFormatWriter().encode(text, BarcodeFormat.QR_CODE, 150, 150, hints);
   //返回二维码
   MatrixToImageWriter.writeToStream(bitMatrix, "jpg", response.getOutputStream());
  } catch (Exception e) {
   e.printStackTrace();
  }
}

三、创建二维码解码接口(直接返回解码后的二维码内容)

/**
 * 二维码图片解码
 * google zxing 实现
 * @param qrImg
 * @return
 */
@RequestMapping(value = "/qrcode/decode", method = RequestMethod.POST)
public String decodeQrCode(MultipartFile qrImg) {
  if (!qrImg.isEmpty()) {
   try {
     BufferedImage image = ImageIO.read(qrImg.getInputStream());

     BinaryBitmap binaryBitmap = new BinaryBitmap(new HybridBinarizer(new BufferedImageLuminanceSource(image)));

     // 定义二维码的参数:
     HashMap<DecodeHintType, Object> hints = new HashMap<>();
     // 定义字符集
     hints.put(DecodeHintType.CHARACTER_SET, "utf-8");

     Result result = new MultiFormatReader().decode(binaryBitmap, hints);

     return result.getText();
   } catch (Exception e) {
     e.printStackTrace();
   }
  }

  return null;
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# google  # zxing  # Java  # 二维码  # Java利用Zxing生成二维码的简单实例  # java中使用zxing批量生成二维码立牌  # java ZXing生成二维码及条码实例分享  # java中ZXing 生成、解析二维码图片的小示例  # Java中基于maven实现zxing二维码功能  # Java使用Google Zxing生成二维码的例子  # Java基于zxing生成二维码矩阵过程解析  # java zxing合成复杂二维码图片示例详解  # Java使用Zxing二维码生成的简单示例  # Java基于Google zxing生成带logo的二维码图片  # 文件上传  # 大家分享  # 具体内容  # 大家多多  # 时需  # 上传  # param  # text  # RequestMapping  # return  # URL  # io  # fileupload  # qrcode  # encodeQrCode  # void  # HttpServletResponse  # String  # public  # method 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 常州企业网站制作公司,全国继续教育网怎么登录?  如何在Windows服务器上快速搭建网站?  详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)  Firefox Developer Edition开发者版本入口  如何用JavaScript实现文本编辑器_光标和选区怎么处理  php增删改查怎么学_零基础入门php数据库操作必知基础【教程】  个人网站制作流程图片大全,个人网站如何注销?  Python函数文档自动校验_规范解析【教程】  如何自定义建站之星网站的导航菜单样式?  Python高阶函数应用_函数作为参数说明【指导】  Laravel怎么实现微信登录_Laravel Socialite第三方登录集成  Win11关机界面怎么改_Win11自定义关机画面设置【工具】  北京网站制作公司哪家好一点,北京租房网站有哪些?  如何制作一个表白网站视频,关于勇敢表白的小标题?  如何在IIS中新建站点并解决端口绑定冲突?  Laravel Pest测试框架怎么用_从PHPUnit转向Pest的Laravel测试教程  如何快速生成专业多端适配建站电话?  Internet Explorer官网直接进入 IE浏览器在线体验版网址  Laravel如何使用withoutEvents方法临时禁用模型事件  Laravel的路由模型绑定怎么用_Laravel Route Model Binding简化控制器逻辑  Python结构化数据采集_字段抽取解析【教程】  Laravel如何处理异常和错误?(Handler示例)  太平洋网站制作公司,网络用语太平洋是什么意思?  Swift开发中switch语句值绑定模式  iOS正则表达式验证手机号、邮箱、身份证号等  Laravel中Service Container是做什么的_Laravel服务容器与依赖注入核心概念解析  微信小程序 闭包写法详细介绍  Laravel如何实现用户密码重置功能?(完整流程代码)  如何在阿里云部署织梦网站?  香港服务器租用费用高吗?如何避免常见误区?  Laravel怎么实现验证码功能_Laravel集成验证码库防止机器人注册  如何在建站主机中优化服务器配置?  Zeus浏览器网页版官网入口 宙斯浏览器官网在线通道  ChatGPT 4.0官网入口地址 ChatGPT在线体验官网  国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?  大连网站制作公司哪家好一点,大连买房网站哪个好?  如何在VPS电脑上快速搭建网站?  如何在Windows环境下新建FTP站点并设置权限?  什么是javascript作用域_全局和局部作用域有什么区别?  Laravel怎么使用Session存储数据_Laravel会话管理与自定义驱动配置【详解】  阿里云高弹*务器配置方案|支持分布式架构与多节点部署  如何在万网开始建站?分步指南解析  七夕网站制作视频,七夕大促活动怎么报名?  Windows10电脑怎么设置虚拟光驱_Win10右键装载ISO镜像文件  移动端脚本框架Hammer.js  黑客如何利用漏洞与弱口令入侵网站服务器?  如何快速搭建高效服务器建站系统?  如何在腾讯云服务器上快速搭建个人网站?  简历没回改:利用AI润色让你的文字更专业  英语简历制作免费网站推荐,如何将简历翻译成英文?