QR コードは、URL や連絡先、決済情報など、さまざまな情報を格納できる 2 次元バーコードの一種です。デジタルコンテンツに素早く簡単にアクセスできるため、QR コードは現代のテクノロジー社会において非常に便利なツールとして広く利用されています。
この記事では、Spire.Barcode for Python を使用して、Python で QR コードを生成および読み取る方法をご紹介します。
Spire.Barcode for Python のインストール
Spire.Barcode for Python は、以下の pip コマンドでインストールできます:
pip install spire.barcode
軽量な処理であれば、無償版の Free Spire.Barcode for Python も利用可能です。こちらは次のコマンドでインストールできます:
pip install spire.barcode.free
Python で QR コードを生成する
Spire.Barcode for Python では、BarcodeSettings クラスを使用してバーコード生成に関する各種設定を行うことができます。設定項目には、バーコードの種類、エンコードするデータ、色、余白、解像度(水平および垂直)などが含まれます。
必要な設定を構成したら、それに基づいて BarcodeGenerator インスタンスを作成し、GenerateImage() メソッドを呼び出すことで QR コード画像を生成できます。
Python で QR コードを生成する手順は以下のとおりです:
- BarcodeSettings オブジェクトを作成します。
- BarcodeSettings.Type プロパティでバーコードの種類を QR コードに設定します。
- BarcodeSettings.Data2D プロパティを使用して、QR コードにエンコードするデータを設定します。
- その他の属性(色、余白など)を BarcodeSettings のプロパティで設定します。
- 設定に基づいて BarcodeGenerator オブジェクトを作成します。
- BarcodeGenerator.GenerateImage() メソッドを呼び出して QR コード画像を生成します。
- Python
from spire.barcode import *
# すべてのバイトをファイルに書き込む
def WriteAllBytes(fname: str, data):
with open(fname, "wb") as fp:
fp.write(data)
fp.close()
# ライセンスキーを適用
License.SetLicenseKey("ライセンスキー")
# BarcodeSettings オブジェクトを作成
barcodeSettings = BarcodeSettings()
# バーコードの種類をQRコードに設定
barcodeSettings.Type = BarCodeType.QRCode
# 2次元バーコードのデータを設定
barcodeSettings.Data2D = "Hello, World"
# 余白を設定
barcodeSettings.LeftMargin = 0.2
barcodeSettings.RightMargin = 0.2
barcodeSettings.TopMargin = 0.2
barcodeSettings.BottomMargin = 0.2
# 水平解像度を設定
barcodeSettings.DpiX = 500
# 垂直解像度を設定
barcodeSettings.DpiY = 500
# 誤り訂正レベルを設定
barcodeSettings.QRCodeECL = QRCodeECL.M
# バーコード上にテキストを表示しない
barcodeSettings.ShowText = False
# QRコードの中央にロゴを追加
barcodeSettings.SetQRCodeLogoImage("logo.png")
# 指定した設定で BarCodeGenerator のインスタンスを作成
barCodeGenerator = BarCodeGenerator(barcodeSettings)
# バーコードの画像を生成
image = barCodeGenerator.GenerateImage()
# PNG画像をディスクに書き込む
WriteAllBytes("output/QRCode.png", image)
生成されたQRコード:
Python で QR コード画像を読み取る
Spire.Barcode は、バーコード画像の認識を担当する BarcodeScanner クラスを提供しています。このクラスには、バーコードからデータを抽出するための複数のメソッドが用意されています:
- ScanOneFile():1 つのバーコード画像ファイルを読み取り、抽出したデータを返します。
- ScanFile():指定した画像ファイル内のすべてのバーコードをスキャンし、抽出されたデータを返します。
- ScanStream():画像データのストリームからバーコードを読み取り、情報を抽出します。
以下のコードは、QR コード画像をスキャンする方法を示しています。
- Python
from spire.barcode import *
# ライセンスキーを適用
License.SetLicenseKey("ライセンスキー")
# 1つのバーコードを含む画像ファイルをスキャン
result = BarcodeScanner.ScanOneFile("output/QRCode.png")
# 複数のバーコードを含む画像ファイルをスキャン
# results = BarcodeScanner.ScanFile("output/Image.png")
# 結果を出力
print(result)
スキャンの結果:
すべての機能を試すには
Spire.Barcode for Python のすべての機能を体験したい場合は、弊社このメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。までご連絡のうえ、30 日間有効な一時ライセンスをお申し込みください。