0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Python】qrcodeライブラリでQRコードを作成する方法

0
Posted at

はじめに

本記事では、Pythonのqrcodeライブラリを使用して
QRコードを作成する方法をまとめます。


1. インストール

pip install qrcode[pil]

[pil]をつけることでPillowも同時にインストールされます。
画像として保存するためにPillowが必要です。


2. 基本的な使い方

シンプルにQRコードを作成する

import qrcode

# QRコードを作成
qr = qrcode.make("https://qiita.com")

# 画像として保存
qr.save("qrcode.png")
print("QRコードを作成しました: qrcode.png")

3. 詳細設定をして作成する

import qrcode
from qrcode.constants import ERROR_CORRECT_L, ERROR_CORRECT_M, ERROR_CORRECT_Q, ERROR_CORRECT_H

qr = qrcode.QRCode(
    version=1,                        # QRコードのサイズ(1〜40)
    error_correction=ERROR_CORRECT_H, # エラー訂正レベル
    box_size=10,                      # 1マスのピクセルサイズ
    border=4,                         # 周囲の余白(マス数)
)

qr.add_data("https://qiita.com")
qr.make(fit=True)  # データに合わせてversionを自動調整

# 色をカスタマイズして画像を生成
img = qr.make_image(
    fill_color="black",  # QRコードの色
    back_color="white"   # 背景色
)

img.save("qrcode_custom.png")

エラー訂正レベルの説明

レベル 定数 復元可能率 用途
L ERROR_CORRECT_L 約7% データ量を小さくしたい場合
M ERROR_CORRECT_M 約15% 一般的な用途(デフォルト)
Q ERROR_CORRECT_Q 約25% 汚れが心配な場合
H ERROR_CORRECT_H 約30% ロゴを重ねる場合など

4. 色をカスタマイズする

import qrcode

qr = qrcode.QRCode(version=1, box_size=10, border=4)
qr.add_data("https://qiita.com")
qr.make(fit=True)

# 色を変更(RGB形式でも指定可能)
img = qr.make_image(
    fill_color="#1E3A5F",  # 紺色
    back_color="#F0F0F0"   # 薄いグレー
)

img.save("qrcode_colored.png")

5. 複数のQRコードをまとめて作成する

import qrcode
from pathlib import Path


def create_qrcode(data: str, filename: str, box_size: int = 10) -> None:
    """QRコードを作成して保存する"""
    qr = qrcode.QRCode(
        version=1,
        error_correction=qrcode.constants.ERROR_CORRECT_M,
        box_size=box_size,
        border=4,
    )
    qr.add_data(data)
    qr.make(fit=True)

    img = qr.make_image(fill_color="black", back_color="white")
    img.save(filename)
    print(f"作成完了: {filename}")


if __name__ == "__main__":
    # 出力先フォルダを作成
    output_dir = Path("qrcodes")
    output_dir.mkdir(exist_ok=True)

    # 作成するQRコードのデータ
    items = [
        ("https://qiita.com", "qiita.png"),
        ("https://github.com", "github.png"),
        ("TEL:090-0000-0000", "tel.png"),
        ("WIFI:S:MyNetwork;T:WPA;P:password;;", "wifi.png"),
    ]

    for data, filename in items:
        create_qrcode(data, str(output_dir / filename))

6. テキスト・電話番号・WiFiのQRコード

用途 データ形式
URL そのまま https://example.com
テキスト そのまま Hello, World!
電話番号 TEL:番号 TEL:090-0000-0000
メール mailto:アドレス mailto:test@example.com
WiFi WIFI:S:SSID;T:WPA;P:パスワード;; WIFI:S:MyNet;T:WPA;P:pass;;

まとめ

項目 内容
インストール pip install qrcode[pil]
基本作成 qrcode.make(データ)
詳細設定 qrcode.QRCode()でカスタマイズ
色変更 make_image(fill_color, back_color)
サイズ調整 box_sizeborderで調整
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?