|
// 创建一个二维码对象
Qrcode qrcode = new Qrcode();
// 设置二维码的纠错级别,纠错级别越大,有用信息就会越少,级别有L(7%)M(15%)Q(25%)H(30%)
qrcode.setQrcodeErrorCorrect('M');
//设置二维码的编码模式,按照字节
qrcode.setQrcodeEncodeMode('B');
//设置二维码的版本号(1.21*21 2.25*25 依次加4一般用7就行)
qrcode.setQrcodeVersion(7);
//获取图片缓存流对象,相当于画板,要把二维码放到哪儿
int width=80;
int height=80;
//RGB代表创建一个具有8位RGB颜色分量图像
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_BGR);
//创建一个画笔
Graphics2D gs = image.createGraphics();
//设置二维码的背景颜色为白色。
gs.setBackground(Color.WHITE);
//设置画笔颜色为黑颜色
gs.setColor(Color.BLACK);
//绘制一个矩形
gs.fillRect(0, 0, width, height);
//把conten内容对象转化为byte[]数组
byte[] bt=new String(content.getBytes("ISO-8859-1"),"utf-8").getBytes();
//如果content中有文本信息的话
if(bt.length>0){
//返回一个二维数组
boolean[][] s = qrcode.calQrcode(bt);
for (int i = 0; i < s.length; i++) {
for (int j = 0; j < s.length; j++) {
if(s[j][i]){
//根据布尔数组填充图片的格点
gs.fillRect(j*3+2, i*3+2, 3, 3);
}//
}
}
//释放画笔工具
gs.dispose();
//将残留数据推出缓冲区
image.flush();
//D:/Bex52/model/UI2/twoDimensionalCode/QRCodedemo/process/QRImage/1.jpg
String QRPath="D:/Bex52/model/UI2/twoDimensionalCode/QRCodedemo/process/QRImage/1.jpg";
File file=new File(QRPath);
FileOutputStream out=new FileOutputStream(file);
ImageIO.write(image, "jpg", out);
}
完了会生成一个二维码,但是全黑,而且不能打开。
|
-
-
|