1.什么是二维码?

​ (百度百科):二维码又称二维条码,常见的二维码为QR Code,QR全称Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的Bar Code条形码能存更多的信息,也能表示更多的数据类型。

2.利用ZXing生成二维码

​ ·对应POM

1
2
3
4
5
6
7
8
9
10
11
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>core</artifactId>
<version>3.3.0</version>
</dependency>

<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>javase</artifactId>
<version>3.2.1</version>
</dependency>

​ ·Java代码(生成二维码)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
//二维码的宽度
static final int WIDTH = 300;
//二维码的高度
static final int HEIGHT = 300;
//二维码的格式
static final String FORMAT = "png";
//二维码的内容
static final String TEXT = "Hello!二维码!!!";
/**
* 生成二维码
*/
@Test
public void generate() {
/*
定义二维码的参数
*/
HashMap hashMap = new HashMap();
//设置二维码字符编码
hashMap.put(EncodeHintType.CHARACTER_SET, "UTF-8");
//设置二维码纠错等级
hashMap.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.M);
//设置二维码边距
hashMap.put(EncodeHintType.MARGIN, 2);

try {
//开始生成二维码
BitMatrix bitMatrix = new MultiFormatWriter().encode(TEXT, BarcodeFormat.QR_CODE, WIDTH, HEIGHT, hashMap);
//导出到指定目录
MatrixToImageWriter.writeToPath(bitMatrix, FORMAT, new File("D://erweima.png").toPath());
} catch (WriterException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}

生成出来的二维码!!!

​ ·Java代码(读取二维码)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/**
* 读取二维码
*/
@Test
public void read() throws IOException, NotFoundException {
//读取二维码为图片
BufferedImage bufferedImage = ImageIO.read(new File("D://erweima.png"));
//获取二维码的结果
BinaryBitmap binaryBitmap = new BinaryBitmap(new HybridBinarizer(new BufferedImageLuminanceSource(bufferedImage)));
/*
定义二维码的参数
*/
HashMap hashMap = new HashMap();
//设置二维码字符编码
hashMap.put(EncodeHintType.CHARACTER_SET, "UTF-8");
//对图像进行解码
Result result = new MultiFormatReader().decode(binaryBitmap, hashMap);
System.out.println("解析二维码的内容是:" + result.getText());
}

读取二维码里面的内容!!!

相关文章
评论
分享
  • MyBatis学习

    MyBatis是一款优秀的基于Java的持久性框架 Mybatis曾经是apache的一个开源项目ibatis,2010年迁移到google,并更名为MyBatis。2013年又迁移到Github。 1.下载MyBatis​ G...

    MyBatis学习
  • Nginx学习

    1.什么是Nginx?​ Nginx是一款高性能的HTTP和反向代理轻量级的Web服务器,特点是占有内存少,并发能力强 ​ ·1.正向/反向代理: ​ 正向代理:其实就是类似于VPN,通过代理...

    Nginx学习
  • Docker学习

    1.什么是Docker?​ Docker是一个开源的应用容器引擎,基于Go语言,遵从Apache2.0协议开源。 ​ Docker支持将软件编译成一个镜像;然后在镜像中各种软件做好配置,将镜像发布出去,其他使用者可以直接使...

    Docker学习
  • Redis学习

    什么是Redis?Redis是一个高性能的(key/value)分布式内存数据库,基于内存运行并支持持久化NoSQL数据库。为什么需要使用Redis?就拿微博说个实例吧:大家都知道使用微博的人可以用亿来进行统计;假如有一天一位明星在微...

    Redis学习
  • 美女壁纸合集

    一、运动系清纯美少女 二、极品性感美女 三、娇俏性感美女 四、短发美少女 五、可爱性感女生

    美女壁纸合集