在上一篇博客我们一起学习了用Java生成二维码,这篇博客我们一起学习下用zxing进行二维码解析。
新建一个类ReadQrCode,代码如下
- package com.qrcode;
-
- import java.awt.image.BufferedImage;
- import java.io.File;
- import java.io.IOException;
- 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){
- MultiFormatReader multiFormatReader = new MultiFormatReader();
- //要解析的二维码所在的目录
- File file = new File("E:/code/qrcode.png");
- try {
- BufferedImage image = ImageIO.read(file);
- BinaryBitmap binaryBitmap = new BinaryBitmap(new HybridBinarizer(new BufferedImageLuminanceSource(image)));
- HashMap hints = new HashMap();
- hints.put(EncodeHintType.CHARACTER_SET, "utf-8");
- Result result = multiFormatReader.decode(binaryBitmap, hints);
- System.out.println("解析结果:"+result);
- System.out.println("二维码格式类型:"+result.getBarcodeFormat());
- System.out.println("二维码文本内容:"+result.getText());
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
运行上面的方法,可以看到如下所示结果, 与生成的二维码信息完全一致!当然,这只是展示了二维码类型和内容,还有其他信息,大家可以自行研究了。