Java生成二维码与解码二维码
下载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生成二维码与解码二维码相关推荐
- java生成酷炫霸气叼二维码
java生成二维码 文章目录 java生成二维码 pom依赖 第一种类型 第二种类型 完整pom文件 pom依赖 <!--生成二维码依赖--><!-- https://mvnrepo ...
- java生成自定义标志、大小的二维码
为什么80%的码农都做不了架构师?>>> 前段时间没事突然看到有些宣传海报上面打印了带log的二维码,于是在网上查找了生成二维码的方法,自己进行了写修改,下面直接贴出代码供参考 ...
- JAVA生成带图片带名称的二维码
maven引入 com.google.zxing package com.util.qrCode;import com.alibaba.druid.util.Base64; import com.gi ...
- 结构光格雷码编码解码二值化 相移
结构光三维重建学习笔记 所以,格雷码的生成步骤: 产生0,1两个字符串:0.1 在第一步基础上: 每个字符串前都+0->0+0.0+1 翻转首个元素,其余对称:1+1.1+0 最终:00.01. ...
- java 生成汉字同音字,拼音相同(二)
汉字内码,如涡,内码为CED0,而CED1,CED2皆与涡同音. 代码如下: import java.io.UnsupportedEncodingException; import java.util ...
- HTML的Encode(转码)和解码(Decode)
HTML的Encode(转码)和解码(Decode)在平时的开发中也是经常要处理的,在这里总结了使用javascript处理HTML的Encode(转码)和解码(Decode)的常用方式 一.用浏览器 ...
- php 微信表情 转码和解码方法
php 微信表情存数据转义方法 表情转码 表情解码 表情转码 /** 转义emoji*/ function userTextEncode($str){if(! is_string($str)) ret ...
- 二维码编解码 Java调用示例代码
二维码编解码 支持二维码的生成与识别.二维码生成时,直接返回生成的二维码图片 二维码生成 复制代码 二维码解码 复制代码 注意,该示例代码仅适用于 www.apishop.net网站下API 使用该产 ...
- Java 生成二维码 zxing生成二维码 条形码 服务端生成二维码 Java生成条形码
Java 生成二维码 zxing生成二维码 条形码 服务端生成二维码 Java生成条形码 一.关于ZXing 1.ZXing是谷歌开源的支持二维码.条形码 等图形的生成类库:支持生成.和解码功能. G ...
最新文章
- 序列化和反序列化的对单例破坏的防止及其原理
- 【推荐】一下令人惊艳的的网站,绝对会让你爱上历史
- 计算机linux入门教程,Turbolinux入门教程1
- 工作383:css使absolute相对于父容器进行定位而不是以body(为什么绝对定位(absolute)的父级元素必须是相对定位(relative))...
- Java高级语法笔记-枚举类型
- Spring boot (1)--- 第一个应用程序helloworld
- Android轩辕剑之ActionBar之四
- PAT 乙级 1014. 福尔摩斯的约会 (20) Java版
- centos6.6装mysql5.7_centos 6.5装mysql5.7
- RN对接京东支付sdk(Android)
- 【Pigeon源码阅读】服务发现与调用初始化流程解析(五)
- 【艾琪出品】《计算机应用基础》【试题汇总4】
- 【附源码】计算机毕业设计SSM食疗养生服务平台
- Java学历很重要_Java开发找工作,学历重要还是技术重要?
- html生成真正的空图片代码 用canvas和script生成无实质性的空白图像 比图像透明处理还要牛 那种空白透明头像就是这么做出来的
- 一个简单的方法修复ubuntu引导损坏
- 吉林大学数据库系统概念2015年期末试题自做答案
- 2020年10月10日 晴
- T0001.数据结构面试题---栈---获取最小值
- Cocos2d-x 2013春季新功能发布和发展规划
热门文章
- Vue之下载所有选中连接
- 通达信交易服务器修改,通达信画线交易价格修改,通达信画线工具详解
- Makerdown小白使用指南
- 判断一个点是否在给定的凸四边形内
- c语言程序ax2 bx,计算ax2+bx+c程序清单计算机组成原理计算机系统概论.PPT
- manifest引用build中的变量
- [转]通过 BT 种子 Hash 值从 BitComet 服务器上下载种子文件
- 解决工作流:org.activiti.engine.ActivitiException: Unknown property used in expression: ${AAAAA}报错
- 天地图 android studio,AndroidStudio 加载 天地图 (2019年后开发授权申请)
- ubuntu 20.04 安装 免费 Beyond Compare对比工具