QRコード(クイックレスポンスコード)は、物理的な世界とデジタルな世界をつなぐ多用途ツールとして登場しました。連絡先情報やウェブサイトリンクの共有から、支払いの促進や在庫の追跡に至るまで、QRコードはさまざまな分野で応用されています。Pythonの機能を活用することで、ユーザーはパーソナライズされたQRコードの作成を自動化したり、プロジェクトにスキャン機能を統合したりして、効率性とユーザーエンゲージメントを向上させることができます。この記事では、簡単なPythonコードを使用してQRコードを作成およびスキャンするプロセスを自動化する方法を紹介します。
この記事で使用する方法にはSpire.Barcode for Pythonが必要です。PyPI:pip install Spire.Barcode
。
PythonでQRコードを作成する
ライブラリのBarcodeSettings
クラスは、バーコード生成の設定を構成するために使用できます。これらの設定には、バーコードの種類、エンコードするデータ、色、マージン、水平および垂直解像度が含まれます。
これらの設定を完了したら、これらの構成を使用してBarcodeGenerator
インスタンスを作成できます。その後、ジェネレーターのGenerateImage()
メソッドを呼び出してバーコード画像を生成できます。
手順は次のとおりです:
-
BarcodeSettings
、BarCodeType
、QRCodeECL
、BarCodeGenerator
モジュールをインポートします。 -
BarcodeSettings
オブジェクトを作成します。 -
BarcodeSettings.Type
プロパティを使用してバーコードの種類をQRコードに設定します。 -
BarcodeSettings.Data2D
プロパティを使用して2Dバーコードのデータを設定します。 -
BarcodeSettings
オブジェクトのプロパティを使用してバーコードのその他の属性を設定します。 - これらの設定に基づいて
BarCodeGenerator
オブジェクトを作成します。 -
BarCodeGenerator.GenerateImage()
メソッドを使用してQRコード画像を作成します。
コード例
from spire.barcode import BarcodeSettings, BarCodeType, QRCodeECL, BarCodeGenerator
# 全てのバイトをファイルに書き込む
def WriteAllBytes(fname: str, data):
with open(fname, "wb") as fp:
fp.write(data)
fp.close()
# BarcodeSettings オブジェクトを作成
barcodeSettings = BarcodeSettings()
# バーコードタイプを QR コードに設定
barcodeSettings.Type = BarCodeType.QRCode
# 2D バーコードのデータを設定
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("PDF.png")
# 指定された設定を使用して BarCodeGenerator インスタンスを作成
barCodeGenerator = BarCodeGenerator(barcodeSettings)
# バーコード画像を生成
image = barCodeGenerator.GenerateImage()
# PNG 画像をディスクに書き込む
WriteAllBytes("output/QR-Code.png", image)
生成結果
PythonでQRコードをスキャンする
ライブラリのBarcodeScanner
クラスは、バーコード画像の認識に使用されます。このクラスはいくつかの方法でバーコードからデータを抽出するためのメソッドを提供しています:
-
ScanOneFile()
: 単一のバーコード画像ファイルをスキャンして、抽出されたデータを返します。 -
ScanFile()
: 指定された画像ファイルに存在するすべてのバーコードをスキャンして、抽出されたデータを返します。 -
ScanStream()
: 画像データのストリームからバーコードをスキャンし、抽出された情報を返します。
以下のコードは、QRコード画像をスキャンする方法を示しています。
QRコードをスキャンする手順は次のとおりです (QRコードのスキャンにはライセンスが必要):
-
BarcodeScanner
モジュールをインポートします。 -
BarcodeScanner.ScanOneFile()
メソッドを使用して1つのQRコードが含まれる画像をスキャンするか、BarcodeScanner.ScanFile()
メソッドを使用して複数のQRコードが含まれる画像をスキャンします。 - スキャン結果をテキストファイルに書き込みます。
コード例
from spire.barcode import BarcodeScanner
License.SetLicenseKey("license key")
# 1つのバーコードを含む画像ファイルをスキャン
result = BarcodeScanner.ScanOneFile("output/QR-Code.png")
# 複数のバーコードを含む画像ファイルをスキャン
# results = BarcodeScanner.ScanFile("QR-Codes.png")
# スキャン結果をテキストファイルに保存
with open("output/QR-Code.txt", "w", encoding="utf-8") as f:
f.write(result)
スキャン結果
この記事では、Pythonを使用してQRコードを作成およびスキャンする方法を示しました。
さらに多くのQRコード処理の技術については、Spire.Barcode for Pythonチュートリアルをご覧ください。