java平台产生二维码和解析二维码的列子(二)

2014-11-23 21:43:32 · 作者: · 浏览: 37
s.length < 800) {

boolean[][] codeOut = qrcodeHandler.calQrcode(contentBytes);

for (int i = 0; i < codeOut.length; i++) {

for (int j = 0; j < codeOut.length; j++) {

if (codeOut[j][i]) {

gs.fillRect(j * 3 + pixoff, i * 3 + pixoff, 3, 3);

}

}

}

} else {

throw new Exception("QRCode content bytes length = " + contentBytes.length + " not in [0, 800].");

}

gs.dispose();

bufImg.flush();

} catch (Exception e) {

e.printStackTrace();

}

return bufImg;

}

/**

* 解析二维码(QRCode)

* @param imgPath 图片路径

* @return

*/

public String decoderQRCode(String imgPath) {

// QRCode 二维码图片的文件

File imageFile = new File(imgPath);

BufferedImage bufImg = null;

String content = null;

try {

bufImg = ImageIO.read(imageFile);

QRCodeDecoder decoder = new QRCodeDecoder();

content = new String(decoder.decode(new TwoDimensionCodeImage(bufImg)), "utf-8");

} catch (IOException e) {

System.out.println("Error: " + e.getMessage());

e.printStackTrace();

} catch (DecodingFailedException dfe) {

System.out.println("Error: " + dfe.getMessage());

dfe.printStackTrace();

}

return content;

}

/**

* 解析二维码(QRCode)

* @param input 输入流

* @return

*/

public String decoderQRCode(InputStream input) {

BufferedImage bufImg = null;

String content = null;

try {

bufImg = ImageIO.read(input);

QRCodeDecoder decoder = new QRCodeDecoder();

content = new String(decoder.decode(new TwoDimensionCodeImage(bufImg)), "utf-8");

} catch (IOException e) {

System.out.println("Error: " + e.getMessage());

e.printStackTrace();

} catch (DecodingFailedException dfe) {

System.out.println("Error: " + dfe.getMessage());

dfe.printStackTrace();

}

return content;

}

public static void main(String[] args) {

String imgPath = "d:/test.bmp"; //生成二维码图片存放的地址和名称

//String encoderContent = "Hello 大大、小小,welcome to QRCode!" + "\nMyblog [ http://sjsky.iteye.com ]" + "\nEMail [ sjsky007@gmail.com ]";

String encoderContent = "啊速度发撒速度发发发当时发生的发顺丰"; //二维码显示的内容

TwoDimensionCode handler = new TwoDimensionCode();

handler.encoderQRCode(encoderContent, imgPath, "png");

try {

OutputStream output = new FileOutputStream(imgPath);

handler.encoderQRCode(encoderContent, output);

} catch (Exception e) {

e.printStackTrace();

}

System.out.println("========encoder success");

String decoderContent = handler.decoderQRCode(imgPath);

System.out.println("解析结果如下:");

System.out.println(decoderContent);

System.out.println("========decoder success!!!");

}