问答详情
源自:6-4 使用QR Code方式生成和解析二维码

QRCODE

byte[] d = qrData.getBytes("gd2312");


qrDate是错的,识别不了

提问者:Andy0726 2018-01-27 15:06

个回答

  • 1318399699
    2018-02-28 15:21:59

    public static void main(String[] args) throws IOException {
    		Qrcode xQrcode = new Qrcode();
    		xQrcode.setQrcodeEncodeMode('B');//N代表数字,A代表a-Z,B代表其他字符
    		xQrcode.setQrcodeErrorCorrect('M');//纠错等级
    		xQrcode.setQrcodeVersion(7);//版本
    		String qrData = "www.imooc.com";
    		int width = 67 + 12 * ( 7 - 1 );//7是版本
    		int height = 67 + 12 * ( 7 - 1 );
    		
    		BufferedImage bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
    		
    		Graphics2D gs = bufferedImage.createGraphics();
    		
    		gs.setBackground(Color.white);
    		gs.setColor(Color.BLACK);
    		gs.clearRect(0, 0, width, height);
    		
    		int pixoff = 2;//偏移量
    		
    		byte[] d = qrData.getBytes("gb2312");
    		if(d.length>0 && d.length<120){
    			boolean[][] s = xQrcode.calQrcode(d);
    			
    			for(int i=0;i<s.length;i++){
    				for(int j=0;j<s.length;j++){
    					if(s[j][i]){
    						gs.fillRect(j*3+pixoff, i*3+pixoff, 3, 3);
    					}
    				}
    			}
    		}
    		
    		gs.dispose();
    		bufferedImage.flush();
    		
    		ImageIO.write(bufferedImage, "png", new File("c:/image2.png"));
    	}


  • 1318399699
    2018-02-28 15:21:08

    public static void main(String[] args) throws IOException {

    Qrcode xQrcode = new Qrcode();

    xQrcode.setQrcodeEncodeMode('B');//N代表数字,A代表a-Z,B代表其他字符

    xQrcode.setQrcodeErrorCorrect('M');//纠错等级

    xQrcode.setQrcodeVersion(7);//版本

    String qrData = "www.imooc.com";

    int width = 67 + 12 * ( 7 - 1 );//7是版本

    int height = 67 + 12 * ( 7 - 1 );

    BufferedImage bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);

    Graphics2D gs = bufferedImage.createGraphics();

    gs.setBackground(Color.white);

    gs.setColor(Color.BLACK);

    gs.clearRect(0, 0, width, height);

    int pixoff = 2;//偏移量

    byte[] d = qrData.getBytes("gb2312");

    if(d.length>0 && d.length<120){

    boolean[][] s = xQrcode.calQrcode(d);

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

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

    if(s[j][i]){

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

    }

    }

    }

    }

    gs.dispose();

    bufferedImage.flush();

    ImageIO.write(bufferedImage, "png", new File("c:/image2.png"));

    }