生成和解析使用zxing,下载链接 https://pan.baidu.com/s/1zN6aXfnsAlUud11J-nxirQ
package comsxlg.match;import com.google.zxing.BarcodeFormat;import com.google.zxing.EncodeHintType;import com.google.zxing.MultiFormatWriter;import com.google.zxing.WriterException;import com.google.zxing.client.j2se.MatrixToImageWriter;import com.google.zxing.common.BitMatrix;import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;import java.io.*;import java.nio.file.Path;import java.util.HashMap;import java.util.Map;/** * 生成QRCode二维码 */public class CreateQRCode{ public static void writeCode() { int width = 300; int height = 300; String format = "png"; String content = "www.baidu.com"; // 定义二维码参数 Map params = new HashMap(); params.put(EncodeHintType.CHARACTER_SET,"utf-8"); // 设置字符编码 params.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.M);// 设置纠错等级 params.put(EncodeHintType.MARGIN,2);// 设置边距 try { // 设置内容,二维码类型,长度,宽度 BitMatrix bitMatrix= new MultiFormatWriter() .encode(content, BarcodeFormat.QR_CODE,width,height,params); /* 方式一:直接输出文文件 // 获取保存路径 File file = new File("D:/img.png"); if (!file.exists()){ // 注意在创建文件时,如果存放文件的文件夹不存在,直接用createNewFile,会抛异常 file.createNewFile(); } Path path = file.toPath(); MatrixToImageWriter.writeToPath(bitMatrix,format,path); */ // 输出到流 File file = new File("D:/img1.png"); if (!file.exists()){ // 注意在创建文件时,如果存放文件的文件夹不存在,直接用createNewFile,会抛异常 file.createNewFile(); } OutputStream out = new FileOutputStream(file); MatrixToImageWriter.writeToStream(bitMatrix,format,out); if (null != out ){ out.close(); } } catch (WriterException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } public static void main(String[] args) { writeCode(); }}
package comsxlg.match;import com.google.zxing.*;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.io.IOException;import java.util.HashMap;import java.util.Map;/*** * 读取QR Code 二维码 */public class ReadQRCode{ public static void main(String[] args) { ReadCode(); } private static void ReadCode() { MultiFormatReader reader = new MultiFormatReader(); try { //File file = new File("D:/img.png"); File file = new File("E:\\spring_boot\\springboot\\src\\main\\resources\\static\\qrcode.dib"); BufferedImage image = ImageIO.read(file); BinaryBitmap binaryBitmap = new BinaryBitmap( new HybridBinarizer(new BufferedImageLuminanceSource(image))); Map params = new HashMap(); params.put(EncodeHintType.CHARACTER_SET,"utf-8"); // 设置字符编码 Result result = reader.decode(binaryBitmap,params); System.out.println("content is :"+result.getText()); System.out.println("format is :"+result.getBarcodeFormat()); System.out.println("result is :"+result.toString()); } catch (IOException e) { e.printStackTrace(); } catch (NotFoundException e) { } }}