ZXing3.3.3 简单的使用(生成二维码)

一、ZXing介绍及前言

ZXing是Google开发的用于Java,Android的条形码扫描库。

现在的项目中需要加上二维码扫描,虽然使用了第三方库,也还好用,但是对这部分只是还是比较感兴趣,所以研究一下。

二、二维码处理分类

二维码处理分为两部分:编码与解码

编码:使用字符串生成图片。

解码:解析图片中的字符串。

首先明确一个概念:二维码图片存在的形式非常多,文件、纸张、手机、电脑屏幕。在不同的平台上存在的形式是不一样的。

三、生成二维码图片

1、这里需要先引入zxing包,有两种方式,一种是获取源码自己编译,GitHub地址。编辑后打包成jar在导入到自己的项目里使用。

      这里只需要编译这两个目录文件即可:如下图

2、第二种使用maven添加依赖

<!-- https://mvnrepository.com/artifact/com.google.zxing/core -->
        <dependency>
            <groupId>com.google.zxing</groupId>
            <artifactId>core</artifactId>
            <version>3.3.3</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/com.google.zxing/javase -->
        <dependency>
            <groupId>com.google.zxing</groupId>
            <artifactId>javase</artifactId>
            <version>3.3.3</version>
        </dependency>
    </dependencies>

3、生成二维码图片,代码如下:

package com.yhq.test;


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;
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;

import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

/**
 * @author: Yhq
 */
public class TestApplication {

    public static void main(String[] args) {
        //设置生个图片格式
        String format = "png";
        //设置二维码内容
        String context = "我爱你中国!";
        //设置额外参数
        Map<EncodeHintType,Object> map = new HashMap<>();
        //设置编码集
        map.put(EncodeHintType.CHARACTER_SET,"utf-8");
        //容错率,指定容错等级,例如二维码中使用的ErrorCorrectionLevel
        map.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.M);
        //生成条码的时候使用,指定边距,单位像素,受格式的影响。类型Integer, 或String代表的数字类型
        map.put(EncodeHintType.MARGIN,2);
        try {
            //生成二维码,(参数为:编码的内容、编码的方式(二维码、条形码...)、首选的宽度、首选的高度、编码时的额外参数)
            BitMatrix encode = new MultiFormatWriter().encode(context, BarcodeFormat.QR_CODE, 300, 300, map);
            //生成二维码图片,并将二维码写到文件里
            MatrixToImageWriter.writeToPath(encode,format,new File("D:/test.png").toPath());
        } catch (WriterException | IOException e) {
            e.printStackTrace();
        }

    }
}

4、在D盘里查看文件:

5、测试一下

至此ZXing3.3.3生成二维码就完成了!!! 

下篇文章介绍解析识别二维码,待续。。。。

如果有问题,请在下方评论,或者加群讨论 200909980

 

展开阅读全文

没有更多推荐了,返回首页