QRコードを一括生成する
1行に1件ずつ貼り付けると、その数だけQRコードをまとめて作ります。 CSVを貼れば、どの列をQRにしてどの列をファイル名にするかを選べます。 生成も画像化もブラウザの中だけで行うので、 社内のURLや個人名を含む一覧を貼っても外に出ません。
QRコードの誤り訂正レベルの選び方
QRコードは、一部が汚れたり欠けたりしても読めるように、 あらかじめ復元用のデータを埋め込んでいます。 その量を4段階から選べるのが誤り訂正レベルです。
| レベル | 復元できる割合 | 向いている場面 |
|---|---|---|
| L | 約7% | 画面表示。汚れない。長いURLを小さく収めたい |
| M | 約15% | 既定。紙に印刷する一般的な用途 |
| Q | 約25% | 屋外の掲示、伝票、擦れる可能性がある場所 |
| H | 約30% | ラベルが剥がれる、汚れる、上に何か重なる |
高いレベルほど良い、ではありません。 復元用のデータが増えるぶん、同じ情報を入れるのに大きなQRコードが必要になります。 大きくなると1モジュール(最小の四角)が小さくなり、 印刷の解像度やカメラの性能が足りないとかえって読めなくなります。
同じ40桁の数字を入れたときの型番(大きさ)の違いです。
| レベル | 型番 | 1辺のモジュール数 |
|---|---|---|
| L | 1 | 21 |
| M | 2 | 25 |
| Q | 2 | 25 |
| H | 3 | 29 |
迷ったら M のままで構いません。 紙に印刷して手に取って読む、という普通の使い方はこれで足ります。 H を選ぶべきなのは、QRコードの上に何かが重なると分かっている場合です。 中央にロゴを置く運用が成り立つのは、Hの復元力を前提にしているからです (このツールはロゴの埋め込みには対応していません)。
QRコードに入れられる文字数
入る量は型番(1〜40の大きさ)と誤り訂正レベル、 そしてモード(内容の種類)で決まります。 このツールは内容から自動で最も効率のよいモードを選び、 収まる中でいちばん小さい型番を使います。
| 型番 | L | M | Q | H |
|---|---|---|---|---|
| 1(21モジュール) | 41 / 25 / 17 | 34 / 20 / 14 | 27 / 16 / 11 | 17 / 10 / 7 |
| 5(37モジュール) | 255 / 154 / 106 | 202 / 122 / 84 | 144 / 87 / 60 | 106 / 64 / 44 |
| 10(57モジュール) | 652 / 395 / 271 | 513 / 311 / 213 | 364 / 221 / 151 | 288 / 174 / 119 |
| 40(177モジュール) | 7089 / 4296 / 2953 | 5596 / 3391 / 2331 | 3993 / 2420 / 1663 | 3057 / 1852 / 1273 |
モードが変わると必要な大きさが変わります。 数字モードは1文字あたり約3.3ビット、英数字モードは5.5ビット、 バイトモードは8ビット(日本語は UTF-8 で1文字3バイト=24ビット)を使います。
たとえば 0123456789 を4回つないだ40桁の数字は、
レベルLなら数字モードで型番1に収まります。
ところが同じ40文字でも小文字が混ざるとバイトモードになり、
型番3が必要になります。
内容を数字だけ、あるいは英大文字だけに揃えると、QRコードは小さくできます。
印刷するときの注意
- 余白を削らない。 QRコードの周囲には4モジュール分の白い余白(クワイエットゾーン)が要ります。 規格の要求で、これがないと読み取り率が落ちます。 このツールが出す画像には最初から含めてあるので、 切り詰めたりトリミングしたりしないでください
- 小さくしすぎない。 目安として1モジュールが0.4mm以上になる大きさにします。 型番が大きいほど1モジュールは小さくなるので、 情報量が多いQRコードほど大きく印刷する必要があります
- 白黒を反転しない。 暗い背景に明るいQRコードは、読み取り機によっては認識されません
- コントラストを保つ。 薄い灰色や、背景に柄があると読めなくなります
- 印刷にはSVGを使う。 PNGは選んだ画素数で固定されるため、大きく印刷すると輪郭がぼけます。 SVGは拡大しても輪郭が保たれます
このツールの制限
漢字モードに対応していません
QRコードの規格には、日本語を効率よく入れるための漢字モードがあります。 このツールは実装していません。 漢字モードは Shift_JIS への変換が必要で、変換の環境差という別の問題を抱えるためです。
日本語はバイトモード(UTF-8)で表します。 読み取りには支障ありませんが、容量の効率は落ちます。 漢字モードは1文字13ビットですが、UTF-8のバイトモードでは1文字24ビット使います。
| 文字数 | UTF-8のバイト数 | このツール |
|---|---|---|
| 漢字4文字 | 12バイト | 型番1 |
| 漢字8文字 | 24バイト | 型番2 |
| 漢字10文字 | 30バイト | 型番3 |
| 漢字20文字 | 60バイト | 型番4 |
型番1・レベルMに入るのは14バイト、つまり日本語なら4文字です。 漢字モードがあれば同じ大きさに8文字ほど入ります。 日本語を多く含む場合、他のツールより一回り大きなQRコードになることがあります。
そのほかの制限
- 一度に500件まで。ブラウザの処理時間とメモリのためです
- 読み取りはできません。生成のみです
- 色は黒と白だけです。可読性のため変更できないようにしています
- ロゴの埋め込みには対応していません
- マイクロQR、rMQRには対応していません
まとめてダウンロードについて
「まとめてダウンロード」はZIPファイルを作ります。 外部のライブラリを使わない方針なので、ZIPの組み立ても自前で行っています。 圧縮はしていません(stored形式)。 PNGはすでに圧縮済みで、SVGも小さいため、 圧縮してもほとんど縮まないからです。 Windowsのエクスプローラ、macOSのFinder、 Linuxの標準的な展開ツールでそのまま開けます。
このツールの使い方
- 1行に1件ずつ貼り付ける。CSVを貼ると列を選ぶ欄が出ます
- 誤り訂正レベル、画像の大きさ、保存する形式を選ぶ
- 「QRコードを作る」を押す。件数が多いときは進捗が出ます
- 1件ずつ保存するか、「まとめてダウンロード」でZIPにします
CSVでファイル名の列を指定した場合、
ファイル名に使えない文字(/ \ : * ? " < > |)は
_ に置き換えます。
同じ名前が重なったときは連番を足して区別します。
列を指定しない場合は qr-001.png のような連番になります。
規格と出典
このツールは外部のライブラリを使わず、QRコードの生成を自前で実装しています。 容量表、誤り訂正ブロックの構成、位置合わせパターンの座標、 生成多項式、マスクの評価規則は、いずれも次の規格に基づいています。
- JIS X 0510 — 二次元コードシンボル QRコード 基本仕様
- ISO/IEC 18004 — Information technology — Automatic identification and data capture techniques — QR Code bar code symbology specification
QRコードは株式会社デンソーウェーブの登録商標です。
うまくいかない場合
- 「入りきらず作れませんでした」と出る — 1件あたりの文字数が上限を超えています。 誤り訂正レベルを下げるか、内容を短くしてください。 レベルLのバイトモードでも2953文字が上限です
- 読み取れない — 余白を削っていないか、小さすぎないか、コントラストが足りているかを確認してください。 印刷ならSVGを使うと輪郭がはっきりします
- CSVの列がうまく選べない — すべての行の列数が揃っていて、2列以上あるときだけCSVとして扱います。 揃っていない場合は1行1件として読み取ります
- 件数が多くて時間がかかる — 短いURLなら500件でも1秒かかりません。 1件あたりの文字数が多いと時間が延びます。分けて実行してください