Java maven项目利用依赖进行生成和解析二维码

利用Java 来制作二维码和解析

首先我们要用到Zxing.jar包

创建一个maven项目添加依赖

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

然后编写java代码

package com.ysh;

import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.pdf417.decoder.ec.ErrorCorrection;
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;

import java.io.FileOutputStream;
import java.util.HashMap;
import java.util.Map;

public class QrDemo3 {
    public static void main(String[] args) {
        //定义二维码的内容参数
        Map<EncodeHintType,Object> hints=new HashMap<EncodeHintType, Object>();
        //设置边框距
        hints.put(EncodeHintType.MARGIN,2);
        //设置字符编码格式
        hints.put(EncodeHintType.CHARACTER_SET,"UTF-8");
        //设置容错等级 等级越高存入内容越少
        hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.M); //以上就是设置内容参数 如果不用中文可以不用设置
        try {
            //设置二维码的内容
            String contents="https://blog.csdn.net/qq_51939838?spm=1001.2101.3001.5343";
            //第一个参数为二维码内容,第二个是二维码格式,第三四是宽高,第四是前面写的内容参数 如果无写null
            BitMatrix bm = new MultiFormatWriter().encode(contents, BarcodeFormat.QR_CODE, 400, 400, hints);
            //第一个参数是BitMatrix,第二个是生成图片的格式,第三个是生成文件的地址
            MatrixToImageWriter.writeToStream(bm, "png", new FileOutputStream("picture\\my2.png"));
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

此时会生成一个二维码图片 这是我的博客地址 欢迎浏览

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-A8bAt5mX-1629182167358)(https://i.loli.net/2021/08/17/H4lREKumqJYFQbi.png)]

下面就是如何对二维码进行解析

package com.ysh;

import com.google.zxing.BinaryBitmap;
import com.google.zxing.EncodeHintType;
import com.google.zxing.MultiFormatReader;
import com.google.zxing.Result;
import com.google.zxing.client.j2se.BufferedImageLuminanceSource;
import com.google.zxing.common.HybridBinarizer;

import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.util.HashMap;
import java.util.Map;

public class ReadQrDemo {
    public static void main(String[] args) {
        try {
            MultiFormatReader formatReader = new MultiFormatReader();
            //放入你要解析的二维码地址
            File file = new File("picture\\myWechat.jpg");
            BufferedImage image = ImageIO.read(file);
            BinaryBitmap binaryBitmap = new BinaryBitmap(new HybridBinarizer(new BufferedImageLuminanceSource(image)));

            //定义二维码的参数 上面介绍过
            Map hints=new HashMap();
            hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");
            Result result = formatReader.decode(binaryBitmap, hints);

            System.out.println("解析结果:" + result.toString());
            System.out.println("二维码格式类型:" + result.getBarcodeFormat());
            System.out.println("二维码文本内容:" + result.getText());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

结果

解析结果:https://blog.csdn.net/qq_51939838?spm=1001.2101.3001.5343
二维码格式类型:QR_CODE
二维码文本内容:https://blog.csdn.net/qq_51939838?spm=1001.2101.3001.5343
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值