package qrcode;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import javax.imageio.ImageIO;
import jp.sourceforge.qrcode.QRCodeDecoder;
import jp.sourceforge.qrcode.data.QRCodeImage;
import jp.sourceforge.qrcode.exception.DecodingFailedException;
public class QRCodeDecoderTest {
public QRCodeDecoderTest() {
}
// 解码
public static void decoded() {
QRCodeDecoder decoder = new QRCodeDecoder();
File imageFile = new File("WebRoot/img/QRCode.jpg");
BufferedImage image = null;
try {
image = ImageIO.read(imageFile);
} catch (IOException e) {
System.out.println("读取失败!");
}
try {
String decodedData = new String(decoder.decode(new J2SEImage(image)),"GBK");
System.out.println("识别二维码:");
System.out.println(decodedData);
//删除图片
QRCodeDecoderTest.delImg();
} catch (DecodingFailedException dfe) {
System.out.println("识别错误,请重新扫描!");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
/*删除图片*/
public static void delImg(){
File file = new File("WebRoot/img/QRCode.jpg");
if(file.isFile()&&file.exists()){
file.delete();
}
}
}
class J2SEImage implements QRCodeImage {
BufferedImage image;
public J2SEImage(BufferedImage image) {
this.image = image;
}
public int getWidth() {
return image.getWidth();
}
public int getHeight() {
return image.getHeight();
}
public int getPixel(int x, int y) {
return image.getRGB(x, y);
}
}
评论1