QRコード生成ツール

URL、テキスト、Wi-Fi情報、連絡先をQRコードに変換します。誤り訂正レベルと保存サイズを選べ、現在のQRのバージョン・マス数・容量の使用率も表示されます。生成はすべてブラウザ内で行われます。

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文字です。ただし実用でそこまで入れることはまずありません。選び方の目安は次のとおりです。

「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.5mmM・0.8mmH: バージョン/マス数H・0.8mm
25文字v2 / 25×2516.5mm26.4mmv4 / 33×3332.8mm
50文字v4 / 33×3320.5mm32.8mmv6 / 41×4139.2mm
100文字v6 / 41×4124.5mm39.2mmv10 / 57×5752.0mm
200文字v10 / 57×5732.5mm52.0mmv15 / 77×7768.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つにするほうが読み取りやすくなります。端末やカメラアプリによって表示の仕方は多少異なります。

読み取れないときのチェックポイント

作ったあとの活用

よくある質問

ここで作った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文字以内を目安にしてください。

関連ツール