使用Java生成二维码
二维码应该称为二维条码,扫描之后可以获得更多数据
QR码全称为快速响应矩阵码,1994年日本一个公司发明
黑色表示1,白色表示0
3个角落比较像“回”字,叫定位点
容错机制,当7%~30%破损任可以被读取,可以利用这个机制在二维码中放入一些小的logo
最多可以存储7089个数字字符或4296个字母或1800个中文汉字(gbk)
目前在Github上最流行的java实现条形码库是:
https://github.com/zxing/zxing
javase的相关jar包下载方式相同
下面这张图片是各个包中的帮助文档,在主页面中
将两个jar包复制到java项目中,并且添加到内路径上
package com.laning.qrcode;import java.awt.Graphics;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.HashMap;import javax.imageio.ImageIO;import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.WriterException;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;public class QRCode {private static int index =1;//main方法,方法的入口public static void main(String[] args) {String str1 = "李长斌有毛病,哈哈哈";String str2 = "刘志文有毛病,哈哈哈";String str3 = "李 明有毛病,哈哈哈";File dstfile1 = new File("E:/大一课程/java编程/JAVA生成二维码jar包");try {createQRCode(str1, dstfile1);createQRCode(str2, dstfile1);createQRCode(str3, dstfile1);} catch (WriterException | IOException e) {e.printStackTrace();}createLogoQRCode(new File("E:/大一课程/java编程/JAVA生成二维码jar包/1.jpg"), str1,dstfile1 );}//专门用于生成二维码的工具方法private static void createQRCode(String str ,File dst) throws WriterException, IOException{//该类用于多种格式二维码的编码MultiFormatWriter writer = new MultiFormatWriter();//用来设置二维码的宽高int width = 200;int height = 200;//用来设置二维码的一些属性HashMap<EncodeHintType,Object> hints = new HashMap<>();hints.put(EncodeHintType.CHARACTER_SET,"utf-8");//用来编写二维码,返回二进制矩阵数据BitMatrix bitmatrix = writer.encode(str,BarcodeFormat.QR_CODE, width, height,hints);//三个参数,二进制矩阵数组,图片的格式,图片保存的路径MatrixToImageWriter.writeToPath(bitmatrix,"png",new File(dst.getPath()+"/"+(index++)+".png").toPath());}//利用二维码容错机制生成一个简单的logo的工具方法,三个参数分别是目标图片,想要展示的内容,二维码存放地址private static void createLogoQRCode(File dstimg,String str,File dst){//该类用于多种格式二维码的编码MultiFormatWriter writer = new MultiFormatWriter();//用来设置二维码的宽高int width = 200;int height = 200;//用来设置二维码的一些属性HashMap<EncodeHintType,Object> hints = new HashMap<>();hints.put(EncodeHintType.CHARACTER_SET,"utf-8");//用来编写二维码,返回二进制矩阵数据BitMatrix bitmatrix = null;try {bitmatrix = writer.encode(str,BarcodeFormat.QR_CODE, width, height,hints);} catch (WriterException e1) {e1.printStackTrace();}//创建图片,宽,高,BufferedImage qr = new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);for(int x=0;x<width;x++){for(int y=0;y<height;y++){if(bitmatrix.get(x, y)){//如果矩阵数组中有点的话,可以设置任意颜色qr.setRGB(x, y, 0xff0000);}else{qr.setRGB(x, y, 0xffffff);}}}Image logoUse = null;//将logo缩小,宽,高,缩小方式int logoW=30;int logoH=30;try {//读取logoBufferedImage logoImg = ImageIO.read(dstimg);logoUse = logoImg.getScaledInstance(logoW,logoH,Image.SCALE_FAST);} catch (IOException e) {e.printStackTrace();}//获取画笔Graphics g = qr.getGraphics();//绘制Logo,x坐标,y坐标int logoX = (width-logoW)/2;int logoY = (height-logoH)/2;g.drawImage(logoUse,logoX,logoY, null);try {ImageIO.write(qr, "png",new File(dst.getPath()+"/"+(index++)+".png"));} catch (IOException e) {e.printStackTrace();}}}
使用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 = ...
最新文章
- CornerNet代码解析——损失函数
- Oracle update 多表关联更新
- Shell-bash
- 实战SSM_O2O商铺_41【前端展示】店铺列表页面Dao+Service+Controller层的实现
- 使用TimeQuest时序分析器
- 视频云下半场 向前走还是向“厚”走?
- (转载)SpringBoot 发送邮件和附件
- MFC制作简易音乐播放器
- go 的基本数据类型
- SQL Server添加Check约束
- MFC开发上位机经验
- WIN7封装教程2018系列(二)—必要的系统调整
- LVS负载均衡群集(理论+实验)
- 淘淘商城第30讲——实现商品添加功能
- Ubuntu 20.04安装绿联PL2303串口驱动
- 【WPF、UWP】搜索蓝牙设备
- 【mmdetection】mmdetection学习率设置
- Linux Ubuntu18.04系统 USB转串口驱动安装,查看串口号
- 云效平台代码管理使用总结
- 阿里旺铺运营怎样做到低价引流
热门文章
- Charles(青花瓷)抓包
- 6.5 Rviz中控制机器人模型运动
- Android系统升级全流程
- dmbj.top(代码笔记) 上线啦
- 模拟赛20210810A T1
- 深度学习caffe(4)——caffe配置(GPU)
- vmwrare linux 下编译 出现 fatal error: error closing /tmp/ccsdc7Zt.s: No space left on device
- html 字号代码,html文字代码
- Android 中截屏功能的实现
- Android nck c++调用java方法