【ITニュース解説】How QR Codes Work (and How to Make Your Own in Python)

2025年09月04日に「Dev.to」が公開したITニュース「How QR Codes Work (and How to Make Your Own in Python)」について初心者にもわかりやすいように丁寧に解説しています。

作成日: 更新日:

ITニュース概要

QRコードは二次元バーコードで、URL等の情報を格納できる。小さな正方形の配置でデータを表現し、位置検出パターンや誤り訂正機能を持つ。Pythonのqrcodeライブラリを使えば、簡単にQRコードを生成可能。生成した画像は、色やサイズ、ロゴの埋め込みなどカスタマイズもできる。名刺や履歴書にQRコードを追加して、Webサイトへのアクセスを容易にすることも可能。

ITニュース解説

QRコードは、レストランのメニュー表示やイベントのチケット、Wi-Fiアクセス、支払いなど、様々な場所で利用されている。一見複雑に見えるQRコードだが、その仕組みは意外とシンプルだ。

QRコードはQuick Response codeの略で、二次元の格子状にデータを格納する方法だ。従来のバーコードが一方向にしか情報を読み取れないのに対し、QRコードは水平方向と垂直方向の両方から情報を読み取れるため、より多くの情報を格納できる。

QRコードの構成要素は主に3つある。まず、データモジュールと呼ばれる小さな正方形があり、これらが実際の情報(リンク、テキスト、Wi-Fiの認証情報など)を保持する。次に、位置検出マーカーと呼ばれる大きな正方形が3つの角に配置されており、スマートフォンのカメラにQRコードの向きと読み取り方を伝える役割を果たす。そして、エラー訂正機能があり、QRコードの一部が汚れていたり、折りたたまれていたりしても、データを復元できる。

QRコードはどのようにデータをエンコードしているのだろうか。例えば、「Hello」というテキストをQRコードに格納する場合、まずテキストはASCIIやUTF-8などの標準的なシステムを使って数値に変換される。次に、これらの数値は二進数(1と0)に変換される。そして、この1と0が格子状のマスにジグザグに配置される。通常、黒いマスは1を、白いマスは0を表す。スマートフォンがQRコードをスキャンすると、この二進数のメッセージを読み取っていることになる。

QRコードの重要な機能の一つに、エラー訂正がある。QRコードは、リード・ソロモン方式のエラー訂正技術を使用しており、これにより、QRコードの一部が破損していても、最大30%までであれば正常に読み取ることができる。エラー訂正機能のおかげで、QRコードの中央にロゴを配置することも可能だ。

QRコードに格納できるのはURLだけではない。二進数データであれば、Wi-Fiパスワード、連絡先情報、支払いリクエスト、小さな画像など、様々な情報を格納できる。スマートフォンは、QRコードをデコードした後、ペイロードをどのように解釈すればよいかを理解する必要がある。

Pythonを使えば、QRコードを簡単に作成できる。qrcodeライブラリを利用することで、数行のコードでQRコードを生成できる。

1import qrcode
2
3# エンコードしたいデータ
4data = "https://developer-service.blog"
5
6# QRコードを生成
7qr = qrcode.QRCode(
8    version=1,  # サイズを制御 (1 = 21x21 モジュール)
9    error_correction=qrcode.constants.ERROR_CORRECT_H,  # 高いエラー訂正能力
10    box_size=10,
11    border=4,
12)
13
14# データをQRコードに追加
15qr.add_data(data)
16
17# QRコードを作成
18qr.make(fit=True)
19
20# QRコードを黒、背景を白で塗りつぶす
21img = qr.make_image(fill_color="black", back_color="white")
22
23# QRコードを保存
24img.save("my_qr.png")

このコードを実行するには、qrcodeライブラリとPillowライブラリをインストールする必要がある。

pip install qrcode Pillow

上記のコードを実行すると、「my_qr.png」という名前のQRコード画像が生成される。生成されたQRコードの色やサイズ、ロゴの埋め込みなど、自由にカスタマイズすることも可能だ。

QRコードは、物理世界とデジタル世界を繋ぐシンプルな架け橋となる。印刷されたチラシから直接リンクにアクセスしたり、名刺から連絡先情報を簡単にスマートフォンに保存したり、Wi-Fiパスワードをタイプすることなく共有したりできる。

開発者にとって、QRコードはオフラインとオンラインを繋ぐポータルを作成できる便利なツールだ。自分のポートフォリオへのリンク、製品の詳細情報、ちょっとしたサイドプロジェクトなど、QRコードを使って現実世界の人々と簡単に繋がることができる。

【ITニュース解説】How QR Codes Work (and How to Make Your Own in Python) | いっしー@Webエンジニア