Skip to content

url转换成二维码并提供下载 #40

Description

@bai3

url转换成二维码并提供下载

工作需求,需要将url转换成二维码,并提供一个直接下载的按钮。

首先

使用jQuery的qrcode插件将一个url转换成一个二维码

html部分代码

<div id="invite-qrcode"></div>
<img id="qrcode-logo" src="../qrcode-logo.png" style="display:none" crossOrigin='Anonymous'>//这个用于生成二维码中心的图片

js代码

$("#invite-qrcode").qrcode({
    render: 'canvas', //生成canvas格式图片,也可以选择"table"生成div格式
    text: str, // url地址
    mode: 4,
    ecLevel: 'Q',
    mSize: 0.3,
    mPosX: 0.5,
    mPosY: 0.5,
    image: $('#qrcode-logo')[0] //中心图片
}); 

然后

使用jquery在canvas后面动态生成一个供下载点击的按钮

最后

添加按钮上的点击函数

$('.image-btn').click(function(e){
    var index = $(this).attr('num'); //按钮上的序列
    // 使用toDataURL方法将图像转换被base64编码的URL字符串
    var url = $('#invite-qrcode canvas')[index].toDataURL('image/png')
    // 将a的download属性设置为我们想要下载的图片名称,若name不存在则使用‘二维码’作为默认名称
    $(this).attr("download",'二维吗')
    // 将生成的URL设置为a.href属性
    $(this).attr("href", url) 
 })

点击下载按钮就可以下载相应的二维码图片。

补充: 二维码中心图片因为某种跨域原因,导致函数报错,可以在图片加上crossOrigin='Anonymous'这个属性。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions