ToolActToolAct

QRコード解析

QRコード画像をオンラインでスキャン・デコード。ドラッグ&ドロップ、クリップボード貼り付け対応。すべてブラウザ内で処理

QRコード画像をアップロード

QRコード画像をここにドラッグ&ドロップ

PNG、JPG、GIF、BMP、WebP などの一般的な画像形式に対応

Ctrl+V でクリップボードから画像を貼り付けることもできます

QRコード解析とは?

QR コードデコーダーは、QR コード画像を読み取り、その中に保存されたデータを取り出すツールです。結果は URL、プレーンテキスト、Wi-Fi 設定、連絡先カード、支払い参照、その他のエンコード文字列などです。QR コードを開く前に内容を確認したいとき、スクリーンショットから文字を取り出したいとき、文書内のコードを読みたいとき、スマートフォンで読み取れない原因を調べたいときに役立ちます。デコードできた内容が安全とは限らないため、リンクは開く前に確認が必要です。画像処理はブラウザー内で行われます。

使い方

使い方

  1. アップロードエリアをクリックしてQRコード画像を選択するか、画像をドラッグ&ドロップします
  2. Ctrl+V(MacではCmd+V)でクリップボードから画像を貼り付けることもできます
  3. ツールがQRコードを自動検出し、内容をデコードします
  4. デコード結果が下部に表示され、コンテンツタイプ(URL/テキスト)を自動で判別します
  5. 「結果をコピー」ボタンをクリックしてデコード内容をクリップボードにコピーします

デコードのヒント

  • 鮮明な画像でQRコード全体が映るようにし、検出の信頼性のため周囲に十分な余白(クワイエットゾーン)を確保してください。
  • デコードされたリンクは慎重に扱い、URLを開く前にテキストとドメインを確認しましょう。

利用シーン

アップロードまたは貼り付けた画像からQRコードをデコードする画像をドロップ、ファイルを選択、クリップボードから貼り付けると、ツールは非表示のキャンバスに描画して読み取ります。スクリーンショット、写真、保存済みのQR画像があるのに近くにスマホのスキャナーがない場合に便利です。
URLとプレーンテキストの結果を区別するデコード後、コンテンツはブラウザのURLコンストラクタで解析できる場合はURLとして分類され、それ以外はテキストとして扱われます。URL結果には新しいタブで開くアクションが付き、すべての結果は文字数表示付きでコピーできます。
デザイン作業中にQRコードの読み取り可否を確認するデコーダーは画像ピクセルから直接動作するため、生成済みやデザイン済みのQRコードがリサイズ、色変更、スクリーンショット、圧縮後もスキャンできるかの検証に役立ちます。読み取り失敗時は明確な「QRなし」またはデコードエラーが返るため、ブランドレビュー中に2つのデザインバリエーションを並べて比較しやすくなります。
長いWi-FiやvCardのペイロードを読み取るデコードされたWi-Fi文字列はスマホカメラなしにSSID、パスワード、セキュリティタイプを画像から表示するため、印刷済みのゲストネットワークカードの確認に役立ちます。vCardの結果はコピーして連絡先フォームに貼り付けることで手動インポートできます。
リンクを開く前にQRコードの中身を確認するスマホで直接スキャンする前に、まずデコードされたURLを確認しましょう。QRコードは短縮リンク、フィッシングページ、期限切れのリダイレクトを隠していることがあります。クリックアクションのないプレーンテキストのデコード結果は、ワンタップリダイレクトより安全なプレビューです。モダンなChromium系ブラウザはBarcodeDetector APIを提供していますが、Micro-QRや損傷したコードの処理が不得手なため、ページはBarcodeDetectorがない場合にJSライブラリにフォールバックします。Reed-Solomon誤り訂正のM/Q/Hレベルではぼやけた写真を復元できますが、高密度や低コントラストのコードは失敗することが多く、より明るく傾きの少ない再撮影が必要です。Micro-QRコードは隅に1つの位置マーカーしか持たない別の規格で、専用スキャナーが必要な場合がほとんどです。

仕組み

QRコードのデコードは、写真やスクリーンショットからコードを検出し、遠近歪みを補正し、画像を白黒に二値化し、モジュールグリッドを読み取り、誤り訂正を適用し、エンコーディングモードに従ってデータを復号する、マルチステージの画像処理パイプラインです。本ツールではブラウザのメインスレッド上でJavaScriptとしてフルパイプラインを実装するjsQRライブラリを使用しています。 最初のステージは3つのファインダーパターンの検出です。これはすべてのQRコードの左上、右上、左下隅にある特徴的な7x7の「四角の中の四角の中の四角」のマーカーです。jsQRは回転に関係なく、ファインダーの断面に特徴的な1:1:3:1:1の比率に一致する白黒交互のピクセル列を画像からスキャンします。3つのファインダーが検出されると、その重心がコードのバウンディング四角形を定義します。 遠近補正は、4つの角点から計算されたホモグラフィ行列を使用して四角形を正方形グリッドに変換します。これはQRコードが真正面から撮影されることは稀だからです。この補正により、各モジュール(1ビットを表す黒または白の四角形)が正規グリッド上に配置されます。モジュールサイズはファインダーパターンの寸法とバージョン番号から決定されます。バージョン番号はファインダーに隣接するフォーマット情報ストリップから読み取られます。 画像の二値化はグレースケールピクセル値を純粋な白黒に変換します。jsQRは局所的閾値処理アプローチを採用しています。単一のグローバル閾値(不均一な照明や影では失敗する)ではなく、画像の小さな領域ごとに閾値を計算するため、スマートフォンの写真に一般的なグラデーションやビネットに対して頑健です。 誤り訂正はISO/IEC 18004:2015で規定されたリード・ソロモン符号を使用します。QRコードは4つの誤り訂正レベルをサポートします。L(約7%復元)、M(約15%)、Q(約25%)、H(約30%)。データコードワードと誤り訂正コードワードはブロックごとにインターリーブされます。jsQRはシンドローム計算を実行し、Berlekamp-Masseyアルゴリズムを適用してコードの定格容量内でエラーの位置を特定・訂正します。損傷が訂正レベルを超えた場合、データが破損するのではなくデコードに失敗します。 最後に、デコードされたビットストリームは最初の4ビットのエンコーディングモード指示子に従って解釈されます。数値モード(0001、3桁あたり10ビット)、英数字モード(0010、2文字あたり11ビット)、バイトモード(0100、1文字あたり8ビット、通常UTF-8またはLatin-1)、漢字モード(1000、Shift JISで1文字あたり13ビット)、またはECI(0111、文字セット指定のための拡張チャネル解釈)。本ツールはデコードされた文字列を表示し、URLかどうかを自動判別します(new URL()パースによる判定)。

  • ファインダーパターン検出:jsQRは1:1:3:1:1の比率に一致する白黒交互ピクセル列をスキャン。互いにほぼ直角に配置された3つのパターンで、回転に関係なくQRコードの存在と向きを確認。
  • 遠近補正:検出された4つの角点から計算されたホモグラフィ行列で、歪んだ四角形を正方形グリッドにマッピング。実際の写真でQRコードが真正面に撮影されることは稀なため、このステップは不可欠。
  • 適応的二値化:局所的閾値処理で画像を小さな領域に分割し、領域ごとの閾値を計算。不均一な照明、影、グラデーションに対してグローバル閾値では失敗する場面でもデコーダーを頑健にする。
  • リード・ソロモン誤り訂正(ISO/IEC 18004):4レベル(L/M/Q/H)で7〜30%のデータ復元。Berlekamp-Masseyアルゴリズムでエラー位置を特定し、Forneyアルゴリズムで訂正量を計算。損傷がレベルを超えた場合、デコードはクリーンに失敗する。
  • エンコーディングモード検出:最初の4ビットでモードを示す。数値(0001、数字に効率的)、英数字(0010、A-Z 0-9と記号用)、バイト(0100、任意のUTF-8/Latin-1データ用)、漢字(1000、Shift JIS用)、ECI(0111、文字セット指定用)。
  • バージョンとモジュールグリッド:QRコードのバージョンは1(21x21モジュール)から40(177x177)まで、各バージョンで1辺4モジュール増加。バージョンはファインダーパターン近近辺のフォーマット情報ストリップから読み取り、モジュール数でサンプリンググリッドの密度が決定される。
  • ブラウザローカル実行:画像を非表示キャンバス要素に描画し、getImageData()で生のRGBAピクセルバッファを抽出、jsQRがすべてブラウザのメインスレッドで処理。画像データはサーバーにアップロードされず、デコード完了後にキャンバスはガベージコレクションされる。

使用例

URL の QR コード

読み取り内容: https://example.com
種類:        URL
動作:        スキャナーが確認後、システムブラウザでリンクを開く

プレーンテキストの QR コード

読み取り内容: This is text content
種類:        テキスト
動作:        スキャナーがテキストをクリップボードにコピー、または結果シートに表示

WiFi 認証情報の QR コード

読み取り内容: WIFI:T:WPA;S:NetworkName;P:Password;;
種類:        WiFi (WPA2)
動作:        フォーマットを認識する端末は「NetworkName に接続しますか?」と表示し、指定パスワードで接続

vCard 連絡先カード

読み取り内容: BEGIN:VCARD\nVERSION:3.0\nFN:Jane Doe\nTEL:+1-555-0142\nEMAIL:jane@example.com\nEND:VCARD
種類:        連絡先カード
動作:        端末がパース済みフィールドからアドレス帳エントリの新規作成を提案

よくある質問

デコードのために画像はアップロードされますか?

いいえ。デコードはブラウザ内でWebAssemblyまたは純粋なJSを介して実行されます。画像バイトはローカルで読み込まれ、サーバーには何も送信されません。

どの入力方法に対応していますか?

ファイルをアップロード、クリップボードから画像を貼り付け、または画像ファイルをドラッグ&ドロップできます。画像はブラウザ内で処理され、サーバーにアップロードされることはありません。

デコーダーは何を返しますか?

生のデコードされたテキストです。ページは結果がURLかプレーンテキストかを検出し、それに応じてバッジを表示します。URLの場合は、URLを開くボタンが提供されます。

なぜQRコードがデコードできないのですか?

一般的な原因:ぼやけ、低コントラスト、グレア、遠近の傾き、コードが部分的に隠れているなどです。近づいてトリミングし、明るさを上げ、表面に対して90°でスマートフォンを安定して保持してください。エラーレベルLのQRコードはほとんど損傷から回復できませんが、レベルHは大幅な遮蔽に耐えます。

スクリーンショットとPDFのQRコードをデコードできますか?

スクリーンショットは完璧なコントラストと遠近の歪みがないため、通常きれいにデコードできます。PDFの場合は、まずQR部分のスクリーンショットを撮り、その画像をアップロードしてください。

QRに含まれるすべてのURLを開くべきですか?

いいえ。QRコードはURLが視覚の中に隠されているため、既知のフィッシングベクトル(「クィッシング」)です。開く前にデコードされたURLを検査してください。ページはドメインを読み取れるよう完全なURLを表示します。タイポドメイン、IPアドレス、本当の宛先を隠す短縮URLに注意してください。

1つの画像内の複数のQRをデコードできますか?

ページは画像ごとに1つのQRコードを検出します。複数のコードを含む画像がある場合は、それぞれを個別にトリミングして個別にアップロードすると最も信頼性の高い結果が得られます。

関連ツール

QRコード生成器

オンラインQRコード生成ツール。テキスト、URL、名刺など複数タイプ対応。スタイル、色、サイズをカスタマイズし、ワンクリックで高画質画像をダウンロード。

バーコード解析

オンラインバーコード解析ツール。画像アップロード、ドラッグ&ドロップ、貼り付けでバーコードをスキャン・デコード。CODE128、EAN13、EAN8、UPC、CODE39対応。すべてブラウザ内で処理。

バーコード生成器

オンラインバーコード生成器。CODE128、EAN13、EAN8、UPC、CODE39、ITF14形式に対応。色やサイズをカスタマイズし、PNGまたはSVG形式でバーコードを生成・ダウンロード。

画像 Base64 変換ツール

オンライン画像Base64相互変換ツール。ドラッグ&ドロップアップロード、リアルタイムプレビュー、複数画像フォーマット対応。画像をBase64に変換してコードに埋め込み、HTTPリクエストを削減。

Base64 エンコードデコードツール

オンラインBase64エンコード・デコードツール。UTF-8テキスト、日本語、画像変換をサポート。リアルタイムエンコード・デコード、ソフトウェアインストール不要、データはローカル処理でプライバシー保護。

URL エンコードデコードツール

オンラインURLエンコード・デコードツール。特殊文字、日本語パラメータを自動処理。URLパラメータを素早く変換し、文字化け問題を解決し、データの正確な送信を確保。