二维码
首先就是导入一个包
zxing包;去maven官网下载
我们将二维码分为两个步骤来实现
spring boot的依赖
<!-- 二维码支持包 -->
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>core</artifactId>
<version>3.3.0</version>
</dependency>
<dependency>
<groupId>net.glxn</groupId>
<artifactId>qrgen</artifactId>
<version>1.4</version>
</dependency>
第一步
生成二维码图像
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.nio.file.FileSystems;
import java.nio.file.Path;
import java.util.HashMap;
import java.util.Map;
import javax.imageio.ImageIO;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.Binarizer;
import com.google.zxing.BinaryBitmap;
import com.google.zxing.DecodeHintType;
import com.google.zxing.EncodeHintType;
import com.google.zxing.LuminanceSource;
import com.google.zxing.MultiFormatReader;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.NotFoundException;
import com.google.zxing.Result;
import com.google.zxing.client.j2se.BufferedImageLuminanceSource;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.common.HybridBinarizer;
public class ZXingUtil {
/**
* 生成图像
*/
public static void encode(String content, String filePath, String fileName, int width, int height) {
try {
String format = "png";// 图像类型
Map<EncodeHintType, Object> hints = new HashMap<EncodeHintType, Object>();
hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");
BitMatrix bitMatrix = new MultiFormatWriter().encode(content, BarcodeFormat.QR_CODE, width, height, hints);// 生成矩阵
Path path = FileSystems.getDefault().getPath(filePath, fileName);
MatrixToImageWriter.writeToPath(bitMatrix, format, path);// 输出图像
System.out.println("输出成功.");
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 解析图像
*/
public static String decode(String filePath) {
BufferedImage image;
try {
image = ImageIO.read(new File(filePath));
LuminanceSource source = new BufferedImageLuminanceSource(image);
Binarizer binarizer = new HybridBinarizer(source);
BinaryBitmap binaryBitmap = new BinaryBitmap(binarizer);
Map<DecodeHintType, Object> hints = new HashMap<DecodeHintType, Object>();
hints.put(DecodeHintType.CHARACTER_SET, "UTF-8");
Result result = new MultiFormatReader().decode(binaryBitmap, hints);// 对图像进行解码
return result.getText();
} catch (IOException e) {
e.printStackTrace();
} catch (NotFoundException e) {
e.printStackTrace();
}
return null;
}
}
第二部
对生成图像进行调用
import com.zhiyou100.util.ZXingUtil;
public class MainClass {
//哈哈哈
//打电话-----------tel://手机号
//发短信-----------sms://手机号
//邮件-------------emall://邮箱号
//
public static void main(String[] args) {
m2();
}
public static void m2() {
//要解析图片的路径
String string = ZXingUtil.decode("D:/image/3.jpg");
System.out.println(string);
}
//二维码生成
public static void m1() {
//第一个是 要输出的信息 第二个是生成图片的路径 第三个是图片的名字 第//四个是 宽度 第五个是高度
ZXingUtil.encode("tel://13739655795", "D:/image/", "2.png", 200, 200);
}
}
以上就是简单的二维码生成。