ZXing QR スキャナー
ZXing のエンジンを WebAssembly にしたものを、ページ内で動かします。
カメラはボタンを押したときだけ要求します。フレームは端末内で解読し、そのまま破棄します。
ZXing はオープンソースのバーコードライブラリの参照実装で、多くの Android スキャンアプリの背後にあるのと同じエンジンです。ここでは WebAssembly として動くので、ブラウザのネイティブ API が公開していない形式も読めます。
代償はダウンロードサイズです。wasm モジュールは 1 メガバイト前後あるため、必要になった時点で取得します。このページでは ZXing 自体が目的なので即座に読み込みますが、汎用スキャナーのほうは QR 以外の形式が必要になったときだけ取りに行きます。
使い方
- 普通にスキャンします。ネイティブ検出器が扱えない形式なら、ZXing が自動で読み込まれます。
- DataMatrix や PDF417 のような珍しい体系は、この経路で読めます。
- 結果カードのデコーダ行を見ると、どのエンジンが動いたか分かります。
ZXing とネイティブ BarcodeDetector
ネイティブ API は速く、読み込みコストもゼロですが、対応形式はプラットフォームが決めるためばらつきます。Android の Chrome は Safari より多くを公開しています。ZXing はブラウザを問わず一貫し、より多くの体系を扱います。引き換えに 1 メガバイトのダウンロードと、1 フレームあたりの遅い解読を受け入れます。
実運用で妥当な戦略は、このページがやっていることそのものです。まずネイティブを試し、API がないか対応形式を報告しない場合に ZXing へ落とす。
確認日:2026-10-21。このツールはすべてブラウザ内で動作します。サーバーもアカウントもなく、生成した内容は保存されません。
よくある質問
ZXing は無料で使えますか?
使えます。Apache-2.0 ライセンスです。ここで使っている WebAssembly 版は、同じコアをブラウザ向けに保守している移植版です。
最初のスキャンが遅いのはなぜ?
wasm モジュールが 1 メガバイト前後あり、初回に取得されます。以降はブラウザにキャッシュされ、すぐ動きます。
ZXing のほうが破損したコードに強いですか?
低コントラストや回転に対しては、一般的にネイティブ API より寛容です。ただし位置検出パターンが失われたコードは、どちらも復元できません。
関連ツール
QR コードのその他のツール。