qrcode解析出來是一長串數字??求解
package com.wk.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("D://img.png");
BufferedImage bufferedImage = ImageIO.read(file);
QRCodeDecoder codeDecoder = new QRCodeDecoder();
String result = new String(codeDecoder.decode(new MyQRCodeImage(bufferedImage)));
System.out.println(result);
}
}
package com.wk.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();
}
}
結果打印出來是:
19628671028299113646982254461625629964540660043172309990720326327708969541999728475429321813549061834182907580805898539388735496775103106854592411992889663010198072995495752784186816116372008403787635790855390000000000000000000000000000000000000000000000000000000000000000000000
2016-11-07
不是編碼的問題,還是生成的圖片有問題,大家看那個雙重for循環gs.fillRect方法,大家如果i在外層循環,j在內層循環(個人習慣),應該gs.fillRect(i*3+pixoff,j*3+pixoff, 3, 3);,而不是gs.fillRect(j*3+pixoff,i*3+pixoff, 3, 3);j和i的位置問題,我生成的圖片掃描出來www.xianlaiwan.cn,但是解析確實一串數字,發現i和j寫反了
2016-10-21
同問,我也沒解決
2016-08-07
String result = new String(codeDecoder.decode(new MyQRCodeImage(bufferedImage)));
將這句代碼修改為
String result = new String(codeDecoder.decode(new MyQRCodeImage(bufferedImage)),"gb2312");
解析出來的內容沒有設置編碼格式