0
3

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でQRコードを作成およびスキャンする

Posted at

QRコード(クイックレスポンスコード)は、物理的な世界とデジタルな世界をつなぐ多用途ツールとして登場しました。連絡先情報やウェブサイトリンクの共有から、支払いの促進や在庫の追跡に至るまで、QRコードはさまざまな分野で応用されています。Pythonの機能を活用することで、ユーザーはパーソナライズされたQRコードの作成を自動化したり、プロジェクトにスキャン機能を統合したりして、効率性とユーザーエンゲージメントを向上させることができます。この記事では、簡単なPythonコードを使用してQRコードを作成およびスキャンするプロセスを自動化する方法を紹介します。

この記事で使用する方法にはSpire.Barcode for Pythonが必要です。PyPI:pip install Spire.Barcode

無料ライセンスの申請

PythonでQRコードを作成する

ライブラリのBarcodeSettingsクラスは、バーコード生成の設定を構成するために使用できます。これらの設定には、バーコードの種類、エンコードするデータ、色、マージン、水平および垂直解像度が含まれます。
これらの設定を完了したら、これらの構成を使用してBarcodeGeneratorインスタンスを作成できます。その後、ジェネレーターのGenerateImage()メソッドを呼び出してバーコード画像を生成できます。
手順は次のとおりです:

  1. BarcodeSettingsBarCodeTypeQRCodeECLBarCodeGeneratorモジュールをインポートします。
  2. BarcodeSettingsオブジェクトを作成します。
  3. BarcodeSettings.Typeプロパティを使用してバーコードの種類をQRコードに設定します。
  4. BarcodeSettings.Data2Dプロパティを使用して2Dバーコードのデータを設定します。
  5. BarcodeSettingsオブジェクトのプロパティを使用してバーコードのその他の属性を設定します。
  6. これらの設定に基づいてBarCodeGeneratorオブジェクトを作成します。
  7. 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コードを作成

PythonでQRコードをスキャンする

ライブラリのBarcodeScannerクラスは、バーコード画像の認識に使用されます。このクラスはいくつかの方法でバーコードからデータを抽出するためのメソッドを提供しています:

  • ScanOneFile(): 単一のバーコード画像ファイルをスキャンして、抽出されたデータを返します。
  • ScanFile(): 指定された画像ファイルに存在するすべてのバーコードをスキャンして、抽出されたデータを返します。
  • ScanStream(): 画像データのストリームからバーコードをスキャンし、抽出された情報を返します。

以下のコードは、QRコード画像をスキャンする方法を示しています。

QRコードをスキャンする手順は次のとおりです (QRコードのスキャンにはライセンスが必要):

  1. BarcodeScannerモジュールをインポートします。
  2. BarcodeScanner.ScanOneFile()メソッドを使用して1つのQRコードが含まれる画像をスキャンするか、BarcodeScanner.ScanFile()メソッドを使用して複数のQRコードが含まれる画像をスキャンします。
  3. スキャン結果をテキストファイルに書き込みます。

コード例

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コードをスキャン

この記事では、Pythonを使用してQRコードを作成およびスキャンする方法を示しました。

さらに多くのQRコード処理の技術については、Spire.Barcode for Pythonチュートリアルをご覧ください。

0
3
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
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?