用JavaScript创建输出base64格式的QR码

5
我希望使用JavaScript生成QR码并输出base64字符串。
我找到了http://davidshimjs.github.io/qrcodejs/来生成QR码。 我想要的是从这个很棒的工具中获取base64字符串。

它已经是Base64编码了,只需从生成的图像中获取URL即可。 - Alexis Laporte
4个回答

3

安装 qrcode 库 https://www.npmjs.com/package/qrcode

安装命令: npm i qrcode

然后使用下面的代码:

    const QRCode = require('qrcode');

    let QRbase64 = await new Promise((resolve, reject) => {
        QRCode.toDataURL('I love tacos!!', function (err, code) {
            if (err) {
                reject(reject);
                return;
            }
            resolve(code);
        });
    });
    
    console.log(QRbase64);

2
您可以直接从生成的变量中获取Base64,例如:
/*generate QRCode*/
var qrcodjs = new QRCode("qrcode", {
    text: orderData.reference,
    width: 128,
    height: 128,
    colorDark: "#000000",
    colorLight: "#ffffff",
    correctLevel: QRCode.CorrectLevel.H
});

/*get base64*/
var imgBase64Data = qrcodjs._el.childNodes[4].currentSrc;

这种方法只能在谷歌浏览器或火狐浏览器中使用...对于IE或Safari,您需要使用以下方法:

                var imgBase64 = qrcodjs._oDrawing._elImage.currentSrc;
                if (typeof imgBase64 === "undefined")
                    imgBase64 = qrcodjs._oDrawing._elImage.href;
                if (typeof imgBase64 === "undefined")
                    imgBase64 = qrcodjs._oDrawing._elImage.src;

2

只需使用以下给出的任意一个QR JS库即可获取Base64编码。

1.qrcodejs

2.easyqrcodejs

var qrcodjs = new QRCode("qrcode", {
    text: orderData.reference,
    width: 128,
    height: 128,
    colorDark: "#000000",
    colorLight: "#ffffff",
    correctLevel: QRCode.CorrectLevel.H
});

Base64
qrcode._oDrawing._elCanvas.toDataURL("image/png")

我无法使其正常工作,有可能提供一个快速的jsfiddle吗? - Juan-man

1

也许您可以获取这段代码 d-project.googlecode.com

并替换最后一行字符串

    var img = '';
    img += '<img';
    img += '\u0020src="';
    img += 'data:image/gif;base64,';
    img += base64;
    img += '"';
    img += '\u0020width="';
    img += width;
    img += '"';
    img += '\u0020height="';
    img += height;
    img += '"';
    if (alt) {
        img += '\u0020alt="';
        img += alt;
        img += '"';
    }
    img += '/>';

    var img = 'data:image/gif;base64,' + base64;

获取base64
    var qr = qrcode(4, 'M');
    qr.addData('This is base64 string');
    qr.make();
    concole.log(qr.createImgTag());

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接