2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ブラウザでランダムなQRコードを生成するツールを作った話

Posted at

サマリ

ブラウザで動作するランダムQRコード発行ツールを作成しました。
screenShot.png

成果物

こちらにアクセスするだけで使えます。ソースコードもOSSでどうぞ。

開発モチベーション

先日作成したQRコードのReaderのパフォーマンステストをしたいなと思い、自動でかつ、いろいろなサイズでQRコードが発行されるツールが欲しくなりました。テスト結果も上々でした↓。

使い方

  1. ツールにアクセスするだけで、OKです。すぐにQRコードが発行されると思います。
  2. 下記の設定が可能です。
    3. リフレッシュレート( 0.2 Hz - 10 Hz)
    4. Min/Max version ( Version 1 - Version 40. QRコードのサイズの事です)
    5. エラー訂正レベル (L/M/Q/H)

SWのポイント

QRコード読み取りライブラリ

こちらの記事を参考に、node-qrcode @oldairを使用することにしました。
使い方もすごく簡単です。

index.html
<script src="https://cdn.jsdelivr.net/npm/qrcode@latest/build/qrcode.min.js"></script>
<canvas id="QRCode"></canvas>
index.js
const QRCodeCanvas = document.getElementById( "QRCode" );

// generateRandomData() はランダムにデータ生成する自前関数
QRCode.toCanvas( QRCodeCanvas, generateRandomData(), {
 margin: 2,
 scale: 3,
 errorCorrectionLevel: getErrCorrectionLevel()
} );

とするだけで、canvasへQRコードを描画してくれます。

所感と考察

  • 今回の目的であるパフォーマンス測定には十分使えたので大変良かった。また、これにより読み取りツール側のバグらしき挙動も見つけた。
    • 特大サイズ(Level19以上)になってくると読めない、特定のデータサイズ(特に各レベルのデータ最大境界値付近)で生成したQRが読めないなど。
  • 図らずも、Generative artのようなものが産まれた
  • 今回のQRコード生成をきっかけにいくつかのアイディアを思いついたので、時間を見つけて検証していきたい。
2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?