基础代码:https://blog.csdn.net/wangwenjie1997/article/details/93777976
代码修改处
1.修改白色透明度
2.修改BufferedImage对象Type
测试
import java.awt.image.BufferedImage;
public class QrCodeTest {
public static void main(String[] args) {
String text = "https://www.baidu.com/";//二维码内容
String format = "jpg"; //生成的二维码图片的格式
String logoFilePath = "F:\\test\\CodeTest\\logo.jpg";//二维码logo图片路径
String bgFilePath = "F:\\test\\CodeTest\\bg.jpg";//二维码背景图片路径
String savePath = "F:\\test\\CodeTest\\";
int width = 300; //二维码图片的宽
int height = 300; //二维码图片的高
try {
//生成二维码图片
//无logo,无背景二维码
BufferedImage qrCodeNoLogoNoBg = QrCodeUtil.encodeQrCode(text, width, height);
//无logo,无背景二维码添加背景
BufferedImage qrCodeNoLogoWithBg = QrCodeUtil.addBgImg(qrCodeNoLogoNoBg, bgFilePath, 0, 0);
QrCodeUtil.writeToFile(qrCodeNoLogoWithBg, format, savePath+"qrCodeNoLogoWithBg."+format);
//无logo,无背景二维码添加logo
BufferedImage qrCodeWithLogoNoBg = QrCodeUtil.addLogo(qrCodeNoLogoNoBg,logoFilePath);
//有logo,无背景二维码添加背景
BufferedImage qrCodeWithLogoWithBg = QrCodeUtil.addBgImg(qrCodeWithLogoNoBg, bgFilePath, 0, 0);
QrCodeUtil.writeToFile(qrCodeWithLogoWithBg, format, savePath+"qrCodeWithLogoWithBg."+format);
//二维码添加文字描述(大致实现,只限一行,没有换行)
BufferedImage qrCodeAddText = QrCodeUtil.addText(qrCodeNoLogoWithBg, "123124", 30);
QrCodeUtil.writeToFile(qrCodeAddText, format, savePath+"qrCodeAddText."+format);
//二维码解析
// BufferedImage image = ImageIO.read(new File("F:\\test\\CodeTest\\qrCodeWithLogoWithBg.jpg"));
String qrCodeContent3 = QrCodeUtil.decodeQrCode(qrCodeNoLogoWithBg);
System.out.println("解析无logo,有背景二维码的图片的内容为: " + qrCodeContent3);
//有背景,有logo
String qrCodeContent4 = QrCodeUtil.decodeQrCode(qrCodeWithLogoWithBg);
System.out.println("解析有logo,有背景二维码的图片的内容为: " + qrCodeContent4);
//无背景添加文字描述
String qrCodeContent5 = QrCodeUtil.decodeQrCode(qrCodeAddText);
System.out.println("无背景添加文字描述: " + qrCodeContent5);
} catch (Exception e) {
e.printStackTrace();
}
}
}
输出
为什么解析不出来呢,是因为生成二维码图片太花了,而我又懒的找干净的背景图片,就凑合着生成二维码 。可是识别不出来的二维码,再好看又有什么用呢[抠鼻]
二维码