zoukankan      html  css  js  c++  java
  • JAVA生成带Logo的二维码

    1、下载生成二维码所需要的jar包qrcode.jar;

    2、直接上生成二维码的java代码

    //需要导入的包

    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;

    /**
         * 生成二维码(QRCode)图片
         * @param content 二维码图片的内容
         * @param imgPath 生成二维码图片完整的路径
         * @param ccbpath  二维码图片中间的logo路径
         */  
        public static int createQRCode(String content, String imgPath,String ccbPath) {  
            try {  
                Qrcode qrcodeHandler = new Qrcode();  
                qrcodeHandler.setQrcodeErrorCorrect('M');  
                qrcodeHandler.setQrcodeEncodeMode('B');  
                qrcodeHandler.setQrcodeVersion(7);  
     
                // System.out.println(content);  
                byte[] contentBytes = content.getBytes("gb2312");  
                //构造一个BufferedImage对象 设置宽、高
                BufferedImage bufImg = new BufferedImage(140, 140, BufferedImage.TYPE_INT_RGB);  
                Graphics2D gs = bufImg.createGraphics();  
     
                gs.setBackground(Color.WHITE);  
                gs.clearRect(0, 0, 140, 140);  
     
                // 设定图像颜色 > BLACK  
                gs.setColor(Color.BLACK);  
     
                // 设置偏移量 不设置可能导致解析出错  
                int pixoff = 2;  
                // 输出内容 > 二维码  
                if (contentBytes.length > 0 && contentBytes.length < 120) {  
                    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 {  
                    System.err.println("QRCode content bytes length = "  
                            + contentBytes.length + " not in [ 0,120 ]. ");  
                    return -1;
                }  
                Image img = ImageIO.read(new File(ccbPath));//实例化一个Image对象。
                gs.drawImage(img, 55, 55, 30, 30, null);
                gs.dispose();  
                bufImg.flush();  
     
                // 生成二维码QRCode图片  
                File imgFile = new File(imgPath);  
                ImageIO.write(bufImg, "png", imgFile);  
     
            }catch (Exception e){  
                e.printStackTrace();  
                return -100;
            }  
            return 0;
        }

  • 相关阅读:
    Constants and Variables
    随想
    C#基础篇之语言和框架介绍
    Python基础19 实例方法 类方法 静态方法 私有变量 私有方法 属性
    Python基础18 实例变量 类变量 构造方法
    Python基础17 嵌套函数 函数类型和Lambda表达式 三大基础函数 filter() map() reduce()
    Python基础16 函数返回值 作用区域 生成器
    Python基础11 List插入,删除,替换和其他常用方法 insert() remove() pop() reverse() copy() clear() index() count()
    Python基础15 函数的定义 使用关键字参数调用 参数默认值 可变参数
    Python基础14 字典的创建修改访问和遍历 popitem() keys() values() items()
  • 原文地址:https://www.cnblogs.com/wuxiang/p/3360605.html
Copyright © 2011-2022 走看看