Java之使用zxing.jar包生成二维码

由于时代科学的进步,二维码已经和我们的生活密不可分,在开发过程中往往会涉及到和二维码相关的开发,今天这篇文章就教会大家如何使用zxing.jar包生成二维码

  下面这个就是百度上面自带的一个生成二维码的功能,那他是怎么实现这个功能的呢?

1.准备工作

1)创建一个maven项目,在pom.xml中导入zxing的依赖包

复制代码
<dependency>
    <groupId>com.google.zxing</groupId>            
        <artifactId>core</artifactId>
        <version>3.3.3</version>
</dependency>
 <dependency>
    <groupId>com.google.zxing</groupId>
        <artifactId>javase</artifactId>
        <version>3.3.0</version>
        <exclusions>
            <exclusion>
                <artifactId>core</artifactId>
                <groupId>com.google.zxing</groupId>
            </exclusion>
        </exclusions>
</dependency>
                
复制代码

2)创建测试类TestController,代码如下

复制代码
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

import javax.servlet.http.HttpServletResponse;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

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

@RestController
public class TestController {

    // 生成二维码
    @RequestMapping("/getCode")
    public void getCode(HttpServletResponse response){
        // 二维码内容
        String contents = "https://www.cnblogs.com/jiangyalin/p/17085249.html";
        // 表示是二维码
        BarcodeFormat qrCode = BarcodeFormat.QR_CODE;
        // 二维码宽度
        int width = 300;
        // 二维码高度
        int height = 300;
        // 返回的图片格式
        String format = "png";
        response.setContentType("image/png");
        try {
            Map<EncodeHintType, Object> hints = new HashMap<EncodeHintType, Object>();
            // 设置二维码编字符集
            hints.put(EncodeHintType.CHARACTER_SET, "utf-8");
            // 设置二维码的外间距
            hints.put(EncodeHintType.MARGIN, 10);
            // 设置二维码容错级别
            hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H);
            // 创建二维码对象
            BitMatrix bitMatrix = new MultiFormatWriter().encode(contents, qrCode, width, height, hints);
            // 输出二维码
            MatrixToImageWriter.writeToStream(bitMatrix, format, response.getOutputStream());
        } catch (WriterException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}
复制代码

2.测试二维码功能

启动项目,请求我们所写的测试接口

 

这样我们就完成了一个和百度自带生成二维码的一样的功能

 

posted @   勒银林  阅读(785)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示