QRコードはどうやって情報を持っているのか
QRコードは1994年にデンソーウェーブが開発した2次元コードで、モジュールと呼ばれる正方形のマスの白黒の並びでデータを表します。 3つの角にある大きな四角(位置検出パターン)が向きと大きさを教えてくれるので、どの角度から読み取っても認識されます。 データ領域にはリード・ソロモン符号による誤り訂正の情報も入っており、汚れや傷、一部の隠れがあっても元のデータを復元できます。 文字は数字のみ、英数字(数字・大文字・スペース・$ % * + - . / :の45種)、バイトといったモードで詰められます。 小文字を含むURLや日本語はバイトモード(UTF-8)になり、ひらがな・カタカナ・漢字は1文字あたり原則3バイトを使います。
QRコードのサイズは自由に決められず、バージョン1(21×21マス)から40(177×177マス)までの40段階です。バージョンが1上がるごとに1辺が4マス増えます(1辺のマス数 = 17 + 4 × バージョン)。 内容が長いほど、また誤り訂正レベルが高いほど、バージョンが上がってマスは細かくなります。 上のプレビューの下に、入力内容に応じたバージョン・マス数・バイト数が表示されるので、短い内容ほどマスが粗く読み取りやすいことを確かめられます。
このツールはどこでQRコードを作るのか
QRコードは、このページに組み込まれたJavaScriptのライブラリがお使いのブラウザ内で描画します。マス目の配置をブラウザが計算してcanvasに描き、ダウンロードするPNGもそのcanvasから書き出しています。 URL・Wi-Fiのパスワード・電話番号などの入力内容を、QR生成用の外部サービスや当サイトのサーバーへ送って画像を作ることはありません。 生成されるのは内容をそのまま図形にした静的QRなので、有効期限がなく、途中に計測用のリダイレクトも挟まりません。サイトが閉じても作ったコード自体は読み取れます。 その代わり、印刷後に内容を変えることやスキャン数の集計はできません。リンク先を後から差し替えたい、読み取り回数を知りたいという場合は、間にリダイレクトを置く動的QRのサービスが別途必要です。
誤り訂正レベルの選び方(L・M・Q・H)
誤り訂正レベルは4段階で、復元できる損傷の割合はおおよそ7%・15%・25%・30%です。高いほど汚れに強い反面、冗長部分が増えるため同じ内容でもバージョンが上がり、1マスが小さくなります。 下の表は、バージョン40に1バイト文字(英数字のURLなど)を詰めたときの最大文字数で、このページのビルド時に実際のライブラリで計算した値です。
| レベル | 復元力の目安 | 最大文字数(1バイト文字) | 最大文字数(3バイト文字・日本語など) |
|---|---|---|---|
| L(低) | 約7% | 2,953字 | 984字 |
| M(中) | 約15% | 2,331字 | 777字 |
| Q(やや高) | 約25% | 1,663字 | 554字 |
| H(高) | 約30% | 1,273字 | 424字 |
数字だけならもっと効率よく詰められ、規格上はレベルLで最大7,089桁、英数字モードなら4,296文字です。ただし実用でそこまで入れることはまずありません。選び方の目安は次のとおりです。
- M(初期値): 画面表示やきれいな印刷物に載せるURL・Wi-Fi・連絡先。ほとんどの用途はこれで足ります。
- L: 内容が長く、画面表示など傷みにくい場面。マスが減って読みやすくなります。
- Q・H: ステッカー、梱包、看板など擦れや汚れが想定される場合や、中央に小さなロゴを置く場合。ロゴは復元できる範囲に収め、3つの角の四角は隠さず、必ず複数の実機で読み取りテストをしてください。
「Hがいちばん安全」というのはよくある誤解です。印刷サイズが同じなら、Hは同じURLでもMよりマスが小さくなるため、名刺のような小さな面に長いURLをHで入れるとかえって読みにくくなることがあります。 破損の心配が少ないなら、URLを短くしてMのまま使うほうが安定します。
印刷サイズの目安
読み取りやすさは全体の大きさより、1マスの実寸と周囲の余白(クワイエットゾーン)で決まります。規格では四方に4マス以上の余白が必要なので、横幅は(マス数 + 8) × 1マスの大きさで求められ、このツールが保存するPNGにも4マスの余白を付けています。 一般に「読み取り距離のおよそ10分の1がQRの1辺」と言われ、普通紙への印刷では1マス0.5mm前後が下限、0.8mm以上なら余裕があるとされます(あくまで経験則で、プリンタ・紙・照明によって変わります)。 次の表は、URLの長さ別にバージョンと余白込みの横幅を計算したものです。
| URLの長さ | M: バージョン/マス数 | M・0.5mm | M・0.8mm | H: バージョン/マス数 | H・0.8mm |
|---|---|---|---|---|---|
| 25文字 | v2 / 25×25 | 16.5mm | 26.4mm | v4 / 33×33 | 32.8mm |
| 50文字 | v4 / 33×33 | 20.5mm | 32.8mm | v6 / 41×41 | 39.2mm |
| 100文字 | v6 / 41×41 | 24.5mm | 39.2mm | v10 / 57×57 | 52.0mm |
| 200文字 | v10 / 57×57 | 32.5mm | 52.0mm | v15 / 77×77 | 68.0mm |
計算例1: 25文字のURLをレベルMで作るとバージョン2、25×25マスです。1マス0.8mmなら(25 + 8) × 0.8 = 26.4mm四方で、名刺の隅にも収まります。
計算例2: 200文字のURLをレベルMで作るとバージョン10、57×57マスで、同じ0.8mmなら(57 + 8) × 0.8 = 52.0mmが必要です。URLを50文字に短縮するとバージョン4、32.8mmまで小さくなります。
計算例3: 100文字のURLはレベルMでバージョン6(41×41)、0.8mmで39.2mmですが、同じURLをレベルHにするとバージョン10(57×57)で52.0mmになります。強さの代わりに大きさが必要になる、ということです。
印刷用には1024px以上で保存してください。小さなPNGをレイアウトソフトで拡大するとマスの境目がにじみますが、大きな画像を縮小して使うぶんには問題ありません。
種類ごとの使い方と注意点
URL・テキスト
文字数が少ないほどマスが粗くなり読み取りやすくなります。不要な計測パラメータは外しましょう。https://から入力してください。スキームがないと、リンクとして開く提案をしないスキャナもあります(その場合はツールが注意を表示します)。 印刷物に載せるなら、自分で管理する短いURLから最終ページへ転送する形にしておくと、リンク先が変わっても刷り直さずに済みます。印刷前にはiPhoneとAndroidの両方で試し読みしてください。
Wi-Fi
内容はWIFI:S:ネットワーク名;T:方式;P:パスワード;;という広く使われている形式です。方式はWPA(WPA2・WPA3でも一般にこの値)、WEP、暗号なしのnopassで、SSIDを隠している場合はH:true;を加えます。 名前やパスワードに\ ; , : "が含まれる場合は、その文字の前にバックスラッシュを付ける決まりで、たとえばCafe;GuestはCafe\;Guestと書きます。このツールは自動でエスケープします。 目安として、WIFI:S:HomeWiFi;T:WPA;P:correct-horse-9;;(41文字)は、レベルL・Mでバージョン3(29×29)、Qでバージョン4、Hでバージョン5になります。 パスワードは平文のままコードに入るため、コードを見た人は誰でも読み取れます。来客用のネットワークを別に用意し、公共の場や公開の場には慎重に掲示してください。
連絡先(vCard)
vCard 3.0形式(BEGIN:VCARD〜END:VCARD)で名前・会社・電話・メール・WebサイトをQRにします。読み取ると連絡先に追加する画面が出るので名刺に便利です。 項目を増やすほどバージョンが上がってマスが細かくなるため、必要な項目だけにするか、詳細をまとめたページへのリンク1つにするほうが読み取りやすくなります。端末やカメラアプリによって表示の仕方は多少異なります。
読み取れないときのチェックポイント
- 周囲の白い余白(4マス)が切れていないか、背景との区別がつくかを確認します。
- 濃いマスと明るい背景のコントラストを保ちます。白黒反転したコードは読めないスキャナがあり、薄い色やグラデーションは認識率を大きく下げます。
- 1マスが小さすぎないかを見ます。内容を減らす、レベルを下げる、大きく印刷する、のどれかで改善します。
- 曲面・光沢面・折り目の上への印刷は避けます。
- モニターに表示したコードを撮るときは、距離や明るさを変えてみてください。画面のちらつきで失敗することがあります。
作ったあとの活用
- 本番の枚数を刷る前に、実際の大きさで試し刷りし、人が立つ距離から読み取れるか確認します。
- スライドや文書には512px、ポスターや横断幕には1024px以上が目安です。
- QRの隣に短いURLを文字でも載せておくと、読み取れない人も手入力でアクセスできます。
- Wi-Fi用のパスワードは、先にパスワード生成ツールで作ってからここで変換すると手間がありません。
よくある質問
ここで作ったQRコードは期限切れになりますか?
いいえ。入力した内容をそのまま画像にした静的QRなので、期限はありません。ただし、QRに入っているURLのページがなくなったり、Wi-Fiのパスワードを変更したりすれば、当然そのコードは使えなくなります。
Wi-Fiのパスワードはどこかに送信されますか?
コードはブラウザ内で生成され、PNGもページ上のcanvasから書き出すため、QR生成サービスへ送ることはありません。ただし、完成したコードの中にはパスワードが平文で入っているので、そのコードを読み取れる人には内容が分かります。
中央にロゴを入れてもよいですか?
誤り訂正によって一部を隠しても読めますが、隠す面積は復元できる範囲(レベルHでも約30%)に収め、3つの角の四角は隠さないでください。実際にはロゴを全体の1割程度までにして、レベルQかHで作り、複数の端末で試してください。
日本語を入れるとコードが細かくなるのはなぜですか?
日本語はUTF-8のバイト列として保存され、1文字に約3バイトかかるため、同じ文字数の英数字より多くのマスが必要です。たとえば「こんにちは世界」の7文字は21バイトで、バージョン2(レベルM)になります。文章を直接入れるより、短い英数字のURLで文章を載せたページへ案内するほうが確実に読み取れます。
1つのQRコードにはどれくらい入りますか?
最大のバージョン40で、1バイト文字ならレベルLで約2,953文字、Hで約1,273文字です(表を参照)。上限に近いほどマスが極端に細かくなり読みにくいので、実用ではURL100文字以内を目安にしてください。
関連ツール
- パスワード生成ツール - Wi-Fi用の強いパスワードを作る
- URLエンコーダー/デコーダー - 特殊文字をパーセントエンコードしてからコード化
- Base64エンコーダー/デコーダー - テキストの別表現への変換
- UUID生成ツール - 個別リンク用の一意な識別子