QRCode生成二维码并带有logo图片

本文介绍如何在项目中生成带有logo的二维码。通过引入QRCode.jar,并使用ajax发送信息到后台,处理后调用genQrcode()方法生成二维码图片,并返回路径供前台下载。内容包括二维码生成的具体实现及在二维码中插入logo的方法。
摘要由CSDN通过智能技术生成

最近项目需要生成带logo的二维码供前台下载,在网上找了几篇文章,整合了一下。

首先需要的是QRCode.jar,我项目是直接maven依赖

<!-- Qrcode二维码 -->
<dependency> 
        <groupId>QRCode</groupId>  
        <artifactId>QRCode</artifactId>  
        <version>3.0</version> 
</dependency> 

QRCode.jar地址:http://download.csdn.net/download/qq_35042227/10137664

获取信息通过ajax发送给后台进行接收处理

function printEwm(){
   

    var LCNAME = $("input[name=LCNAME]").val();
    var BJH = $("input[name=BJH]").val();
    var SX = $("input[name=SX]").val();
    var SQR = $("input[name=SQR]").val();
    var LXDH = $("input[name=LXDH]").val();
    var SFZHM = $("input[name=SFZHM]").val();
    var SQSJ = $("input[name=SQSJ]").val();

    $.ajax({
        type : 'POST',
        async : true,
        url : '/bpm/bmfw/printEwm',
        data : {
  "lcname":LCNAME,
                "bjh":BJH,
                "sx":SX,
                "sqr":SQR,
                "lxdh":LXDH,
                "sfzhm":SFZHM,
                "sqsj":SQSJ,
        },
        success : function(addr){
   
            location.href = addr;
        },
        error : function(){
   
            console.log("失败");
        }
    });

}

处理这些信息并通过genQrcode()方法传入输出路径和信息生成二维码,返回一个路径供前台下载(项目需要。。)

@RequestMapping(value="bpm/bmfw/printEwm",method=RequestMethod.POST)
    public @ResponseBody String printEwm(@RequestParam("lcname") String lcname,@RequestParam("bjh") String bjh,@RequestParam("sx") String sx,
                @RequestParam("sqr") String sqr,@RequestParam("lxdh") String lxdh,@RequestParam("sfzhm") String sfzhm,@RequestParam("sqsj") String sqsj,
                HttpServletResponse response,HttpServletRequest request) throws UnsupportedEncodingException{

        Date date = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
        String time = sdf.format(date);
        /*System.out.println(time);*/

        SimpleDateFormat sdf2 = new SimpleDateFormat("yyyyMMddHHmmssSS");
        String picTime = sdf2.format(date);
QR Code(快速响应码)是一种矩阵式条码,常用于存储网址、联系信息等数据,方便用户扫描获取信息。如果你想生成一个带有Logo和文字的二维码,通常需要借助一些专门的工具或库,比如在编程环境中可以使用Python的`qrcode`库,JavaScript的`qrcode-generator`库,或者是在线的二维码生成器。 下面是一个简单的步骤概述: 1. **选择库**:如果你熟悉编程,可以下载并引入相应的库,如Python中安装`pip install qrcode[pil]`来支持图像处理。 2. **创建二维码**:通过API或库提供的函数,输入你要编码的数据,通常是URL加上Logo和文字描述。 3. **添加Logo**:对于Python,你可以先将Logo转换成位图,然后拼接到二维码的适当位置。 4. **添加文字**:可以在二维码旁边或者内部嵌入文本,这通常依赖于库的具体功能。 5. **保存图片**:生成完成后,将其保存为常见的图片格式,如PNG或JPEG。 **示例代码(Python)**: ```python import qrcode from PIL import Image # 创建二维码数据 data = "https://example.com" logo_path = 'logo.png' text = "欢迎扫描" # 创建二维码对象 qr = qrcode.QRCode( version=1, error_correction=qrcode.constants.ERROR_CORRECT_L, box_size=10, border=5, ) # 添加数据 qr.add_data(data) qr.make(fit=True) # 画布大小 size = (qr.size * 4, qr.size * 4) # 创建Image img = Image.new('RGB', size, (255, 255, 255)) drawing = ImageDraw.Draw(img) # 绘制二维码 qr_img = qr.make_image(fill='black', back_color='white') pos = ((size[0] - qr_img.width) // 2, (size[1] - qr_img.height) // 2) img.paste(qr_img, pos) # 添加Logo logo = Image.open(logo_path).resize((qr_img.width, qr_img.height), resample=Image.ANTIALIAS) logo_pos = (pos[0], pos[1] - logo.height // 2) img.paste(logo, logo_pos) # 添加文字 font = ImageFont.truetype("arial.ttf", 16) text_pos = (pos[0]+logo.width//2, pos[1]-20) drawing.text(text_pos, text, fill=(0, 0, 0), font=font) # 保存二维码 img.save("qrcode_with_logo.png") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值