QRコードのデコードをNode.jsで行います。
ハッカソン仙台で発生してた質問から記事化してみました。
QRコード(画像) -> URLなどのテキスト
ってイメージです。
準備
モジュールインストール
qrcode-readerとjimpを使います。
$ npm i qrcode-reader
$ npm i jimp
コード
app.js
'use strcit';
const QRReader = require('qrcode-reader');
const fs = require('fs');
const jimp = require('jimp');
async function run(IMAGE_PATH) {
const img = await jimp.read(fs.readFileSync(IMAGE_PATH));
const qr = new QRReader();
const value = await new Promise((resolve, reject) => {
qr.callback = (err, v) => err != null ? reject(err) : resolve(v);
qr.decode(img.bitmap);
});
return value.result;
}
//呼び出し
run('./qr.png').then(res => {
console.log(res);
})
実行
app.js
と同じ階層にqr.png
を設置して実行します。
$ node app.js