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.测试二维码功能
启动项目,请求我们所写的测试接口
这样我们就完成了一个和百度自带生成二维码的一样的功能
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)