java利用QRCode生成不带图片的二维码(颜色为非黑色)

一:参考上一篇文章

http://blog.csdn.net/m0_37934074/article/details/77935749

二:代码稍微有所改动

package com.test;


import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
import com.swetake.util.Qrcode;


public class ErWeiMa {
public Boolean createQRCode(String content, String imgPath) {
try {
Qrcode qrcodeHandler = new Qrcode();
qrcodeHandler.setQrcodeErrorCorrect('M');// 设置二维码排错率,可选L(7%)、M(15%)、Q(25%)、H(30%),排错率越高可存储的信息越少,但对二维码清晰度的要求越小
qrcodeHandler.setQrcodeEncodeMode('B');// N代表数字,A代表字符a-Z,B代表其他字符
qrcodeHandler.setQrcodeVersion(9);// 设置设置二维码版本,取值范围1-40,值越大尺寸越大,可存储的信息越大
byte[] contentBytes = content.getBytes("utf-8");// 设置编码格式为UTF-8
BufferedImage bufImg = new BufferedImage(168, 168, BufferedImage.TYPE_INT_RGB);
Graphics2D gs = bufImg.createGraphics();
gs.setBackground(Color.white); // 设置背景色为白色
gs.clearRect(0, 0, 168, 168);
gs.setColor(Color.green); // 设定图像颜色 为绿色
int pixoff = 2; // 设置偏移量 不设置可能导致解析出错
// 输出内容 > 二维码
if (contentBytes.length > 0 && contentBytes.length < 150) {
boolean[][] codeOut = qrcodeHandler.calQrcode(contentBytes);
for (int i = 0; i < codeOut.length; i++) {
for (int j = 0; j < codeOut.length; j++) {
if (codeOut[j][i]) {
gs.fillRect(j * 3 + pixoff, i * 3 + pixoff, 3, 3);
}
}
}
} else {
return false;
}
gs.dispose();
bufImg.flush();
File imgFile = new File(imgPath);
ImageIO.write(bufImg, "png", imgFile);


} catch (Exception e) {
e.printStackTrace();
return false;
}
return true;
}


public static void main(String[] args) {
String imgPath = "C:/Users/yjs/Desktop/new.png";// 最后生成的图片地址
String content = "胡姐姐的博客,永远敞着门!";
ErWeiMa er = new ErWeiMa();
boolean boo = er.createQRCode(content, imgPath);
System.out.println(">>>>>>>" + boo);
System.out.println(imgPath);
}


}

三:生成图片结果


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值