JAVA生成二维码(一)
准备工作
- 下载项目需要使用的jar包(ORCode.jar)
个人提供这个jar包路径(可以直接下载就使用)
链接:https://pan.baidu.com/s/1g0ck9Bm1JP8IPemc-MiHuQ
提取码:pzpa
2.先简介下面代码用的一些东西(先看完,再看代码)
2.1 排错率
可选L(7%)、M(15%)、Q(25%)、H(30%),排错率越高可存储的信息越少,但对二维码清晰度的要求越小(比如选择了L可以存储的内容更多,选H的存储的内容会少很多)
2.2 设置版本
版本有1-40个。其中每加一个版本,二维码的两个边长都增4,比如版本1为2121矩阵,则版本7为4545的矩阵(最高40版本是177*177的矩阵),
2.3 设置背景颜色和前景色
这个里面有Color类里面自带的很多颜色
2.4 imgPath
指的是二维码生产在电脑的那个地方和名字(自己写路径)。
2.5 content
指二维码的内容。(可以放很多,比如数字,中文,也可以放网址)
运行代码
package com.wangcong;import com.swetake.util.Qrcode;import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;public class two {public static void main(String[] args) {String imgPath = "E:/code.png"; // 二维码保存路径// 跳转的内容,如果http://则当做文字处理String content = "好好学习,天天向上,努力敲代码学JAVA";// 创建封装类QrCodeAssis assis = new QrCodeAssis(imgPath, content);boolean result = assis.createCode(480, 480);if (result) {System.out.println("二维码生成成功!");} else {System.out.println("二维码生成失败!");}}
}/*** 使用QRCode生成二维码*/
class QrCodeAssis{private String imgPath; // 二维码保存路径private String content; // 二维码内容/*** imgPath 二维码保存路径, content 二维码内容]*/QrCodeAssis(String imgPath, String content) {this.imgPath = imgPath;this.content = content;}/*** boolean 二维码是否生成成功*/boolean createCode(int width, int height) {boolean flag = true;try {Qrcode qrcode = new Qrcode(); // 创建Qrcode对象// 排错率可选(%)-L(7):M(15):Q(25):H(30)qrcode.setQrcodeErrorCorrect('L');qrcode.setQrcodeEncodeMode('B');qrcode.setQrcodeVersion(3); // 设置版本(可选)width = width >= 100 ? width : 100; // 宽度至少100height = height >= 100 ? height: 100; // 高度至少100// 创建画布和画图设备BufferedImage img = new BufferedImage(width, height, BufferedImage.TYPE_INT_BGR);Graphics2D draw = img.createGraphics();draw.setBackground(Color.WHITE); // 设置背景色draw.clearRect(0, 0, width, height); // 清空原始内容draw.setColor(Color.BLACK); // 设置前景色int posOff = 2; // 设置偏移量,避免输出点重叠// 设置内容编码byte[] codeContent = this.content.getBytes("utf-8");// 生成二维数组,500是内容大小,根据自己的内容大小进行设定if (codeContent.length > 0 && codeContent.length < 500) {boolean[][] qrcodeOut = qrcode.calQrcode(codeContent);// 将内容写入到图片中for (int i = 0; i < qrcodeOut.length; i++) {for (int j = 0; j < qrcodeOut.length; j++) {// 如果当前位置有像素点if (qrcodeOut[j][i]){// 写入图片draw.fillRect(j * 16 + posOff, i * 16 + posOff, 16, 16);}}}}draw.dispose(); // 关闭画图设备img.flush(); // 刷新缓冲区File file = new File(imgPath);ImageIO.write(img, "png", file); // 保存图片} catch (Exception e) {e.printStackTrace();flag = false;}return flag;}
}
先正常生成一个好好学习的二维码,如下图
然后,在自己的电脑上找到图片的路径。(为上面的imgPath)
生成二维码如下图:
识别图中二维码会出现内容:
下面是一下测试代码:
1.排错率选择问题
当把排错率选择H时
内容长度太长所以验证了排错率越高可存储的信息越少
最后就是一个设置前景颜色和背景颜色的东西,大家可以根据自己的喜欢去设置一些颜色。
JAVA生成二维码(一)相关推荐
- java 生成二维码 QRCode、zxing 两种方式
版权声明:本文为 testcs_dn(微wx笑) 原创文章,非商用自由转载-保持署名-注明出处,谢谢. https://blog.csdn.net/testcs_dn/article/details/ ...
- 二维码相关---java生成二维码名片,并且自动保存到手机通讯录中...
二维码相关---java生成二维码名片,并且自动保存到手机通讯录中... 技术qq交流群:JavaDream:251572072 1.首先介绍一个api. Zxing是Google提供的关于条码 ...
- java生成二维码打印到浏览器
java生成二维码打印到浏览器 解决方法: pom.xml的依赖两个jar包: <!-- https://mvnrepository.com/artifact/com.google.zxing/ ...
- Java生成二维码带LOGO底部标题竖版字体
前言 Java后端生成二维码 底部 侧面带有标题,可调节字号 参考文章 使用Java生成二维码图片(亲测) Reborn_YY使用Java生成二维码图片 图标素材库 Java后台生成图片,前台实现图片 ...
- java生成二维码,并在前端展示。
java生成二维码,并在前端展示,扫码实现下载功能. 后端生成二维码以流的形式 前端接收二维码并展示 后端生成二维码以流的形式 这是以流的形式展示二维码.当然也可以以文件的格式,文件格式就是Path ...
- java生成二维码(链接生成二维码)
Java二维码如何生成? awt.image.BufferedImage; import java.io.File; import javax.imageio.ImageIO; import com. ...
- java生成二维码到文件,java生成二维码转成BASE64
java生成二维码到文件,java生成二维码转成BASE64 如题,利用java和第三方库,把指定的字符串生成二维码,并且把二维码保存成图片,转换成BASE64格式. 需要的jar文件: packag ...
- java生成二维码扫描跳转到指定的路径URL
java生成二维码扫描跳转到指定的路径URL 导入依赖 <dependency><groupId>com.google.zxing</groupId><art ...
- Java 生成二维码 zxing生成二维码 条形码 服务端生成二维码 Java生成条形码
Java 生成二维码 zxing生成二维码 条形码 服务端生成二维码 Java生成条形码 一.关于ZXing 1.ZXing是谷歌开源的支持二维码.条形码 等图形的生成类库:支持生成.和解码功能. G ...
- java 生成二维码后叠加LOGO并转换成base64
1.代码 见文末推荐 2.测试 测试1:生成base64码 public static void main(String[] args) throws Exception {String data = ...
最新文章
- C/C++中static关键字用法汇总
- RandomRooms:用于3D目标检测的无监督预训练方法(ICCV2021)
- 关注Cortex-M处理器,M0、M3、M4简单对比
- Java核心技术点之集合框架
- Spring Boot2.x-10 基于Spring Boot 2.1.2 + Mybatis 2.0.0实现多数据源,支持事务
- 2022 USNews全美大学排行榜出炉!普林斯顿霸榜,哥大哈佛MIT并列第二
- html5星期,HTML5 时钟
- 语言const的生命周期_如何理解一门编程语言2——以复制构造函数为例
- 【重点】LeetCode 135. Candy
- centos7 安装 卸载docker
- 智能客服搭建(4) - 语音流的分贝计算
- 个人发卡网站源码内置2套模板 对接码支付
- 利用模版元编程将传统冒泡排序性能提升两倍以上
- drozer 找不到java_自己安装drozer时出现各种问题的解决
- 浏览器刷新页面导致vuex数据丢失问题如何解决?
- AlphaGo论文的译文,用深度神经网络和树搜索征服围棋:Mastering the game of Go with deep neural networks and tree search
- BPI 流程优化和BPR流程重组
- Android MVP详解
- 有趣的动态壁纸如何制作
- 微信朋友圈营销如何做好头像_昵称_签名_背景基础设置?
热门文章
- 作为有经验的程序员如果不懂Lambda表达式就说不过去了吧,建议收藏!!!
- IP数据报的检验(计算机网络)
- 计算机科学前沿技术导论论文,计算机科学技术导论论文.doc
- 【数据库学习】关系数据库总结
- python xlrd模块_新手菜鸟Linux学习之路
- hdu 5175 Misaki's Kiss again (抑或运算+公式变形)
- 从性格色彩认知了解自己
- [GDOI2016][树链剖分+主席树]疯狂动物城
- Git使用时无.ssh目录:/.ssh: No such file or directory
- JavaScript 高级3 :函数进阶