- 技術 💻
QRコード読み取り(画面上・PC)とURLをQRコードにする方法|読める大きさを実測
結論
パソコンの画面上のQRコードは、Windows 11 なら Snipping Tool(Windows キー+Shift+S)で囲む、Chrome なら画像を右クリックして「Google レンズで検索」、スマホがあればカメラを画面に向けるのがいちばん早い方法です。URLをQRコードにするなら、Chrome の「QR コードを作成」か Edge の「Create QR code for this page」で、そのページのQRコードを PNG で保存できます。
この記事でわかること
- Windows・Mac・Chrome・Edge・スマホ・Linux 別の、画面のQRコードの読み方と作り方
- 画面に表示したQRコードが読める大きさ(1セル何ピクセルか)を Chromium で実測した結果
- ロゴ・色・余白・ぼかしで読めなくなる境目と、読めないときの症状→原因→直し方の表
QRコードはスマホで読むもの、と思われがちですが、パソコンの画面に出ているQRコードもパソコンだけで読めます。逆に、いま開いているページの URL をQRコードにしてスマホへ渡すこともできます。どの方法を選ぶかは、カメラの有無と、使っているOS・ブラウザで決まります。
flowchart TD
S[画面にQR] --> A{スマホは?}
A -->|ある| P[カメラ]
A -->|ない| B{Win 11?}
B -->|はい| W[Snipping Tool]
B -->|いいえ| C{Chrome?}
C -->|はい| L[レンズ]
C -->|いいえ| Z[zbarimg]
よくある「やりたいこと」の答えを先にまとめます。
| やりたいこと | いちばん早い方法 | 詳しい節 |
|---|---|---|
| QRコード読み取りを画面上で(Windows) | Windows キー+Shift+S で囲み、Snipping Tool のテキストアクション | WindowsのPCで読み取る |
| QRコード読み取りをPCのカメラで | Windows の「カメラ」アプリで「バーコード」を選び、紙やスマホの画面をかざす | WindowsのPCで読み取る |
| Mac の画面のQRコードを読みたい | Chrome で画像を右クリック→「Google レンズで検索」、またはスマホで読む | MacでQRコードを読み取る |
| メールやPDFのQRコード画像を読みたい | 画像を保存して zbarimg か Python で読む(画像を外に出さない) | Linux・Pythonで読み取る |
| URLをQRコードにする | Chrome の「QR コードを作成」、Edge の「Create QR code for this page」 | URLをQRコードにする方法 |
| QRコードを大量に・決まった形で作る | Python の qrcode・segno か、qrencode コマンド | PythonとコマンドでURLをQRコードにする |
| 画面のQRコードが読めない | ブラウザで拡大して1セル3ピクセル以上にする | 読み取れるQRコードの大きさ |
| ロゴを入れても読めるか | 誤り訂正レベルを H にし、ロゴは面積の15%まで | ロゴ・色・余白・ぼかしと読み取り |
確認環境:Ubuntu 24.04.5 LTS(2 CPU)で、Python 3.13.18 の作業用 venv に qrcode 8.2・segno 1.6.6・pyzbar 0.1.9 を入れ、OpenCV 5.0.0(QRCodeDetector と QRCodeDetectorAruco)・Pillow 12.3.0 と合わせて使いました。zbar 0.23.93(zbarimg)と qrencode 4.1.1 は Ubuntu の .deb を作業場所に展開して動かしています。画面に出したQRコードは、Playwright 1.63 同梱の Chromium 153(ヘッドレス)で自作のページに表示してスクリーンショットを撮り、それを読み取って確かめました。Windows・Mac・iPhone・Android・Chrome・Edge の画面操作は手元で動かせないため、Microsoft サポート・Windows Insider ブログ・Microsoft Edge の公式ページ・Google Chrome ヘルプ・Apple サポートで1つずつ確かめた範囲だけを書いています。QRコードの仕様はデンソーウェーブの公式サイト(qrcode.com)と qrcode ライブラリの公式ドキュメントで確かめました。外部の読み取りサービス・作成サービスには画像を送っていません(確認日 2026年10月29日)。
本記事の内容は、ご自由にお使いください。
ご利用の際は、出典として本ページへのリンクを記載いただけますようお願いします。
(記載例)出典:株式会社RJC「QRコード読み取り(画面上・PC)とURLをQRコードにする方法|読める大きさを実測」
画面上のQRコードを読み取る方法の一覧(PC・スマホ)
この節では、画面に出ているQRコードを読む方法を、端末ごとに一覧で比べられます。
パソコンでQRコードを読む方法は、「カメラで撮る」「画面を切り取って読む」「画像ファイルとして読む」の3つに分かれます。画面に表示されているQRコードは、そのパソコンの内蔵カメラでは写せません。画面上のものは「切り取って読む」か「画像として読む」、または別の端末(スマホ)のカメラで読みます。
| 端末 | 画面上のQRコード | 紙・スマホの画面のQRコード | 確かめた資料 |
|---|---|---|---|
| Windows 11 | Snipping Tool のテキストアクション | カメラアプリの「バーコード」 | Windows Insider ブログ・Microsoft サポート |
| Windows 10 | Chrome・Edge で画像を検索、スマホで読む | カメラアプリの「バーコード」 | Microsoft サポート |
| Mac | Chrome の「Google レンズで検索」、スマホで読む | 公式ヘルプに記述なし | Google Chrome ヘルプ・Apple サポート |
| iPhone・iPad | パソコンの画面にカメラを向ける | カメラ・コントロールセンターの「コードをスキャン」 | Apple サポート |
| Android | パソコンの画面にカメラを向ける | カメラ(機種ごとに操作が違う) | Google Chrome ヘルプ・各メーカー |
| Linux | スクリーンショットを zbarimg・Python で読む | (Web カメラの操作は扱わない) | 手元で実行 |
1内蔵カメラは画面を写せない
PCのカメラアプリが読めるのは、カメラの前にかざした紙やスマホの画面。自分の画面のQRコードは切り取って読む。
2切り取りは手元で完結する
Snipping Tool・zbarimg・Python は画像を外に送らずに読める。社外秘の資料のQRコードはこちらで読む。
3画像検索は Google に送る
「Google レンズで検索」は画像を Google に送って調べる方法。手軽だが、中身が機密なら避ける。
どの方法でも、読み取った URL は、開く前に表示されたドメイン(www.〜.jp の部分)が想定どおりかを確かめます。見覚えのない短縮 URL や、知っている会社名に余計な語が付いたドメインのような怪しいQRコードには注意します。
WindowsのPCで画面上のQRコードを読み取る(Snipping Tool・カメラ)
この節では、Windows 11・10 でQRコードを読み取る2つの方法と、それぞれの手順が分かります。
画面上のQRコードは Snipping Tool、紙やスマホに表示されたQRコードは「カメラ」アプリで読みます。
Snipping Tool で画面のQRコードを読む(Windows 11)
Microsoft の Windows Insider ブログ(2024年5月9日)には、Snipping Tool に「スクリーンショットの中のQRコードを検出して、リンクを PC で開けるようにする機能を追加する」と書かれています。検出は、切り取った画像の編集画面で「テキスト アクション」に入ると自動で表示される、という説明です。この機能は Snipping Tool のバージョン 11.2404.37.0 以降で Canary・Dev チャネルから配信が始まり、5月22日に Beta・Release Preview チャネルへ広がったと同じ記事に追記されています。
QRコードを画面に出す
メール・PDF・Web ページなど、QRコードが写っている画面を開く。小さければ先に拡大しておく(次の節の実測では、1セルが2ピクセルより小さいと読めないことがあった)。
Windows キー+Shift+S で囲む
Microsoft サポートでは、このキーで Snipping Tool のオーバーレイが開くと説明されている。QRコードの周りの白い余白まで含めて四角く囲む。
通知から Snipping Tool の画面を開く
切り取ると右下に通知が出る。クリックすると、切り取った画像の編集画面(マークアップのキャンバス)が開く。
「テキスト アクション」を選ぶ
ツールバーのテキスト アクションに入ると、QRコードが見つかった場合はリンクが表示される。表示された URL のドメインを確かめてから開く。
テキスト アクションが出ない、QRコードが検出されないときは、Microsoft Store で Snipping Tool を最新にします。同じブログには、切り取った画像を右クリックして「Visual Search with Bing」を選ぶと Bing で画像を調べられる機能も紹介されていますが、こちらは画像を Bing に送る方法です。
「カメラ」アプリで紙やスマホのQRコードを読む(Windows 11・10)
Microsoft サポートの「カメラ アプリの使い方」(適用先 Windows 11・Windows 10)では、カメラが内蔵または接続された PC で、次の順に読むと説明されています。
- カメラ アプリを開く(スタートメニューで「カメラ」を検索)。
- 右側の「バーコード」ボタンが選ばれていることを確かめる。
- QRコードをカメラの前にかざし、ピントを合わせる。アプリが自動でスキャンする。
- QRコードなら、アプリの下に表示される Web サイトのリンクを選んで開く。
この方法で読めるのは、カメラの前にかざしたもの(紙のチラシや、スマホの画面に表示したQRコード)です。そのPCの画面に出ているQRコードは、カメラでは読めません。
MacでQRコードを読み取る(画面上・スクリーンショット)
この節では、Mac で画面のQRコードを読む方法と、公式のヘルプで確かめられた範囲が分かります。
Mac の標準アプリで画面のQRコードを読む手順は、Apple の公式ヘルプでは確かめられませんでした。Apple サポートの「プレビューでテキスト認識表示を使って写真のテキストを操作する」には、写真の中の Web サイトのアドレスや電話番号を操作できることは書かれていますが、QRコードの記述はありません。そのため、Mac では次のどれかを使います。
- Chrome で開いているページのQRコード:画像を右クリックして「Google レンズで検索」(次の節)。
- どのアプリの画面でも:shift+command+4 で画面の一部をスクリーンショットにし、スマホで読むか、Python のコード(Linux の節と同じ)で読む。Apple サポートでは、スクリーンショットは初期設定でデスクトップに保存されると説明されています。
- スマホがある:iPhone のカメラを Mac の画面に向ける(スマホの節)。
| ショートカット | 撮れる範囲 | QRコードを読むときの使い方 |
|---|---|---|
| shift+command+3 | 画面全体 | QRコードが大きく写っているとき |
| shift+command+4 | 選んだ範囲 | QRコードと周りの余白だけを囲む |
| shift+command+5 | スクリーンショットアプリ | 保存先を変えたいとき(オプション) |
ChromeとEdgeで画面上のQRコードを読み取る(Google レンズ)
この節では、ブラウザで見ているページのQRコードを、ブラウザの機能で調べる方法と注意点が分かります。
パソコンの Chrome では、画像を右クリックして「Google レンズで検索」を選ぶと、サイドバーに結果が表示されます。これは Google のヘルプ「Google で画像を使って検索する」に書かれている手順です。ヘルプは画像検索の手順で、QRコードを読むことは明記されていません。検索上位の解説記事では、QRコードの画像を Google の画像検索に渡すと中身が表示されると紹介されています。
- パソコンで Chrome を開き、QRコードが載っているページを開く。
- QRコードの画像を右クリックする。
- 「Google レンズで検索」をクリックすると、サイドバーに結果が表示される。
社外秘の資料・ログイン用のQRコード
見分ける問い:「この画像を社外の人に見せてよいか」
Chromium(Chrome の元になっているブラウザ)には、Web ページの JavaScript からバーコードを読む BarcodeDetector という仕組みもあります。手元の Linux 版 Chromium 153 で typeof BarcodeDetector を調べると "undefined" でした。OS によって使えないことがあるため、Web アプリで読み取りを作るときは、JavaScript のライブラリで読む形にしておくのが確実です。
スマホで画面のQRコードを読み取る(iPhone・Android)
この節では、パソコンの画面に出ているQRコードをスマホで読む手順が分かります。
スマホが手元にあるなら、パソコンの画面にスマホのカメラを向けるのがいちばん早い方法です。パソコン側は、QRコードが画面いっぱいになるまで拡大しておくと、ピントが合いやすくなります。
iPhone・iPad
Apple サポートの「iPhoneやiPadでQRコードをスキャンする」では、次のように説明されています。
- カメラアプリ(ホーム画面・ロック画面・コントロールセンターから開ける)のファインダーにQRコードが収まるように持ち、表示されたリンクをタップして開く。
- コントロールセンターに「コードをスキャン」を追加しておくと、カメラアプリを開かずに読める。コントロールセンターの背景を長押しし、「コントロールを追加」からギャラリーの「コードをスキャン」を追加する。
Android
Android は機種によってカメラアプリの操作が違うため、手順はメーカーの公式ヘルプで確かめます。Google Chrome ヘルプでは、他の人のスマホに表示されたQRコードは自分のカメラでスキャンできること、Android 版 Chrome からQRコードとバーコードを検索できることが案内されています。
画面のQRをスマホで読む
パソコンの画面を拡大する
画面の明るさを上げ、映り込みを避ける
近づけすぎず、QRコード全体を枠に入れる
スマホのQRをパソコンで読む
スマホの画面の明るさを上げる
Windows のカメラアプリで「バーコード」
スクリーンショットを PC に送って読む方法もある
Linux・Pythonで画面のQRコードを読み取る(zbarimg・OpenCV)
この節では、スクリーンショットや画像ファイルのQRコードをコマンドと Python で読む方法と、手元で動かした出力が分かります。
画像ファイルにしてしまえば、OS に関係なく zbarimg(zbar のコマンド)か Python で読めます。画像を外部に送らないので、社外秘の資料のQRコードにも使えます。
zbarimg で読む
Ubuntu では zbar-tools パッケージに zbarimg が入っています。手元では、自作のページを 1280×800 で表示したスクリーンショット(QRコードは横 120 ピクセル)をそのまま渡しました。
$ zbarimg --nodbus fullscreen.png
QR-Code:https://www.r-jc.jp/news-blog/1967/python-pillow-image-sample/
scanned 1 barcode symbols from 1 images in 0.05 seconds
$ zbarimg --nodbus -q --raw qe.png
https://www.r-jc.jp/
--raw を付けると「QR-Code:」の前置きが消え、中身だけが出ます。--nodbus を付けないと、手元の環境では毎回 Connection Error (Failed to connect to socket /run/dbus/system_bus_socket: No such file or directory) が先に表示されました(読み取り自体は成功します)。QRコードが見つからないときは、終了コード 4 と次の文が出ます。
scanned 0 barcode symbols from 1 images in 0 seconds
WARNING: barcode data was not detected in some image(s)
Things to check:
- is the barcode type supported? Currently supported symbologies are:
...
- is the barcode large enough in the image?
- is the barcode mostly in focus?
- is there sufficient contrast/illumination?
この「確かめること」の一覧(大きさ・ピント・コントラスト)は、そのまま読めないときの確認の順番になります。
Python(pyzbar・OpenCV)で読む
from PIL import Image
import numpy as np
import cv2
from pyzbar import pyzbar
img = Image.open("fullscreen.png")
# zbar(pyzbar)で読む
for r in pyzbar.decode(img):
print("zbar:", r.data.decode(), r.rect)
# OpenCV で読む
gray = np.array(img.convert("L"))
text, points, _ = cv2.QRCodeDetector().detectAndDecode(gray)
print("cv2:", repr(text))
text2, _, _ = cv2.QRCodeDetectorAruco().detectAndDecode(gray)
print("aruco:", repr(text2))
zbar: https://www.r-jc.jp/news-blog/1967/python-pillow-image-sample/ Rect(left=52, top=246, width=96, height=96)
cv2: ''
aruco: 'https://www.r-jc.jp/news-blog/1967/python-pillow-image-sample/'
同じスクリーンショットでも、OpenCV の QRCodeDetector は位置(四隅の座標)を見つけたのに、中身は空文字でした。QRコードの部分(130×130 ピクセル)だけを切り出して渡すと、同じ QRCodeDetector で読めました。画面全体のスクリーンショットを読むなら、zbar を先に試し、OpenCV を使うときは QRCodeDetectorAruco か、切り出してから渡すのが確実です。
1枚の画像にQRコードを3つ並べた場合は、pyzbar も OpenCV の detectAndDecodeMulti も3つとも読めました。15度・45度・90度・180度に回した画像も、3つの読み取り方すべてで読めました。
画面を直接取り込む場合
Pillow の ImageGrab.grab() を使うと、画面をそのまま取り込んで読めます。ただし画面(ディスプレイ)の無い環境では、手元で OSError: X connection failed: error 5 になりました。サーバーやコンテナでは、スクリーンショットのファイルを作ってから読む形にします。
URLをQRコードにする方法(Chrome・Edge・スマホ)
この節では、ブラウザで開いているページの URL を、追加のソフトなしでQRコードにする手順が分かります。
いま開いているページの URL をQRコードにするなら、Chrome と Edge にある機能がいちばん早い方法です。作ったQRコードはダウンロードして、資料やスライドに貼れます。
Chrome(パソコン)
Google Chrome ヘルプ「Chrome でタブを共有する」の手順です。
- Chrome で、共有するページを開く。
- 右上のその他メニュー(縦に3つの点)から「キャスト、保存、共有」を選び、「QR コードを作成」を選ぶ。
- 表示されたQRコードを、別の端末のカメラでスキャンする。「ダウンロード」でQRコードの画像を保存でき、QR リンクのコピーもできる。
Chrome(Android)
同じヘルプの Android 版では、ツールバーの横のその他アイコン→「共有...」→「QR コード」を選び、画面の手順に沿って共有するか、QRコードをダウンロードすると説明されています。
Microsoft Edge(パソコン)
Microsoft Edge の公式機能紹介ページ(英語)の手順です。日本語表示では、同じ位置にある「このページのQRコードを作成」に当たる項目を選びます。
- 共有したいページを開く。
- ページの何も無いところを右クリックし、「Create QR code for this page」を選ぶ。
- 表示されたQRコードのリンクを共有するか、PNG 画像としてダウンロードする。以後、アドレスバーの右側にも同じQRコードのアイコンが表示される。
無料の作成サイトを使うとき
作成サイトには、デザインの変更・一括作成・読み取り回数の集計などの機能があります。検索上位の作成サイトの解説では、URL をそのまま埋め込む「静的QRコード」は無料で作れて期限が無く、サイトの短い転送用 URL を埋め込む「動的QRコード」は後から飛び先を変えられる一方、有料プランの契約が続く間だけ使える、と説明されています。印刷物に載せるQRコードは、サービスの契約に左右されない静的QRコード(自分の URL を直接埋め込む形)にしておくと、何年たっても読めます。
PythonとコマンドでURLをQRコードにする(qrcode・segno・qrencode)
この節では、URL からQRコードの画像を作るコマンドと Python のコードと、手元で作った結果が分かります。
手元で作れば、URL を外部に送らずに、誤り訂正レベル・余白・大きさを決めて何枚でも作れます。
コマンドで作る
# qrencode(Ubuntu の qrencode パッケージ)
$ qrencode -o qe.png -l M -s 8 'https://www.r-jc.jp/'
$ qrencode -t ANSIUTF8 -m 2 'https://www.r-jc.jp/' # 端末に表示
# Python の qrcode に付いてくる qr コマンド
$ qr --error-correction=M 'https://www.r-jc.jp/' > qq.png
# segno(SVG も作れる)
$ segno -e m -s 8 -o sg.png 'https://www.r-jc.jp/'
$ segno -e m -o sg.svg 'https://www.r-jc.jp/'
qrencode -t ANSIUTF8 は、端末にそのままQRコードを描きます。手元の端末に表示したものをスマホで読むこともできます。
█████████████████████████████
██ ▄▄▄▄▄ █ ██▀▀█ ▄▄█ ▄▄▄▄▄ ██
██ █ █ █ ▀█ ▀▀█▀█ █ █ ██
██ █▄▄▄█ █▀ █▄ ▀▄▀█ █▄▄▄█ ██
██▄▄▄▄▄▄▄█▄█ ▀▄█▄█ █▄▄▄▄▄▄▄██
(以下略)
3つの方法で作った画像は、どれも zbarimg で QR-Code:https://www.r-jc.jp/ と読めました(3枚で 0.01 秒)。
| 作り方 | 出力 | 画像の大きさ | ファイルサイズ |
|---|---|---|---|
| qrencode -s 8 | PNG(1ビット) | 264×264 | 339 バイト |
| qr(qrcode 8.2) | PNG(1ビット) | 330×330 | 634 バイト |
| segno -s 8 | PNG(1ビット) | 264×264 | 288 バイト |
| segno(SVG) | SVG | 拡大しても劣化しない | 1,181 バイト |
印刷物やスライドで大きさを変えるなら SVG、Web ページやチャットに貼るなら PNG が扱いやすい形式です。SVG と PNG の違いは、関連記事「SVGファイルとは|PNGとの違い・開き方・作り方を実測で解説」で扱っています。
Python で作る
import qrcode
qr = qrcode.QRCode(
error_correction=qrcode.constants.ERROR_CORRECT_M, # 誤り訂正 M(既定)
box_size=10, # 1セルを10ピクセルで描く
border=4, # 周りの余白(セル数)。4 が仕様の最小
)
qr.add_data("https://www.r-jc.jp/")
qr.make(fit=True) # 中身に合う最小のバージョンを選ぶ
print(qr.version, qr.modules_count)
qr.make_image(fill_color="black", back_color="white").save("rjc.png")
2 25
qrcode の公式ドキュメントには、border の既定値は 4 で「仕様の最小」であること、box_size は1セル(ボックス)を何ピクセルで描くかを決めることが書かれています。作った画像の大きさを変える・余白を足すなどの加工は、関連記事「Python Pillowで画像処理|リサイズ・トリミング・形式変換のコード集」の書き方が使えます。
作るときのエラー
# バージョンを1に固定し、入りきらない URL を入れた
qrcode.exceptions.DataOverflowError: Code length overflow. Data size (252) > size available (72)
# fit=True でも、最大のバージョン40に入りきらない量(3,000文字)を入れた
ValueError: Invalid version (was 41, expected 1 to 40)
1つ目は version=1 と fit=False で大きさを固定したときのエラーで、fit=True にすると自動で大きくなります。2つ目は、QRコードに入る量そのものを超えています。長い文章はQRコードに入れず、文章を置いたページの URL を入れます。
URLの長さと誤り訂正レベルでQRコードはどう変わるか
この節では、URL の長さと誤り訂正レベルによって、QRコードの細かさ(バージョン)がどう変わるかが分かります。
URL が長いほど、誤り訂正レベルが高いほど、QRコードのマス目(セル)は増えて細かくなります。デンソーウェーブの公式サイトによると、QRコードのバージョンは 1(21×21 セル)から 40(177×177 セル)まであり、1つ上がるごとに縦横4セルずつ増えます。
Python の qrcode で、同じサイトの URL を4つの長さで作り、選ばれたバージョンを調べました(fit=True・英数字はバイトモード)。
| URL(文字数) | L(約7%) | M(約15%) | Q(約25%) | H(約30%) |
|---|---|---|---|---|
| トップページ(20字) | 2(25×25) | 2(25×25) | 2(25×25) | 3(29×29) |
| 記事の URL(62字) | 4(33×33) | 4(33×33) | 6(41×41) | 7(45×45) |
| UTM パラメーター付き(120字) | 6(41×41) | 7(45×45) | 9(53×53) | 11(61×61) |
| 日本語のスラッグ(%エンコードで256字) | 9(53×53) | 10(57×57) | 12(65×65) | 14(73×73) |
誤り訂正レベルのパーセントは、qrcode の公式ドキュメントに書かれた「おおよそ何%までの誤りを直せるか」の値です。デンソーウェーブの公式サイトでは、一般的には M(15%)で運用されることが多く、汚れやすい環境では Q や H を選ぶと説明されています。
日本語の URL は長くなる
日本語1文字は %E3%81%82 のように9文字になる。スラッグの日本語23文字だけで184文字増えた。
英字のスラッグにする
UTM は細かさに効く
計測用のパラメーターで62字→120字になり、M でバージョン4→7に上がった。
必要な項目だけ付ける
細かいほど大きく表示
セルが増えると、同じ大きさで表示したときの1セルが小さくなり、読みにくくなる。
次の節の実測へ
URL の %エンコード(日本語を %XX の形にすること)の仕組みは、関連記事「Java URLエンコード・デコード入門|+と%20の違い早見表」で扱っています。
読み取れるQRコードの大きさ(画面表示を実測)
この節では、画面に表示したQRコードが、何ピクセル以上あれば読み取れるかが分かります。
画面のスクリーンショットから読むなら、1セルが2ピクセル以上(できれば3ピクセル以上の整数倍)あれば、試した3つの読み取り方すべてで読めました。Chromium で、バージョン2・4・10 のQRコード(余白4セル込みでそれぞれ 33・41・65 セル)を CSS の幅を変えて表示し、スクリーンショットを zbar と OpenCV で読みました。表の「1セルあたり」は、表示幅を余白込みのセル数で割った値です。
| 1セルあたり | バージョン2(表示幅) | バージョン4(表示幅) | バージョン10(表示幅) | 読めた方法 |
|---|---|---|---|---|
| 1.0〜1.4 ピクセル | 33〜46px × | 41〜57px × | 65〜91px × | なし |
| 1.6 ピクセル | 53px | 66px | 104px | zbar だけ |
| 1.8 ピクセル | 59px | 74px | 117px | zbar だけ |
| 2.0 ピクセル | 66px | 82px | 130px | zbar・OpenCV |
| 2.5 ピクセル | 82px | 102px | 162px | zbar だけ |
| 3.0 ピクセル | — | 123px | 195px | すべて(Aruco も) |
2.5 ピクセルで OpenCV が読めなかったのは、セルの境目が画素の途中に来て、ぼやけた画素が混ざるためと考えられます。小さすぎるときは、整数倍(2倍・3倍)に近づくまでブラウザやビューアーで拡大すると読みやすくなります。
高解像度の画面(拡大率200%)の場合
同じQRコードを、デバイスピクセル比 2(Windows の表示スケール200%や Mac の Retina に相当)で表示すると、CSS の幅 41px(1セル 2.0 実ピクセル)から3つの方法すべてで読めました。拡大率 100% の画面では同じ 41px は読めず、82px が必要でした。同じページでも、ノートPCの画面と外部モニターで「読める・読めない」が変わるのはこのためです。
あとから拡大して読めるか
1セル 1.46 ピクセル(CSS 幅 60px)で読めなかったスクリーンショットを、画像として4倍に拡大すると、なめらかに拡大する方式(LANCZOS)では3つの方法すべてで読めました。1セル 1.22 ピクセル(幅 50px)は、2倍・4倍に拡大しても読めませんでした。撮ったあとの拡大で救えるのは境目近くまでなので、元の画面で拡大してから撮り直すほうが確実です。
ロゴ・色・余白・ぼかしと読み取りの成否(実測)
この節では、デザインを加えたQRコードがどこまで読めるかを、誤り訂正レベル・色・余白・画質ごとに確かめた結果が分かります。
記事の URL(62字)のQRコードを Python で作り、加工した画像を zbar・OpenCV QRCodeDetector・OpenCV QRCodeDetectorAruco の3つで読みました。表の ○×は、この3つの順です。
ロゴで中央を隠したとき
| 誤り訂正 | 中央 5% | 10% | 15% | 20% |
|---|---|---|---|---|
| L(バージョン4) | ○○○ | ××× | ××× | ××× |
| M(バージョン4) | ○○○ | ××× | ××× | ××× |
| Q(バージョン6) | ○○○ | ○○○ | ○○○ | ××× |
| H(バージョン7) | ○○○ | ○○○ | ○○○ | ○×× |
中央の正方形を橙色で塗り、余白を除いたQRコードの面積に対する割合で示しています。25%・30%は、どのレベルでも3つとも読めませんでした。M の「約15%」は直せる誤りの目安で、ロゴで15%隠すと M では読めませんでした。ロゴを入れるなら H を選び、ロゴは面積の15%までに収めます。
色・コントラスト
| 色の組み合わせ | 結果 | メモ |
|---|---|---|
| 黒・白(基本) | ○○○ | デンソーウェーブも基本は白地に黒と案内 |
| 灰色(明るさ235/255)・白 | ○○○ | 画像を直接読む場合 |
| 灰色(245)・白 | ○○× | Aruco が読めない |
| 灰色(250)・白 | ××× | ほぼ見えない |
| 白・黒(色の反転) | ××× | 画像を反転して戻すと ○○○ |
| 紺・白、黄・白 | ○○○ | 画像を直接読む場合 |
| 赤・青 | ○○× | Aruco が読めない |
画像ファイルを直接読むと、薄い灰色や黄色でも読めました。これはソフトが明暗を自動で調べ直すためで、カメラ越しでは光の当たり方や読み取り機の光の色で結果が変わります。デンソーウェーブの FAQ でも、色の組み合わせで読み取りやすさが変わり、赤い光を使う読み取り機では白地に赤が読めないことがあるとして、基本は白地に黒で印刷するよう案内されています。白黒を反転した(黒地に白の)QRコードは3つとも読めず、画像の明暗を反転してから渡すと読めました。ダークモードの画面でQRコードが反転して表示されていると、読めないことがあります。
余白(クワイエットゾーン)
デンソーウェーブの FAQ には、QRコードの周りに4セル分の空白が必要だと書かれています。余白の幅を変えたQRコードを、黒・暗い灰色・中間の灰色の背景に置いて読みました。
| 余白 | 黒の背景 | 暗い灰色(64) | 中間の灰色(128) |
|---|---|---|---|
| 0 セル | ××× | ○×○ | ○○○ |
| 1 セル | ○○○ | ○○○ | ○○○ |
| 2・4 セル | ○○○ | ○○○ | ○○○ |
余白が無いQRコードを暗い背景に置くと、3つとも読めませんでした。スライドや資料に貼るときに余白を切り落とすと、背景の色によって読めなくなります。手元のソフトは1セルの余白でも読めましたが、カメラで読む人のことを考えて、仕様どおり4セル残します。
画質(JPEG・ぼかし)
| 加工(1セル3ピクセルの画像) | 結果 |
|---|---|
| JPEG 品質 90・50・20 | ○○○ |
| JPEG 品質 10 | ○×○ |
| ぼかし(半径 0.5) | ○○○ |
| ぼかし(半径 1) | ○○× |
| ぼかし(半径 1.5・2) | ××× |
JPEG の圧縮には強く、品質10まで zbar は読めました。一方、ぼかしには弱く、半径1.5(1セルの半分)で3つとも読めなくなりました。画面共有や動画の中のQRコードが読めないのは、圧縮よりもぼけの影響が大きいと考えられます。
- 1URL は短く、英字のスラッグにする日本語のスラッグや計測用のパラメーターは、QRコードを細かくする
- 2白地に黒で、余白を4セル残す余白なしで暗い背景に置くと読めなかった。反転した色も避ける
- 3ロゴを入れるなら H で15%までM では10%隠しただけで読めなかった
- 4画面では1セル3ピクセル以上で表示するバージョン4なら123ピクセル以上。SVG なら大きさを変えても劣化しない
- 5配る前に、別の端末で実際に読む読み取った URL が想定のページか、最後まで確かめる
QRコードが読み取れないとき(症状→原因→直し方)
この節では、QRコードが読めないときに、症状から原因と直し方を探せます。
読めないときは「大きさ→余白→色→ぼけ→中身」の順に確かめると、ほとんどの原因に当たります。zbarimg が読めなかったときに出す「確かめること」の一覧(大きさ・ピント・コントラスト)とも同じ順番です。
| 症状 | 原因 | 直し方 |
|---|---|---|
| 画面の小さなQRコードが反応しない | 1セルが2ピクセル未満 | ブラウザ・PDF ビューアーで拡大してから切り取る |
| PCのカメラで自分の画面のQRコードを写せない | 内蔵カメラは画面の外を向いている | Snipping Tool で切り取るか、スマホで読む |
| 切り取ったのに検出されない | 周りの余白まで切っている | QRコードの外側の白い部分まで含めて囲み直す |
| 黒地に白のQRコードが読めない | 色の反転・ダークモード | ダークモードを切る、画像の明暗を反転して読む |
| Web 会議の画面共有のQRコードが読めない | 圧縮とぼけでセルの境目が消える | 共有した人に URL をチャットで送ってもらう |
| ロゴ入りのQRコードが読めない | 誤り訂正レベルに対してロゴが大きい | 作る側で H にし、ロゴを15%までに小さくする |
| スクリーンショット全体を OpenCV で読むと空文字 | 位置は見つかるが復号に失敗 | QRコードの部分だけ切り出す、Aruco か zbar を使う |
Python で ImportError: Unable to find zbar shared library |
pyzbar が使う zbar の共有ライブラリが無い | OS のパッケージで zbar を入れる(Ubuntu は libzbar0t64) |
| 読めたのにページが開かない | リンク先の変更・削除、動的QRコードの契約切れ | QRコードを配った人・会社の公式の案内で確かめる |
- 1拡大する1セル3ピクセル以上。小さいQRコードの多くはこれで読める
- 2余白ごと切り取り直す四隅の大きな四角の外側に白い帯が見えるように囲む
- 3色を確かめる反転していたら明暗を戻す。ダークモードを切る
- 4別の読み取り方を試すSnipping Tool で読めなければスマホ、OpenCV で読めなければ zbar
- 5元のデータをもらう画面共有・動画のQRコードは、URL を文字で送ってもらうのが早い
スマホのカメラで読めないときは、Apple・各メーカーのヘルプのとおりにQRコード全体を枠に収め、パソコンの画面の明るさを上げて映り込みを避けます。スクリーンショットを貼ってやり取りする場合の画像のコピーの扱いは、関連記事「JavaScriptクリップボードコピー|画像対応・動かない原因一覧」で扱っています。
判断表:QRコードをどの方法で読む・作るか
この節では、場面に合った読み方・作り方を、表から選べます。
| 場面 | 向く方法 | 理由 |
|---|---|---|
| Windows 11 で画面のQRコードを1つ読む | Snipping Tool のテキスト アクション | 標準のアプリで完結し、画像を外に送らない |
| スマホが手元にある | スマホのカメラ | どの OS の画面でも同じ手順で読める |
| Mac・Chrome で公開ページのQRコードを読む | 「Google レンズで検索」 | 右クリックだけで済む。機密でない画像に限る |
| 社外秘の資料・ログイン用のQRコード | Snipping Tool・スマホ・zbarimg・Python | 画像を外部のサービスに渡さない |
| 大量の画像からQRコードを読む | zbarimg か pyzbar | 1枚約4ミリ秒で、複数のQRコードも読めた |
| 開いているページの URL を渡す | Chrome・Edge のQRコード作成 | ソフトの追加なしで PNG を保存できる |
| 印刷物・名刺・スライドに載せる | segno の SVG、誤り訂正 M〜Q | 大きさを変えても劣化せず、契約に左右されない |
| 後から飛び先を変えたい・読まれた回数を数えたい | 作成サービスの動的QRコード | 転送用 URL を使う。契約が切れると読めなくなる点に注意 |
ブラウザの画面で QRコードの画像の大きさ(CSS の幅や実際の画素数)を確かめる方法は、関連記事「Chrome DevToolsの使い方|デバッグ手順と便利機能一覧」で扱っています。
よくある質問(QRコードの読み取り・作成)
この節では、QRコードの読み取りと作成でよく調べられる疑問に答えます。
Q. パソコンの画面に表示されたQRコードを、そのパソコンだけで読めますか?
読めます。Windows 11 は Snipping Tool のテキスト アクション、Chrome は画像の右クリックから「Google レンズで検索」、どの OS でもスクリーンショットを zbarimg や Python で読む方法があります。内蔵カメラでは自分の画面は写せません。
Q. パソコンにカメラが付いていません。QRコードは読めますか?
画面上のQRコードなら、カメラは使いません。紙のQRコードは、スマホで撮った写真を PC に送り、画像として読みます。
Q. Windows 10 の Snipping Tool でもQRコードを読めますか?
QRコードの検出は、Windows Insider ブログで Windows 11 向けの更新として案内されています。Windows 10 では、Chrome・Edge で画像を調べるか、スマホで読む方法を使います。
Q. Mac の標準機能でQRコードを読めますか?
Apple の公式ヘルプでは、Mac のプレビューや写真でQRコードを読む手順は確かめられませんでした。Chrome の「Google レンズで検索」か、iPhone のカメラで画面を読む方法が確実です。
Q. オンラインのQRコード読み取りサイトを使っても問題ありませんか?
公開されているチラシのQRコードなら手軽ですが、画像がそのサービスに送られます。社内資料・ログイン用・支払い用のQRコードは、手元で読む方法を使います。
Q. URLをQRコードにするのにお金はかかりますか?
Chrome・Edge の機能、Python の qrcode・segno、qrencode は無料で使えます。デンソーウェーブの FAQ では、規格どおりのQRコードは作成・読み取り・商用利用のいずれも申請や使用料が要らないと説明されています(「QRコード」は株式会社デンソーウェーブの登録商標です)。
Q. 作ったQRコードに有効期限はありますか?
URL を直接埋め込んだ静的QRコードには期限がなく、URL のページがある限り読めます。作成サービスの転送用 URL を使う動的QRコードは、そのサービスの契約によって読めなくなることがあります。
Q. QRコードは何文字まで入りますか?
入る量はバージョン(最大40)と誤り訂正レベルで決まります。手元では英字3,000文字を入れたところで ValueError: Invalid version (was 41, expected 1 to 40) になりました。URL は短いほど、粗くて読みやすいQRコードになります。
Q. 誤り訂正レベルはどれを選べばよいですか?
画面に出すだけなら M、印刷物で汚れや折れが心配なら Q、ロゴを重ねるなら H を選びます。手元の実測では、ロゴで中央を15%隠しても読めたのは Q と H だけでした。
Q. 読み取ったURLが本物かどうか、どう確かめますか?
開く前に表示されたドメインを見て、配った会社の公式サイトのドメインと同じかを確かめます。Python なら urllib.parse.urlsplit(url).hostname でドメインの部分だけを取り出せます。
Q. スマホの画面に出したQRコードを、パソコンで読めますか?
Windows ならカメラアプリの「バーコード」でスマホの画面をカメラにかざします。スマホでスクリーンショットを撮って PC に送り、画像として読む方法もあります。
まとめ
- 画面上のQRコードは「切り取って読む」:Windows 11 は Snipping Tool(Windows キー+Shift+S→テキスト アクション)、Chrome は「Google レンズで検索」、どの OS でも zbarimg・Python で読める。PCのカメラは画面を写せない。
- URLをQRコードにするなら Chrome・Edge の機能が早い:Chrome は「キャスト、保存、共有」→「QR コードを作成」、Edge は「Create QR code for this page」。大量・印刷用は qrcode・segno・qrencode。
- 画面では1セル2ピクセル以上、できれば3ピクセル以上:Chromium で実測すると、1.4 ピクセル以下はどの方法でも読めず、整数倍の大きさが安定した。
- 余白4セル・白地に黒・ロゴは H で15%まで:余白なしで暗い背景、色の反転、M で10%のロゴは読めなかった。URL は短く英字にする。
- 機密のQRコードは手元で読む:画像検索や読み取りサイトは画像を外に送る。読み取った URL はドメインを確かめてから開く。
参考・出典
- Microsoft サポート「カメラ アプリの使い方」 https://support.microsoft.com/ja-jp/windows/カメラ-アプリの使い方-ea40b69f-be6a-840e-9c8c-1fd6eea97c22(確認日 2026年10月29日)
- Microsoft サポート「Snipping Tool を使ってスクリーン ショットをキャプチャする」 https://support.microsoft.com/ja-jp/help/13776/(確認日 2026年10月29日)
- Windows Insider Blog「Snipping Tool and Paint updates begin rolling out to Windows Insiders」(2024年5月9日) https://blogs.windows.com/windows-insider/2024/05/09/snipping-tool-and-paint-updates-begin-rolling-out-to-windows-insiders(確認日 2026年10月29日)
- Microsoft Edge「QR code generator」 https://explore.microsoft.com/en-us/edge/features/qr-code-generator(確認日 2026年10月29日)
- Google Chrome ヘルプ「Chrome でタブを共有する」 https://support.google.com/chrome/answer/9979877?hl=ja(確認日 2026年10月29日)
- Google 検索ヘルプ「Google で画像を使って検索する」 https://support.google.com/websearch/answer/1325808?hl=ja(確認日 2026年10月29日)
- Apple サポート「iPhoneやiPadでQRコードをスキャンする」 https://support.apple.com/ja-jp/HT208843(確認日 2026年10月29日)
- Apple サポート「Macでスクリーンショットを撮る」 https://support.apple.com/ja-jp/102646(確認日 2026年10月29日)
- Apple サポート「Interact with text in a photo using Live Text in Preview on Mac」 https://support.apple.com/guide/preview/prvw625a5b2c/mac(確認日 2026年10月29日)
- デンソーウェーブ QRcode.com「QRコードのバージョン」「誤り訂正機能」「よくあるご質問」 https://www.qrcode.com/(確認日 2026年10月29日)
- qrcode(PyPI) https://pypi.org/project/qrcode/(確認日 2026年10月29日)
本記事の内容は、ご自由にお使いください。
ご利用の際は、出典として本ページへのリンクを記載いただけますようお願いします。
(記載例)出典:株式会社RJC「QRコード読み取り(画面上・PC)とURLをQRコードにする方法|読める大きさを実測」
株式会社RJC ― SI事業・SES事業・AI駆動開発。RJCは一緒に成長を楽しめる会社です。
WE ARE HIRING
RJCで一緒に開発しながら、
成長を楽しみませんか?
RJCは、Web・モバイル・AIを活用した開発プロジェクトで、テックリードやPM・PMOも活躍するシステム開発会社です。会社を知る、待遇を確かめる、話を聞いてみる。気になるところ見てみてください!
- 127日年間休日
- 12時間平均残業時間
- 毎日ガチャ遊びココロも大切にする福利厚生。アマギフなどの賞品ラインナップ!
ほかにも、チケットレストラン、書籍読み放題、2年ごとの慰労報奨(休暇 or 金一封)、11期連続の黒字決算。