二维码和背景尺寸不搭 谢谢大家

来源:6-4 使用QR Code方式生成和解析二维码

慕少1969539

2019-03-02 11:28


package QrCode;


import java.awt.Color;

import java.awt.Graphics2D;

import java.awt.image.BufferedImage;






我照着老师的代码写的,为什么老师的格式对而我的不好看https://img3.mukewang.com/5c79f8270001260401860156.jpg

大家帮忙看一下 代码哪里不对  谢谢大家 代码在下面

import java.io.File;

import java.io.IOException;



import javax.imageio.ImageIO;

import com.swetake.util.Qrcode;

public class CreatQrCode {


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

Qrcode qrcode = new Qrcode();

qrcode.setQrcodeEncodeMode('B'); //N代表字符  A代表a-z  B代表其他字符

qrcode.setQrcodeErrorCorrect('M');//纠错等级  L M Q H

qrcode.setQrcodeVersion('7'); //版本号

String qrData ="www.imooc.com";

int width = 67 + 12 * (7 - 1); //67 + 12 * (版本号 -1) 设置的是白框的背景大小

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

BufferedImage bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); //将图片加载到内存中

//Graphics2D是Graphics的拓展类,用于在Java平台上展示二维形状,文本和图像的基础类。

Graphics2D gs = bufferedImage.createGraphics();

gs.setBackground(Color.WHITE); //背景颜色设置

gs.setColor(Color.BLACK); //

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

int pixoff = 2; //偏移量  二维码相对于背景的位置

byte[] b = qrData.getBytes("gb2312"); //将需要展示的内容转变成字节格式 

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

boolean[][] s = qrcode.calQrcode(b);

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

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

if(s[i][j]) {

gs.fillRect(j * 3 + pixoff, i * 3 + pixoff, 3, 3); //设置的是二维码的大小

}

}

}

}

gs.dispose();

bufferedImage.flush();

ImageIO.write(bufferedImage, "png", new File("D:/code/qrcode.png"));

System.out.println("111111111");

}

}


写回答 关注

1回答

  • qq_慕无忌7405791
    2019-05-10 17:53:54

    你把版本号的单引号去了试试

Java生成二维码

二维码无处不在,自己动手用Java生成二维码,三种生成方式任你选

84564 学习 · 224 问题

查看课程

相似问题