import java.awt.Color; import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; import com.swetake.util.Qrcode; import java.util.Scanner; public class CreatQRCode { public static void main(String[] args) { Qrcode x = new Qrcode();//通过Qrcode这个jar包设置二维码的一些属性 x.setQrcodeErrorCorrect('M');//纠错等级为M级 x.setQrcodeEncodeMode('B');//N代表数字 A代表a-z B代表其他内容 /* * Qrcode的版本号 1-40 * 从21x21(版本1),到177x177(版本40),每一版本符号比前一版本每边增加4个模块。 * */ int version=7; x.setQrcodeVersion(version); Scanner input=new Scanner(System.in);//创建Scanner对象 System.out.print("请输入信息:"); String qrData=input.nextLine();//获取用户输入的信息,并保存在变量中 //画的长度根据版本的不同,大小不同, 下面的长度计算公式固定 int width = 67+12*(version-1); int height = 67+12*(version-1); //BufferedImage.TYPE_INT_RGB 指定图片的RGB值为int型 的 8位 BufferedImage bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); /* * Graphics2D 是java的画图工具 * */ Graphics2D gs = bufferedImage.createGraphics(); gs.setBackground(Color.pink);//设置背景为白色 gs.setColor(Color.black);//设置颜色为黑色 gs.clearRect(0, 0, width, height);//存储画板的内容 int pixOff = 2;//偏移量 /* * 往画板填充内容 */ byte[] d =qrData.getBytes(); if (d.length>0 && d.length <120){ boolean[][] s = x.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(); try { ImageIO.write(bufferedImage, "png", new File("D:/Users/geyao.png")); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }