实战练习之Java实现二维码(Zxing.jar)
使用开发工具SpringToolSuite.exe ,自带SpringBoot框架,开发过程中管理Jar包更方便简洁。
实现思路:引入Jar包—>配置文件—>实现后台方法—>编写前台获取信息页面
1、配置了Maven环境,所以只需要在pom.xml配置上所需的相应Jar包的信息即可(引入Jar包—>配置文件在这一步实现)。此次使用的是Google的zxing包,将<dependency>放在<dependencies>中
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>javase</artifactId>
<version>3.0.0</version>
</dependency>
2、实现二维码,此方法可以根据输入的二维码内容、宽、发哦、存放位置、生成图片名称来生成二维码 。文件名:PageController.java
/**
* 二维码
*
* @throws IOException
*/
@RequestMapping("/code")
//与请求名称匹配
public ModelAndView qrCode(String content, String width, String height, String name) throws IOException { //获取前台传参
// 定义跳转的页面
ModelAndView mav = new ModelAndView("/qrCode");
//验证信息
if(null == content) {
mav.addObject("message", "请输入要生成二维码的内容。");
return mav;
}
if(null == width||null == height) {
mav.addObject("message", "请输入二维码的宽和高。");
return mav;
}
if(null == name) {
mav.addObject("message", "请输入生成图片的名字。");
return mav;
}
try {
//生成并输出二维码
QRCodeWriter writer = new QRCodeWriter();
BitMatrix martix = writer.encode(content, BarcodeFormat.QR_CODE, Integer.valueOf(width), Integer.valueOf(height)); // 二维码内容,宽,高
Path path = FileSystems.getDefault().getPath("E:\\qrCode", name); // 输出路径,生成图片名称
MatrixToImageWriter.writeToPath(martix, "png", path);// 输出图像,定义输出格式
mav.addObject("message", "二维码生成成功,存放在:E:\\qrCode\\"+name+".png");
} catch (WriterException e) {
}
return mav;
}
3、前台页面用于获取信息,文件名:qrCode.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>二维码</title>
</head>
<body>
<form method='post' action='/code'>
<table>
<tr>
<td>内容</td>
<td><input type="text" name="content"></td>
</tr>
<tr>
<td>宽</td>
<td><input type="text" name="width"></td>
</tr>
<tr>
<td>高 </td>
<td><input type="text" name="height"></td>
</tr>
<tr>
<td>图片名称</td>
<td><input type="text" name="name"></td>
</tr>
<tr><td><input type="submit" value="生成二维码"
class="btn" /></td></tr>
</table>
</form>
${message}
</body>
</html>
相关文章