Wi-Fi・連絡先・リンクのQRコードを作成し、印刷前に確認
リダイレクト、アカウント、スキャン数の記録がない静的コードです。内容はシンボル内にあり、ダウンロード後にこのサイトが関与することはありません。エンコード前に正確なペイロードを確認でき、ダウンロードが有効になる前に両方のファイルを再びデコードします。
- 1 · 入力
- 2 · 確認
- 3 · ダウンロード
エンコードされる正確な内容
| レベル | 生成されるシンボル |
|---|
検証済み — 2つのファイルが確認済み内容に復号されました
静的コードを選ぶということ
QRコードには2種類あり、その違いは見た目だけのものではありません。静的コードには、URL、Wi-Fiレコード、連絡先カードといった内容そのものが入ります。動的コードには、プロバイダーに属する短いリンクが入り、プロバイダーが現在指定している場所へリダイレクトします。
動的コードには、印刷後に宛先を変更できることと、すべてのスキャンを数えられることという2つの利点があります。その一方で、販売ページではほとんど明示されない負担もあります。すべてのスキャンが第三者を経由し、その第三者に見られ、コードを使い続けられるかどうかも決められます。プロバイダーが料金体系を変更したり、製品を終了したり、事業をやめたりすると、窓に貼ったステッカーは機能しなくなり、対処する方法はありません。これは繰り返し、大規模に起きています。
ここで生成したコードは、ダウンロードした時点で完成しています。リダイレクトも、カウンターも、アカウントも、関係もありません。appvau.ltは1回のスキャンにも関与しません。それでも壊れる可能性があるのは、コードのリンク先です。リンクは404になり、パスワードは変更され、電話番号は再割り当てされます。この区別のどちら側にある生成サービスでも、その点は解決できません。
エンコード前にペイロードを表示する理由
QRシンボルは、作成した本人には中身が見えません。パターンを見ても、URLのスキームが抜けていること、ラベルからコピーしたSSIDの末尾に空白が入っていること、電話番号に国番号がないことは分かりません。問題が発見されるのはいつも後で、すでに印刷されたものに誰かが携帯電話をかざしたときです。
そこでこのツールは、まず正確な正規化文字列を表示します。シンボルに入る文字列であり、スキャナーが解析する形式のものです。ゲストネットワークのWi-Fiレコードは次のようになります。
WIFI:T:WPA;S:Studio Guest;P:weeknight-parcel-7;;
この形式は、このサイトが考案した規則ではありません。iOSはバージョン11以降、Androidは10以降、この形式を読み取っています。内容を見れば人が間違いを見つけられるので、これは詳細設定の背後に隠すものではなく、手順の一部になっています。
警告が表示されるのもこの段階です。Wi-Fiレコードでは毎回警告が出ます。パスワードはシンボル内に平文で入り、部屋の反対側から撮影したコードの写真でも復元できるためです。国番号のない電話番号にも警告が出ます。スキームのないアドレスにも警告が出て、黙って処理するのではなく、目の前で修正されます。
検証の内容と、検証で証明できないこと
エンコード後、ツールはPNGを生成し、SVGをラスタライズして、生成に使ったエンコーダーの情報を持たないデコーダーで両方を読み取ります。カメラと同じようにシンボルを特定します。白黒のしきい値処理を行い、インクを見つけ、ファインダーパターンからモジュールの間隔を測り、形式情報を読み取り、マスクを戻し、データブロックをデインターリーブします。その後、復元したデータからReed-Solomonの誤り訂正コードワードを再計算し、シンボル内のものとバイト単位で一致することを要求します。
最後の手順は、「デコードできた」より強い確認です。データだけでなく冗長性も正しいことを確認するため、擦れたり一部が隠れたりしたコピーを読み取る場合にも、選択したレベルが約束する余裕が残ります。両方のファイルが合格した場合に限り、どちらのダウンロードも有効になります。
これは、ファイルが正しいことを証明します。あなたのカメラが、実際の印刷サイズで、使用する表面上で、実際の照明のもとで読み取れることまでは証明しません。この側でそれを確定することはできません。正直な指示は昔から変わりません。500枚を注文する前に、実際のサイズで印刷し、使う予定の携帯電話で読み取ってください。
この確認に意味がある理由も、明記しておく価値があります。このツールの構築中、レベルHの誤り訂正ブロック表に誤りが見つかりました。これを放置すると、構造上は有効でありながら、最高の冗長性設定では完全にデコードできないシンボルが生成されるところでした。画像を見ても問題は分かりません。デコーダーが最初のテスト実行で見つけました。
誤り訂正は中央を覆う許可ではない
すべてのQRシンボルには、読み取り側が損傷したデータを復元できるよう、冗長なコードワードが含まれています。4つのレベルで復元できる割合は、およそLで~7%, Mで~15%, Qで~25%, Hで~30%です。
この割合を理由に、デザイナーはコードの中央にロゴを置きます。しかしそれは、機能であるかのように見せた悪い習慣です。冗長性は、印刷後に起きる損傷、擦れ、折れ、コーヒーの輪、暗い照明に耐えるためにあります。装飾のために先に使えば、コードは余裕のない状態で始まります。そして最も余裕を必要とするのは、実際に扱われるコードです。
高いレベルでは、同じ内容でもシンボルがより密になります。冗長性を入れる場所が必要だからです。バージョン1のシンボルは、レベルLでは17バイト、レベルHでは7バイトを、同じ21×21のグリッドに格納します。ペイロードは半分未満です。密度が高いほど、読み取りやすくするには物理的に大きく印刷する必要があります。そのため、「安全のためHを使う」と、かえって読み取りにくいコードになることがよくあります。
通常はレベルMが適切な初期値です。コードを小さく印刷する場合、曲面に置く場合、触れられる場所に置く場合は、QまたはHを選んでください。
| シンボル | レベルL(~7%) | レベルM(~15%) | レベルQ(~25%) | レベルH(~30%) |
|---|---|---|---|---|
| バージョン1 — 21モジュール | 17 | 14 | 11 | 7 |
| バージョン2 — 25モジュール | 32 | 26 | 20 | 14 |
| バージョン5 — 37モジュール | 106 | 84 | 60 | 44 |
| バージョン10 — 57モジュール | 271 | 213 | 151 | 119 |
| バージョン20 — 97モジュール | 858 | 666 | 482 | 382 |
| バージョン40 — 177モジュール | 2,953 | 2,331 | 1,663 | 1,273 |
バージョン1から40までの全バージョンについて、数値・英数字の容量と、実例付きのペイロード形式を含む表全体を、qr.jsonのJSONとして公開しています。これを手入力ではなく生成しているのには理由があります。ブロック構造を2回目に書き写すことが、間違った数字が残るまさにその原因だからです。
PNGとSVG、そしてピクセル間隔が重要な理由
どちらも生成され、どちらも無料で、透かしもありません。印刷したりデザインファイルに入れたりするならSVGです。整数のビューボックスと単一のパスを持つベクターなので、ぼやけずに名刺からポスターまで拡大でき、Illustrator、Figma、Inkscape、ページレイアウトソフトで正しく開けます。文書、スライド、メッセージ、ウェブページで使うならPNGです。固定されたラスタ画像のほうが配置しやすいためです。
PNGのサイズは、すべてのモジュールがピクセル単位の整数になるよう切り下げています。細かい話に聞こえますが、重要です。29モジュールのシンボルをちょうど500ピクセルにすると、1モジュールあたり17.24ピクセルになり、4分の1ピクセルの余りがすべてのモジュール境界に灰色の縁として現れます。カメラはほとんどの場合これに対応します。常に読み取れないより悪いのは、重要な1枚の印刷で失敗することです。
シンボルの周囲にある4モジュールのクワイエットゾーンは、余白ではなくシンボルの一部です。これはISO/IEC 18004の要件であり、手作業でトリミングしたコードが読み取れない最大の共通原因です。切り取らないでください。色付きのブロックにコードをぴったり接触させないでください。レイアウトツールでインクの範囲まで切り詰めないでください。
エンコード、文字セット、ECIについて
エンコーダーは、内容に許される最も効率のよいモードを選びます。数字にはnumeric、制限された大文字の集合にはalphanumeric、それ以外にはbyteモードを使います。選択したシンボルについて、各レベルの容量表を生成前に表示します。
ペイロードにASCII以外の文字が含まれる場合、たとえばアクセント付きのネットワーク名、キリル文字の名前、日本語などでは、エンコーダーがUTF-8を宣言するECIヘッダーを書き込みます。これは正しい宣言ですが、古いスキャナーが最も扱いにくい部分でもあります。そのため、実際に必要なバイトがある場合だけ追加し、追加されたことをレシートに記載します。純粋なASCIIのペイロードにはECIヘッダーがなく、これまでに作られたどのリーダーでも同じように動作します。
このページの情報がネットワークに届くことはありません。エンコーダー、レンダラー、結果を確認するデコーダーはすべて、このタブで動作するJavaScriptです。/js/tools/以下のモジュールにはリクエストを送るコードが一切ありません。ページを読み込んだ後に接続を切断しても、すべての機能は動作します。Wi-Fiパスワードを渡そうとしているツールなら、信じるだけでなく確認すべき性質です。
できないこと
後から判明するのではなく、ここで示す制限
- 静的コードは、印刷した後に編集できません。内容そのものがシンボルなので、変更するには新しいコードを作成する必要があります。
- Wi-Fi QRコードにはパスワードが平文で保存されます。コードを見たり撮影したりできる人は、部屋の反対側からでも読み取れます。
- ローカル検証で確認できるのは、ファイルをデコードできることです。特定のカメラが、特定の印刷サイズで、特定の表面上のコードを読み取れるとは証明できません。実際の印刷物でテストしてください。
- 誤り訂正は損傷に備える冗長性であり、中央をロゴで覆う許可ではありません。覆われたモジュールは失われたモジュールです。
確認される内容: PNGとSVGはどちらもラスタライズされ、結果を独立したデコーダーが読み取ります。このデコーダーはReed-Solomonのコードワードを再計算します。どちらかが確認したペイロードを返さなければ、何も提供されません。
よくある質問
-
01 Wi-Fi QRコードはどう作成しますか?
Wi-Fiの種類を選び、ネットワーク名を実際の表示どおり正確に入力し、現在の家庭やオフィスのネットワークならWPAを選び、パスワードを入力します。このツールは標準のWIFI:レコードを作成し、エンコード前に全文を表示してから、完成した画像を再びデコードして確認します。iPhoneとAndroidのカメラは、iOS 11とAndroid 10以降、この形式を読み取っています。 -
02 Wi-Fi QRコードを印刷して表示しても安全ですか?
公開情報として扱ってください。パスワードはシンボル内に平文で入り、暗号化されません。カフェで離れた場所からコードを撮影するだけでも復元できます。壁に掲示するなら、ゲストをゲストネットワークに接続し、メインネットワークの情報を印刷物に載せないでください。 -
03 QRコードに有効期限はありますか?
静的コードにはありません。内容はシンボル内にあり、ダウンロード後にこのサイトが関与することはありません。無効にするリダイレクトも、期限が切れるアカウントもありません。期限切れになる可能性があるのは、コードのリンク先です。リンクは404になり、パスワードは変更され、電話番号は再割り当てされることがあります。サービス独自のリダイレクトを途中に置くサービスのコードは、そのサービスが決めた時点で期限切れになります。 -
04 PNGとSVGのどちらをダウンロードすべきですか?
印刷したりデザインファイルに入れたりするならSVGです。ベクターなので、ぼやけずに名刺からポスターまで拡大でき、Illustrator、Figma、Inkscapeで正しく開けます。文書、スライド、メッセージ、ウェブページで使うならPNGです。固定されたラスタ画像のほうが配置しやすいためです。 -
05 誤り訂正レベルで何が変わりますか?
保存される冗長性の量が変わります。レベルLはシンボルの約7%、Mは約15%、Qは25%、Hは30%を復元します。同じ内容では、高いレベルほどシンボルが密になり、読み取り可能にするにはより大きく印刷する必要があります。通常はMが適切な初期値です。小さく印刷する場合や、擦れる場所に置く場合だけ、より高いレベルを選んでください。 -
06 連絡先カードをQRコードに入れるにはどうすればよいですか?
連絡先の種類を選び、名前と、該当する組織、役職、電話、メール、ウェブサイトを入力します。このツールはvCard 4.0レコードを書き込みます。これにより、携帯電話のカメラはページを開くのではなく、連絡先として保存する選択肢を表示します。文字は短くしてください。1文字増えるごとにモジュールが増え、密度の高いシンボルにはより大きな印刷が必要です。 -
07 スキャンを追跡しますか?
いいえ。リダイレクトもカウンターも、コードの背後にあるサービスもありません。スキャン分析が必要なら、プロバイダーの動的コードが必要です。ただしその場合、すべてのスキャンがプロバイダーを経由して宛先に届き、コードを使い続けられるかどうかもプロバイダーが管理することになります。 -
08 URLやWi-Fiパスワードはどこかに送信されますか?
いいえ。結果を確認するエンコーダー、レンダラー、デコーダーはすべて、このタブで動作するJavaScriptです。ページにアップロード用のエンドポイントはなく、読み込み後にネットワークを切断しても動作します。 -
09 生成前にペイロードを表示するのはなぜですか?
QRシンボルは、作成した本人には中身が見えないからです。パターンを見ても、URLのスキームが抜けていることや、パスワードの末尾に空白があることは分かりません。そうした間違いは、印刷した後になって初めて発見されます。確認手順は、人が間違いを見つけられる唯一のタイミングです。 -
10 QRコードにはどれくらいのテキストを入れられますか?
最大のシンボルである、誤り訂正レベルLのバージョン40には、任意のテキストを2,953バイトまで格納できます。ただし、そのシンボルは横177モジュールあり、読み取るには大きく、きれいに印刷する必要があります。実際には数百文字未満に抑え、それ以上必要ならリンクをエンコードしてください。 -
11 PDF用のQRコードを作成できますか?
PDFを安定したアドレスの場所に置き、そのアドレスをエンコードしてください。QRコードにファイルを入れることはできません。格納できるのは最大でも数キロバイトのテキストです。重要なのは「安定した」という点です。コードが恒久的なものである以上、リンクも恒久的でなければなりません。