首先创建一个二维码:

package com.mk.zxing;

import java.io.File;
import java.io.IOException;
import java.nio.file.Path;
import java.util.HashMap;

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

public class CreateQRCode {
	public static void main(String[] args) {
		int width = 300;
		int height = 300;
		String content = \"这是一个二维码\";
		
		String format = \"png\";
		
		//定义二维码参数
		HashMap hhmp =  new HashMap<>();
		hhmp.put(EncodeHintType.CHARACTER_SET, \"utf-8\");
		hhmp.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.M);
		hhmp.put(EncodeHintType.MARGIN, 2);
		
		// 生成路径
		Path file = new File(\"E:/二维码/img.png\").toPath();
		
		//生成二维码
		try {
			BitMatrix encode = new MultiFormatWriter().encode(content, BarcodeFormat.QR_CODE, width, height,hhmp);
			MatrixToImageWriter.writeToPath(encode, format, file);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

读取二维码的内容:

package com.mk.zxing;

import java.awt.image.BufferedImage;
import java.io.File;
import java.util.HashMap;

import javax.imageio.ImageIO;

import com.google.zxing.BinaryBitmap;
import com.google.zxing.EncodeHintType;
import com.google.zxing.MultiFormatReader;
import com.google.zxing.Result;
import com.google.zxing.client.j2se.BufferedImageLuminanceSource;
import com.google.zxing.common.HybridBinarizer;

public class ReadQRCode {

	public static void main(String[] args) {
		try {
			MultiFormatReader mfr = new MultiFormatReader();
			File file = new File(\"E:/二维码/img.png\");
			BufferedImage img = ImageIO.read(file);
			BinaryBitmap binaryBitMap = new BinaryBitmap(new HybridBinarizer(new BufferedImageLuminanceSource(img)));
			//定义二维码参数
			HashMap hhmp =  new HashMap<>();
			hhmp.put(EncodeHintType.CHARACTER_SET, \"utf-8\");
			Result decode = mfr.decode(binaryBitMap, hhmp);
			System.out.println(\"解析结果:\"+decode.toString());
			System.out.println(\"二维码格式类型:\"+decode.getBarcodeFormat());
			System.out.println(\"二维码内容:\"+decode.getText());
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}	
	}
}

 

收藏 打印