java生成个性化二维码

基础代码:

代码修改处

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();
        }

    }

}

输出

为什么解析不出来呢,是因为生成二维码图片太花了,而我又懒的找干净的背景图片,就凑合着生成二维码 。可是识别不出来的二维码,再好看又有什么用呢[抠鼻]

二维码

经验分享 程序员 微信小程序 职场和发展