上篇博客我们一起学习了用QRCode的方式生成二维码,这节课学习用QRCode的方式的解析二维码。
新建一个Java类,如下图所示。
ReadQRCode.java类代码如下:
package com.qrcode;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import jp.sourceforge.qrcode.QRCodeDecoder;
public class ReadQRCode {
public static void main(String[] args) throws IOException{
File file = new File("E:/code/qrcode.png");
BufferedImage bufferedImage = ImageIO.read(file);
QRCodeDecoder codeDecoder = new QRCodeDecoder();
String result = new String(codeDecoder.decode(new MyQRCodeImage(bufferedImage)),"gb2312");
System.out.println(result);
}
}
其中codeDecoder.decode()中参数需要传入一个实现BufferedImage接口的类,我们新建MyQRCodeImage.java类,该类实现了QRCodeImage接口,如下图所示。
MyQRCodeImage.java类的代码如下:
package com.qrcode;
import java.awt.image.BufferedImage;
import jp.sourceforge.qrcode.data.QRCodeImage;
public class MyQRCodeImage implements QRCodeImage {
BufferedImage bufferedImage;
public MyQRCodeImage(BufferedImage bufferedImage){
this.bufferedImage = bufferedImage;
}
@Override
public int getHeight() {
return bufferedImage.getHeight();
}
@Override
public int getPixel(int arg0, int arg1) {
return bufferedImage.getRGB(arg0, arg1);
}
@Override
public int getWidth() {
return bufferedImage.getWidth();
}
}
我们运行上面的那个方法,结果如下图所示。正常解析出了二维码当中的内容。