从javascript创建输出base64的qrCode



我想创建qr-code输出base64字符串从javascript。

我找到http://davidshimjs.github.io/qrcodejs/生成qr代码。我想要的是从这个很棒的工具中获取base64字符串

安装库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);

您可以直接从生成的变量中获取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;

这将只工作不幸的谷歌chrome或Firefox…对于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;

只需使用下面给定的任何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")

也许你可以得到这个代码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());

最新更新