ロゴ入り QR コード生成を Cloud Functions で

ロゴ入り QR コード生成を Cloud Functions で #

QR コード生成サービスとかたくさんあるし、なんなら大昔から自分で設置したり してるわけで、なんで今さらって

  • 今風にロゴいれて
  • 今風にサーバレスで
    n
    やってみたかったのです。

色々試した結果、ライブラリは @ushelp/EasyQRCodeJS-NodeJS を利用させていただこうかと。
Node.js + Cloud Functions は、大変お手軽でいいですね。

2021/11/29 追記: png 出力するサンプルも追加

'use strict';

const QRCode = require('easyqrcodejs-nodejs');

exports.generate = (req, res) => {
    let txt = req.query.q || req.body.q || 'https://d3.haro.jp/';

    let imageString = 'data:image/png;base64,iVBOR.....';
    let qr = new QRCode({
        text: txt,
        correctLevel : QRCode.CorrectLevel.H,
        logo: imageString
    });

    //res.status(200).set('Content-Type', 'text/plain').send(txt);
    qr.toSVGText().then( data => {
        res.status(200).set('Content-Type', 'image/svg+xml').send(data);
    });
};
exports.png = (req, res) => {
    let txt = req.query.q || req.body.q || 'https://d3.haro.jp/';
    let imageString = 'data:image/png;base64,iVBOR.....';

    let qr = new QRCode({
        text: txt,
        correctLevel : QRCode.CorrectLevel.H,
        width: 300,
        height: 300,
        logo: imageString,
        logoWidth: 90,
        logoHeight: 90
    });

    qr.toStream().then( data => {
        data.pipe(res);
    });
};

qr

See Also

Copyright © 髭。/ Hugo + hugo-book