チュートリアル

簡単にライブラリーを使用するためのチュートリアルコレクション

チュートリアル»Python»Spire.Barcode for Python»Python によるバーコード読み取り:画像・バイトデータ対応
2026-05-19

Python によるバーコード読み取り:画像・バイトデータ対応

Python でのバーコード読み取り

現代のビジネスシステムは、小売のチェックアウトレーンから倉庫の在庫追跡に至るまで、バーコードスキャン機能に大きく依存しています。強力なプログラミングライブラリにより、この不可欠な機能をカスタムソフトウェアソリューションに簡単に統合できるようになりました。これらのソリューションの中でも、Python ベースの実装はその汎用性と使いやすさから特に人気が高まっています。

この記事では、Spire.Barcode for Python ライブラリを使用して Python でバーコードを読み取る方法を探ります。このライブラリは、バーコードスキャンのための使いやすい API を提供します。ライブラリのセットアップから、画像ファイルやバイトデータからのバーコード読み取り、さらには精度を高めるためのカスタマイズオプションまで、すべてをカバーします。

目次:

バーコード読み取りのための Python ライブラリ

Spire.Barcode for Python は、Python アプリケーションでバーコードを作成および読み取るために特別に設計された強力なライブラリです。このライブラリは以下のような様々なバーコードフォーマットをサポートしています。

  • 1Dバーコード: Code 128、Code 39、EAN-13、UPC-A など。
  • 2Dバーコード: QR コード、DataMatrix、PDF417 など。

Spire.Barcode の注目すべき機能

  • 多様なフォーマットサポート: PNG、JPG、BMP、GIF、TIFF など、様々な画像フォーマットからバーコードを読み取り可能。
  • バッチスキャン: 単一の画像ファイル内の複数のバーコードを検出可能。
  • 卓越した認識精度: 高度なアルゴリズムを利用し、信頼性の高いバーコード検出を実現。
  • 柔軟なカスタマイズ: バーコードタイプを指定し、チェックサム検証を有効にして認識効率を高められる。

このライブラリは、画像ファイルとバイトデータの両方からバーコードを読み取る機能と、多様な要件を満たすための広範なカスタマイズオプションを提供します。

Spire.Barcode を Python アプリケーションに統合する

Spire.Barcode を使い始めるには、まずライブラリをインストールする必要があります。これは pip を使って行えます。ターミナルを開き、以下を実行してください。

pip install spire.barcode

ライブラリをインストールしたら、その全機能をアンロックするためのライセンスキーが必要です。ウェブサイトからトライアルライセンスを取得し、Python スクリプトでライブラリを設定してください。

from spire.barcode import *

License.SetLicenseKey("your license key")

これでライブラリの準備が整いましたので、Python を使ったバーコードの読み取りを開始できます。

Python で画像ファイルからバーコードを読み取る

画像ファイルから単一のバーコードを読み取ることは、Spire.Barcode を使えば簡単です。以下のようにします。

from spire.barcode import *

# ライセンスキーを適用して全機能をアンロック
License.SetLicenseKey("your license key")

# 画像ファイルからバーコードを読み取り
result = BarcodeScanner.ScanOneFile("qr_code.png")

# 結果を出力
print(result)

説明

  • License.SetLicenseKey() : ライセンスキーでライブラリを初期化します。
  • BarcodeScanner.ScanOneFile() : 指定された画像ファイルから単一のバーコードを読み取ります。
  • 結果はコンソールに出力され、バーコードのデータが表示されます。

出力:

Python でのバーコード読み取り結果

Python で画像ファイルから複数のバーコードを読み取る

単一の画像ファイルから複数のバーコードを読み取る必要がある場合も、Spire.Barcode を使えば簡単です。以下に例を示します。

from spire.barcode import *

# ライセンスキーを適用して全機能をアンロック
License.SetLicenseKey("your license key")

# 画像ファイルから複数のバーコードを読み取り
results = BarcodeScanner.ScanFile("barcodes.jpg")

# 結果を出力
print(results)

説明

  • BarcodeScanner.ScanFile() : 画像全体をスキャンして複数のバーコードを探します。
  • 結果はリストとして保存されます。リスト内の各要素には、検出されたバーコードのデータが含まれます。

出力:

Python で複数のバーコードを読み込む

Python で画像バイトデータからバーコードを読み取る

ファイルから直接バーコードを読み取ることに加えて、Spire.Barcode for Python はインメモリの画像バイトデータからのバーコードデコードをサポートしています。このアプローチは、動的に読み込まれた画像(例:API、データベース、ユーザーアップロードなど)を扱う場合に便利です。

以下がその方法です。

from spire.barcode import *

# ライセンスキーを適用して全機能をアンロック
License.SetLicenseKey("your license key")

# 画像ファイルをバイトデータとして読み込み
image_path = "barcodes.jpg"
with open(image_path, "rb") as file:
    image_bytes = file.read()

# バイトデータをSpire.BarcodeのStreamオブジェクトでラップ
stream = Stream(image_bytes)

# ストリームから1つのバーコードを読み取り
# result = BarcodeScanner.ScanOneStream(stream)

# ストリームから複数のバーコードを読み取り
results = BarcodeScanner.ScanStream(stream)

# 結果を出力
print(results)

説明

  • image_bytes : 画像ファイル(例:PNG、JPG)やAPI、データベースなどの他のソースから読み込まれた生のバイナリデータです。
  • Stream (Spire.Barcode のクラス): image_bytes を、Spire.Barcode のスキャナと互換性のあるインメモリストリームに変換します。
  • BarcodeScanner.ScanStream() : バーコードをスキャンするストリームで、検出されたバーコードのリストを返します。

バーコード認識設定の調整

BarcodeScanner クラスは、バーコード認識設定をカスタマイズするための様々なメソッドを提供しています。これにより、検出の精度と効率を向上させることができます。主なメソッドには以下のようなものがあります。

  • ScanOneFileBarCodeTypeIncludeCheckSum(fileName: str, barcodeType: BarCodeType, IncludeCheckSum: bool)
  • ScanFileBarCodeTypeIncludeCheckSum(fileName: str, barcodeType: BarCodeType, IncludeCheckSum: bool)
  • ScanOneStreamBarCodeTypeIncludeCheckSum(stream: Stream, barcodeType: BarCodeType, IncludeCheckSum: bool)
  • ScanStreamBarCodeTypeIncludeCheckSum(stream: Stream, barcodeType: BarCodeType, IncludeCheckSum: bool)

以下は、バーコードタイプを指定し、チェックサム検証を含める例です。

from spire.barcode import *

# ライセンスキーを適用して全機能をアンロック
License.SetLicenseKey("your license key")

# バーコードタイプを指定(例:EAN13)
barcode_type = BarCodeType.EAN13

# チェックサムを含めて画像ファイルからバーコードを読み取り
result = BarcodeScanner.ScanOneFileBarCodeTypeIncludeCheckSum("EAN_13.png", barcode_type, True)

# 結果を出力
print(result)

説明

  • BarcodeType : スキャンするバーコードのタイプを指定します。
  • IncludeCheckSum (bool): スキャン中にチェックサムを検証するかどうかを決定します。Trueに設定すると、データのエラーを検出するのに役立ちます。

結論

この記事では、Spire.Barcode ライブラリを使用して Python でバーコードを読み取る方法を探りました。セットアッププロセス、画像ファイルからの単一および複数バーコードの読み取り、画像バイトデータからの読み取りについて説明しました。さらに、精度を向上させるためのバーコード検出設定のカスタマイズ方法についても議論しました。これらのツールを自由に使えば、バーコードスキャン機能を Python アプリケーションに簡単に統合できます。

よくある質問(FAQ)

Q1: Spire.Barcode で読み取れるバーコードの種類は何ですか?

Spire.Barcode は、QR コード、UPC、EAN、Code 128、Code 39 など、幅広いバーコードフォーマットをサポートしています。

Q2: Spire.Barcode を使用するにはライセンスが必要ですか?

はい、ライブラリの全機能をアンロックするにはライセンスキーが必要です。ウェブサイトから無料の30日間トライアルライセンスを取得できます。

Q3: Spire.Barcode を使ってウェブカメラからバーコードを読み取ることはできますか?

Spire.Barcode はウェブカメラ入力を直接サポートしていませんが、ウェブカメラから画像をキャプチャし、その画像からライブラリを使ってバーコードを読み取ることができます。

Q4: バーコードスキャンの精度を向上させるにはどうすればよいですか?

スキャン時にバーコードタイプを指定し、チェックサム検証を有効にすることで精度を向上させることができます。また、画像が鮮明で明るいことを確認してください。

Q5: Spire.Barcode for Python でバーコードを生成できますか?

はい、Spire.Barcode はバーコードの認識と生成の両方をサポートしています。詳細な手順については、こちらのチュートリアルをご覧ください:Pythonでバーコードを生成する方法:ステップバイステップガイド

Read 23 times