本文へ移動
Develop Tools
← 使い方ガイドへ戻る

画像・スクリーンショットからQRコードを読み取る方法

メール、SNS、PDF、Web画面で受け取ったQRコードは、別のカメラで撮影せず画像のまま解析できます。読取結果はまず文字列として確認します。

入力データからQRコードを生成し画像読取で結果を確認する流れ
入力データからQRコードを生成し画像読取で結果を確認する流れ

QRコードをブラウザ内で作成・画像から読み取る

入力をサーバーへ送信せず、QRコード生成と画像読取を同じページで確認できます。

QRコード画像を読み取る

結論:元画像を直接読み込み、結果をRaw文字列で確認してから利用する

PNG、JPEG、WebP、GIF、BMPを選択、Drop、Clipboard貼り付けし、QRコードを解析できます。画像は端末内で処理されます。

現行ツールはCamera Streamを直接読み取りません。カメラで撮る場合は端末のCameraで画像を保存してから読み込みます。

生成できたこと、画像から読めたこと、安全に利用できることは、それぞれ分けて確認してください。

画像のDecodeとQRのDecodeを段階的に確認する

Browserが画像をPixelへ展開し、BarcodeDetectorを試し、必要なら同梱jsQRへImageDataを渡します。透明背景は白で合成し、白黒反転も試します。

HEICは直接対象ではありません。iPhone写真がHEICで読めない場合は画像変換ツールでPNGまたはJPEGへ変換してから再試行します。

確認対象確認方法判断
File対応拡張子・MIMEPNG/JPEG/WebP/GIF/BMP
ImageQR全体と余白切れていない
ResultRaw Text元Data一致
URLDomain・Scheme自動Openしない

QRコード作成・読み取りツールで確認する手順

  1. QRコード画像を選択、Drop、またはClipboardから貼り付けます。
  2. 自動解析または「QRコードを読み取る」を実行します。
  3. 読み取り結果をRaw文字列として確認し、必要ならCopyします。
  4. URLの場合はURL解析ツールでDomain・Path・Queryを確認します。

読み取った文字列はHTMLとして実行せず、URLも自動で開かない設計です。

画像読取で確認する順序

症状最初の確認次の対応
画像を選べない形式PNG/JPEGへ変換
検出なし余白・Size元画像で再試行
文字が違うRaw文字列元データ・Encoding確認
URLが怪しいDomain・QueryURL解析

Version・セル・余白・誤り訂正を分けて考える

要素意味実務上の確認
Version1~40。Version 1は21×21、Version 40は177×177セルデータ量・文字種・誤り訂正に応じて必要Versionが変わる
セルQRコードを構成する黒白の最小単位画像化・印刷後も各セルが均一に判別できるか
Quiet ZoneQRコード周囲の何も置かない領域四辺に4セル幅以上を確保する
誤り訂正汚れ・欠損からデータを復元するL・M・Q・Hの段階上げるほど万能ではなく、データ量・密度とのTrade-offになる

QRコードの最大文字数を一つの数値で決めつけません。格納量はVersion、数字・英数字・Byte・漢字等のデータ種別、誤り訂正レベルで変わります。同じ物理サイズへ多くのデータを入れるほどセルが細かくなり、読取条件は厳しくなります。

公開前・配布前に行う読取テスト

  • 生成したPNGまたはSVGを現行ツールの画像読取へ戻し、元データと一致するか確認する
  • 同じLibraryだけでなく、実際に利用するスマートフォンやReaderでも確認する
  • Web表示、Screenshot、印刷物を用途どおりのサイズと距離で確認する
  • 四辺のQuiet Zone、背景とのContrast、ぼやけ、セルの歪み、Logoや文字の重なりを確認する
  • 日本語・絵文字・URLの%・+・&・改行・末尾Spaceを含む場合はRaw結果を比較する

同じツールで読めたことは有用な自己テストですが、すべての端末・カメラ・印刷条件で読める保証ではありません。利用環境が決まっている場合は、その環境での回帰テストを完成条件に含めます。

読み取り成功とURLの安全性は別に確認する

Readerの役割は画像のQRコードから文字列を復号するところまでです。https://で始まる文字列でも、正規サイト、到達可能、安全、フィッシングではない、という判定にはなりません。短縮URL、似た文字のDomain、意図しないQuery、javascript:やdata:等のSchemeへ注意します。

  • 読取結果をRaw文字列のまま確認し、勝手にTrim・Normalizeしない
  • URLを自動で開かず、Domain・Path・Queryを確認してから利用者が明示操作する
  • Wi-Fi Password、認証情報、個人情報は読取可能な平文として扱う
  • QR内容をAnalytics、Log、外部APIへ送らない

現行のQRコード作成・読み取りツールで確認できる範囲

項目現行ツールの対応
生成内容テキスト、URL、Wi-Fi、メール、電話番号、SMS
生成設定誤り訂正L・M・Q・H、128~2048px、4~16セル余白、前景色・背景色
生成結果自動選択されたVersion・セル数・UTF-8バイト数、PNG・SVG保存、PNG画像コピー
画像読取PNG、JPEG、WebP、GIF、BMPの選択・ドロップ・Clipboard貼り付け
読取結果復号したRaw文字列の表示とコピー。リンクの自動Openはしない
未対応カメラ直接読取、Camera選択、Logo合成、Version固定、HEIC直接読取、URL安全性判定

生成・画像解析・Copy・Downloadはブラウザ内で処理し、入力文字列と画像をDevelopToolsのサーバーへ送信しません。読み取れたURLが安全であることは保証しないため、文字列を確認してから別途URL解析などを行ってください。

一次情報とブラウザ仕様を確認する

QRコードのVersion・Quiet Zone・誤り訂正はDENSO WAVE等の一次資料、Camera PermissionとSecure ContextはWeb仕様・MDN、Library APIは使用Versionの公式Documentationを優先します。記事例と現行ツール実装を混同しません。

具体例:メール添付のScreenshotをPCで読む

QR全体と周囲の余白が残るようにScreenshotを保存し、画像読取へDropします。

URLを勝手に開かず、文字列を確認してから必要な操作を選べます。

  1. 元画像保存
  2. Drop
  3. Raw結果確認
  4. URL構造確認

Screenshotを再圧縮したSNS画像ではセル境界がぼやける場合があります。可能なら元画像を使用します。

よくある質問

QRコードには余白が必要ですか?
はい。QRコードの四辺には4セル幅のQuiet Zoneを確保します。文字、枠、画像、背景模様を近づけると読み取りに影響する可能性があります。
誤り訂正レベルはHにすれば最も読みやすくなりますか?
必ずしもそうではありません。復元能力は上がりますが誤り訂正データも増え、同じ大きさではセルが細かくなる可能性があります。用途、汚れ、データ量、サイズを合わせて選びます。
読み取れたURLは安全ですか?
読み取り成功は安全性の判定ではありません。Domain、Path、Query、Schemeを確認し、必要ならURL解析ツールで分解してから開いてください。