下载QRCode.jar包
下载完成后在cmd命令行执行以下命令

 mvn install:install-file -Dfile = QRCode的路径 -DgroupId=QRCode -DartifactId=QRCode -Dversion=3.0 -Dpackaging=jar

注意: 需要配置maven环境变量
在pom.xml文件里添加jar包

<dependency><groupId>QRCode</groupId><artifactId>QRCode</artifactId><version>3.0</version>
</dependency>

运行类

package test;public class Test {public static void main(String[] args) throws Exception {// 生成后的二维码存放的路径String imgPath = "D://二维码.png";// 二维码的内容String content = "hello world";// 跳转网页
//      String content = "http://www.baidu.com";/*** 生成二维码*/QRCodeUtil qrCodeUtil = new QRCodeUtil();qrCodeUtil.encoderQRCode(content, imgPath, "png", 17);/*** 解码二维码*/String imgContent = qrCodeUtil.decodeQrCode(imgPath);System.out.println("imgContent:" + imgContent);}
}

生成二维码的方法

public void encoderQRCode(String content, String imgPath, String imgType, int size) {File file = new File(imgPath);BufferedImage bufImg = qrCodeCommon(content, imgType, size);try {ImageIO.write(bufImg, imgType, file);} catch (Exception e) {e.printStackTrace();}}/*** 生成一个二维码的BufferedImage* * @param content*            内容* @param imgType*            类型* @param size*            二维码边长* @return*/public BufferedImage qrCodeCommon(String content, String imgType, int size) {// BufferedImage.TYPE_INT_ARGB:RGB三基色BufferedImage bufImg = null;Qrcode qrcode = new Qrcode();// 设置二维码的拍错率qrcode.setQrcodeErrorCorrect('M');// 可存放的信息qrcode.setQrcodeEncodeMode('B');// 尺寸:取值范围:1-40qrcode.setQrcodeVersion(size);byte[] bytes = null;try {bytes = content.getBytes("utf-8");} catch (Exception e) {e.printStackTrace();}// 将内容转换成字节数组boolean[][] codeOut = qrcode.calQrcode(bytes);int imgSize = 67 + 12 * (size - 1);// BufferedImage:内存中的图片bufImg = new BufferedImage(imgSize, imgSize, BufferedImage.TYPE_INT_ARGB);// 创建一个画板Graphics2D gs = bufImg.createGraphics();// 设置二维码背景颜色:一般为白色gs.setBackground(Color.WHITE);// 初始化,x和y为0代表左上角,size一样代表是个正方形gs.clearRect(0, 0, imgSize, imgSize);// 设置二维码颜色:一般为黑色gs.setColor(Color.BLACK);for (int i = 0; i < codeOut.length; i++) {for (int j = 0; j < codeOut.length; j++) {if (codeOut[i][j]) {gs.fillRect(j * 3, i * 3, 3, 3);}}}// 给二维码中间增加logotry {// logo路径File file = new File("D://jieZai.jpg");// 加载一个Image对象Image logo = ImageIO.read(file);int width = bufImg.getWidth();int height = bufImg.getHeight();// 在已生成的二维码上画logogs.drawImage(logo, imgSize / 5 * 2, imgSize / 5 * 2, width / 5, height / 5, null);} catch (Exception e) {e.printStackTrace();}gs.dispose(); // 释放空间bufImg.flush(); // 刷新return bufImg;}

解码的方法

 /**
* 解码
*
* @param imgPath  图片路径
* @return
*/
public String decodeQrCode(String qrImg) {File file = new File(qrImg);Result result = null;if (!qrImg.isEmpty()) {try {// BufferedImage内存中的图片BufferedImage image = ImageIO.read(file);BinaryBitmap binaryBitmap = new BinaryBitmap(new HybridBinarizer(new BufferedImageLuminanceSource(image)));// 定义二维码的参数:HashMap<DecodeHintType, Object> hints = new HashMap<DecodeHintType, Object>();// 定义字符集hints.put(DecodeHintType.CHARACTER_SET, "utf-8");// 解密result = new MultiFormatReader().decode(binaryBitmap, hints);} catch (Exception e) {e.printStackTrace();}}return result.getText();
}

生成字符串内容的二维码

控制台

生成跳转网页的二维码

控制台

Java生成二维码与解码二维码相关推荐

  1. java生成酷炫霸气叼二维码

    java生成二维码 文章目录 java生成二维码 pom依赖 第一种类型 第二种类型 完整pom文件 pom依赖 <!--生成二维码依赖--><!-- https://mvnrepo ...

  2. java生成自定义标志、大小的二维码

    为什么80%的码农都做不了架构师?>>>    前段时间没事突然看到有些宣传海报上面打印了带log的二维码,于是在网上查找了生成二维码的方法,自己进行了写修改,下面直接贴出代码供参考 ...

  3. JAVA生成带图片带名称的二维码

    maven引入 com.google.zxing package com.util.qrCode;import com.alibaba.druid.util.Base64; import com.gi ...

  4. 结构光格雷码编码解码二值化 相移

    结构光三维重建学习笔记 所以,格雷码的生成步骤: 产生0,1两个字符串:0.1 在第一步基础上: 每个字符串前都+0->0+0.0+1 翻转首个元素,其余对称:1+1.1+0 最终:00.01. ...

  5. java 生成汉字同音字,拼音相同(二)

    汉字内码,如涡,内码为CED0,而CED1,CED2皆与涡同音. 代码如下: import java.io.UnsupportedEncodingException; import java.util ...

  6. HTML的Encode(转码)和解码(Decode)

    HTML的Encode(转码)和解码(Decode)在平时的开发中也是经常要处理的,在这里总结了使用javascript处理HTML的Encode(转码)和解码(Decode)的常用方式 一.用浏览器 ...

  7. php 微信表情 转码和解码方法

    php 微信表情存数据转义方法 表情转码 表情解码 表情转码 /** 转义emoji*/ function userTextEncode($str){if(! is_string($str)) ret ...

  8. 二维码编解码 Java调用示例代码

    二维码编解码 支持二维码的生成与识别.二维码生成时,直接返回生成的二维码图片 二维码生成 复制代码 二维码解码 复制代码 注意,该示例代码仅适用于 www.apishop.net网站下API 使用该产 ...

  9. Java 生成二维码 zxing生成二维码 条形码 服务端生成二维码 Java生成条形码

    Java 生成二维码 zxing生成二维码 条形码 服务端生成二维码 Java生成条形码 一.关于ZXing 1.ZXing是谷歌开源的支持二维码.条形码 等图形的生成类库:支持生成.和解码功能. G ...

最新文章

  1. 序列化和反序列化的对单例破坏的防止及其原理
  2. 【推荐】一下令人惊艳的的网站,绝对会让你爱上历史
  3. 计算机linux入门教程,Turbolinux入门教程1
  4. 工作383:css使absolute相对于父容器进行定位而不是以body(为什么绝对定位(absolute)的父级元素必须是相对定位(relative))...
  5. Java高级语法笔记-枚举类型
  6. Spring boot (1)--- 第一个应用程序helloworld
  7. Android轩辕剑之ActionBar之四
  8. PAT 乙级 1014. 福尔摩斯的约会 (20) Java版
  9. centos6.6装mysql5.7_centos 6.5装mysql5.7
  10. RN对接京东支付sdk(Android)
  11. 【Pigeon源码阅读】服务发现与调用初始化流程解析(五)
  12. 【艾琪出品】《计算机应用基础》【试题汇总4】
  13. 【附源码】计算机毕业设计SSM食疗养生服务平台
  14. Java学历很重要_Java开发找工作,学历重要还是技术重要?
  15. html生成真正的空图片代码 用canvas和script生成无实质性的空白图像 比图像透明处理还要牛 那种空白透明头像就是这么做出来的
  16. 一个简单的方法修复ubuntu引导损坏
  17. 吉林大学数据库系统概念2015年期末试题自做答案
  18. 2020年10月10日 晴
  19. T0001.数据结构面试题---栈---获取最小值
  20. Cocos2d-x 2013春季新功能发布和发展规划

热门文章

  1. Vue之下载所有选中连接
  2. 通达信交易服务器修改,通达信画线交易价格修改,通达信画线工具详解
  3. Makerdown小白使用指南
  4. 判断一个点是否在给定的凸四边形内
  5. c语言程序ax2 bx,计算ax2+bx+c程序清单计算机组成原理计算机系统概论.PPT
  6. manifest引用build中的变量
  7. [转]通过 BT 种子 Hash 值从 BitComet 服务器上下载种子文件
  8. 解决工作流:org.activiti.engine.ActivitiException: Unknown property used in expression: ${AAAAA}报错
  9. 天地图 android studio,AndroidStudio 加载 天地图 (2019年后开发授权申请)
  10. ubuntu 20.04 安装 免费 Beyond Compare对比工具