ZXingでのバーコードスキャン方法 (C#開発者向け)
バーコードは、データを明確で機械が読み取れる形で提示します。 最初は、バーコードは異なる幅と間隔を持つ平行線で構成され、データの表現として機能していました。 これらの従来の線形または一次元(1D)のバーコードは、バコードリーダーと呼ばれる専門の光学装置で読み取ることができました。 しかし、バーコードの進化により、2次元(2D)バーコード、またはマトリクスコードとも呼ばれるものが発明されました。 伝統的なバーコードとは異なり、2Dバーコードはバーの代わりに長方形、点、六角形といったパターンを利用します。 これらの2Dバーコードを読み取るための特定の光学スキャナーのセットアップが利用可能であり、別の方法としては、コンピュータに接続されたデジタルカメラを使用してデコードソフトウェアを実行する方法があります。 さらに、スマートフォンなどのモバイルデバイスは、内蔵カメラと専用アプリケーションを活用して2Dバーコードスキャナーとして機能することができます。
ZXingバーコードスキャナー
Zebra Crossing、よくZXingとして知られるものは、Javaで開発され、他の言語にも移植されたオープンソースの多フォーマット1D/2Dバーコード画像処理ツールキットです。 ZXingを構成するモジュールには、コアな画像デコードライブラリ、Java特有のクライアントコード、AndroidクライアントのBarcode Scannerがあります。 それに基づいて多数の独立したオープンソースプロジェクトが構築されています。
1. 特徴
- URL、連絡先情報、カレンダーイベントなどを追跡できます。
- Java SEアプリケーション向けに作成されました。
- バーコードスキャナー統合が可能です。
- シンプルなGoogle Glassアプリケーションです。
2. .NETでのZXingの使用
Visual Studioを開き、ファイルメニューから"新しいプロジェクト"を選び、"コンソールアプリケーション"を選択します。 この記事では、C#のコンソールアプリを選んでいます。

プロジェクト名とファイルパスを適切なテキストボックスに入力してください。 次に、Createボタンをクリックして必要な.NET Frameworkを選択します。
コンソールアプリケーションを選んだ場合、プロジェクトはその構造を作成し、program.csファイルを開いてプログラムのコードを入力し、ビルドまたは実行することができます。

2.1 ZXing Barcodeのインストール
ZXingライブラリをインストールするには、NuGetパッケージマネージャーコンソールに次のコマンドを入力してください。
Install-Package ZXing.Net.Bindings.Windows.Compatibility
また、NuGetパッケージ管理ツールを使用してパッケージを取得することもできます。 以下のイラストのようにしてください。 選択した最初の結果をインストールしてみてください。

2.2 ZXingを使ったバーコードの読み書き
次のサンプルコードを使用してバーコードを生成できます。 ZXingを使用すると、10種類以上のバーコード形式を作成できます。
using ZXing.Windows.Compatibility;
var options = new QrCodeEncodingOptions
{
Width = 250,
Height = 250,
};
var writer = new BarcodeWriter();
writer.Format = BarcodeFormat.QR_CODE;
writer.Options = options;
// Encode the string into a QR code bitmap image
System.Drawing.Bitmap _bitmap = writer.Write("Hello world");
// Save the bitmap as a PNG file
_bitmap.Save("Demo1.png");using ZXing.Windows.Compatibility;
var options = new QrCodeEncodingOptions
{
Width = 250,
Height = 250,
};
var writer = new BarcodeWriter();
writer.Format = BarcodeFormat.QR_CODE;
writer.Options = options;
// Encode the string into a QR code bitmap image
System.Drawing.Bitmap _bitmap = writer.Write("Hello world");
// Save the bitmap as a PNG file
_bitmap.Save("Demo1.png");Imports ZXing.Windows.Compatibility
Private options = New QrCodeEncodingOptions With {
.Width = 250,
.Height = 250
}
Private writer = New BarcodeWriter()
writer.Format = BarcodeFormat.QR_CODE
writer.Options = options
' Encode the string into a QR code bitmap image
Dim _bitmap As System.Drawing.Bitmap = writer.Write("Hello world")
' Save the bitmap as a PNG file
_bitmap.Save("Demo1.png")上記のコードでは、QrCodeEncodingOptionsの高さと幅を設定しています。 次に、BarcodeWriterのインスタンスを作成します。 BarcodeWriterには、バーコードフォーマットをQRコードとして設定します。 以前に作成したQRコードオプションをライターに割り当てます。 BarcodeWriterのWriteメソッドは、指定された文字列をバーコードとしてエンコードし、それをビットマップ画像として返します。 画像はビットマップのSaveメソッドを使用して保存されます。以下はコードの結果です。

次のコードサンプルは、ZXingを使用してバーコードをデコードする方法を示しています。
using ZXing.Windows.Compatibility;
// Load the barcode image into a bitmap
var barcodeBitmap = (System.Drawing.Bitmap)System.Drawing.Bitmap.FromFile("demo.png");
// Create a BarcodeReader object
var reader = new BarcodeReader();
// Decode the bitmap into a result
var result = reader.Decode(barcodeBitmap);
if (result != null)
{
// Output the decoded text to the console
Console.WriteLine(result.Text);
Console.ReadKey();
}using ZXing.Windows.Compatibility;
// Load the barcode image into a bitmap
var barcodeBitmap = (System.Drawing.Bitmap)System.Drawing.Bitmap.FromFile("demo.png");
// Create a BarcodeReader object
var reader = new BarcodeReader();
// Decode the bitmap into a result
var result = reader.Decode(barcodeBitmap);
if (result != null)
{
// Output the decoded text to the console
Console.WriteLine(result.Text);
Console.ReadKey();
}Imports ZXing.Windows.Compatibility
' Load the barcode image into a bitmap
Private barcodeBitmap = CType(System.Drawing.Bitmap.FromFile("demo.png"), System.Drawing.Bitmap)
' Create a BarcodeReader object
Private reader = New BarcodeReader()
' Decode the bitmap into a result
Private result = reader.Decode(barcodeBitmap)
If result IsNot Nothing Then
' Output the decoded text to the console
Console.WriteLine(result.Text)
Console.ReadKey()
End If上記のコードでは、まず画像をビットマップにロードし、それからBarcodeReaderオブジェクトを作成します。 Decode関数により、ビットマップをパラメーターとして渡すことができ、結果を複数のフォーマットで返すことができます。 Textプロパティを使用して、バーコードにエンコードされたテキストを取得します。

IronBarcode
このバーコードライブラリを使うと、バーコードの読み取りや生成が簡単です。 IronBarcodeのライブラリを使えば、動的なバーコードを簡単に作成できます。 このシンプルなライブラリは数行のコードを記述するだけでバーコードを生成でき、バーコードイメージのエンコードを助けます。 IronBarcodeは、C#やVB.NETといった言語でバーコードを生成することを可能にします。
1. 特徴
- IronBarcodeは、UPC A/E、Databar、EAN 8/13、MSI、Code 39/93/128、CodaB、RSS 14/Expanded、ITFを含む大多数のバーコード画像フォーマットとQR規格を読み書きできます。
- スキャンやリアルタイムビデオフレームのスキャン中に、IronBarcodeは回転、ノイズ、歪み、スキューリングを修正することができます。 IronBarcodeは、作成する際にバーコード画像を自動的に前処理して、読み取りの精度と速度を向上させます。 動的バーコードは、コンテンツの変更を許可するため、頻繁に使用されます。
- IronBarcodeの多くのコアとスレッドを使用する能力は、バッチ処理サーバーのために有利です。
- シングルページおよびマルチページのドキュメントにおいて、IronBarcodeは1つ以上のバーコードを自動的に見つけることができます。
2. IronBarcodeの使用
このソリューションでIronBarcodeライブラリを利用するためには、必要なパッケージをダウンロードする必要があります。 これを行うには、NuGetパッケージマネージャーコンソールで次のコマンドを使用してください。
Install-Package BarCode
代わりに、NuGetパッケージマネージャーを使用して"Barcode"パッケージを検索し、表示されるすべての検索結果から必要なパッケージを選んでダウンロードできます。 その中から必要なパッケージを選択してプログラムにダウンロードできます。

3. IronBarcodeを使ったバーコードの読み書き
IronBarcodeライブラリを使用することで、わずか数行のコードでバーコード画像を迅速に作成できます。 加えて、作成されたバーコードを別の画像ファイルとして保存することができます。以下は、コンソールプログラムを使用したバーコードラベルの作成用のC#サンプルコードです。
using IronBarCode;
// Create a QR code with a medium error correction level
QRCodeWriter.CreateQrCode("Your text here", 500, QRCodeWriter.QrErrorCorrectionLevel.Medium).SaveAsPng("demo.png");using IronBarCode;
// Create a QR code with a medium error correction level
QRCodeWriter.CreateQrCode("Your text here", 500, QRCodeWriter.QrErrorCorrectionLevel.Medium).SaveAsPng("demo.png");Imports IronBarCode
' Create a QR code with a medium error correction level
QRCodeWriter.CreateQrCode("Your text here", 500, QRCodeWriter.QrErrorCorrectionLevel.Medium).SaveAsPng("demo.png")このコードは中程度のエラー訂正レベルを使用して500x500ピクセルのグラフィックを生成し、その後、SaveAsPngメソッドを使用してファイル位置に保存します。
次のコード例は、以前の例で作成したQRコードにエンコードされたテキストを読み取ります。
using IronBarCode;
// Load the QR code image into a bitmap
var barcodeBitmap = (System.Drawing.Bitmap)System.Drawing.Bitmap.FromFile("demo.png");
// Read the barcode image
var reader = IronBarCode.BarcodeReader.Read(barcodeBitmap);
// Output the decoded value to the console
Console.WriteLine(reader.Values[0]);
Console.ReadKey();using IronBarCode;
// Load the QR code image into a bitmap
var barcodeBitmap = (System.Drawing.Bitmap)System.Drawing.Bitmap.FromFile("demo.png");
// Read the barcode image
var reader = IronBarCode.BarcodeReader.Read(barcodeBitmap);
// Output the decoded value to the console
Console.WriteLine(reader.Values[0]);
Console.ReadKey();Imports IronBarCode
' Load the QR code image into a bitmap
Private barcodeBitmap = CType(System.Drawing.Bitmap.FromFile("demo.png"), System.Drawing.Bitmap)
' Read the barcode image
Private reader = IronBarCode.BarcodeReader.Read(barcodeBitmap)
' Output the decoded value to the console
Console.WriteLine(reader.Values(0))
Console.ReadKey()まず画像をビットマップに読み込み、次にBarcodeReaderクラスのReadメソッドを使って画像を読み込みます。 Readメソッドから返されたBarcodeResultsオブジェクトにあるValuesプロパティを使って、QRコードから読み取られたコンテンツを取得します。
ZXingとの比較情報とIronBarcodeの詳細については、この次のブログ記事をご覧ください。
当社のバーコードの読み取りチュートリアルもIronBarcodeを使用したバーコードやQRコードの読み方に関する詳細情報を提供しています。 IronBarcodeに関するより多くのコードチュートリアル。
結論
ZXingバーコードスキャナーは高品質なバーコードを作成できますが、旧式でサポートされているバーコード形式が少ないです。 また、ドキュメンテーションや製品サポートが限られています。
一方、IronBarcodeは非常に効率的で柔軟性があり、多くのオペレーティングシステムで動作可能です。 IronBarcodeはバーコードで使用する色、サイズ、間隔、文字を変更することができます。 またクリスタルレポートもサポートしています。
開発者はIronBarcodeを無料で使用することができます。 ユーザーはライセンスを購入することで、追加機能へのアクセスと1年間のサポートおよび製品アップデートを受け取ることができます。
よくある質問
C# で HTML を PDF に変換するにはどうすればいいですか?
IronPDF の RenderHtmlAsPdf メソッドを使用して、HTML 文字列を PDF に変換できます。RenderHtmlFileAsPdf を使用して HTML ファイルを PDF に変換することもできます。
IronBarcodeとZXingの違いは何ですか?
IronBarcodeはZXingと比較して、より多くの柔軟性を提供し、より幅広いバーコードフォーマットをサポートしています。ZXingはバーコードの作成において効果的ですが、フォーマットのサポートとドキュメントが制限されています。IronBarcodeは効率的で、さまざまなオペレーティングシステムと互換性があります。
モバイルデバイスでバーコードをスキャンするにはどうすればいいですか?
ZXing AndroidクライアントのBarcode Scannerを使用して、デバイスのカメラを利用してバーコードをスキャンできます。より強力な機能が必要な場合は、IronBarcodeをモバイルアプリケーションに統合して、バーコードスキャンの能力を向上させることができます。
IronBarcodeは2Dバーコードをサポートしていますか?
はい、IronBarcodeはQRコードを含む1Dおよび2Dバーコードの両方をサポートしており、バーコードの読み取りと作成の多様性を提供します。
IronBarcodeは動的バーコード作成を処理できますか?
IronBarcodeは動的バーコード作成をサポートしており、特定の要件を満たすためにバーコードの色、サイズ、間隔、文字をカスタマイズできます。
.NETプロジェクトにIronBarcodeを統合するには何が必要ですか?
IronBarcodeを.NETプロジェクトに統合するには、NuGetパッケージマネージャコンソールを使用してInstall-Package IronBarcodeコマンドでパッケージをインストールするか、NuGetパッケージマネージャ内で見つけてください。
IronBarcodeの使用には費用がかかりますか?
IronBarcodeは無料トライアルを提供していますが、ライセンスを購入すると追加の機能、製品の更新、1年間のサポートが提供されます。
IronBarcodeはビデオフレームからバーコードを読み取ることができますか?
はい、IronBarcodeはリアルタイムビデオフレームを処理し、回転、ノイズ、歪み、傾きの補正を行い、バーコードスキャンの精度と速度を向上させます。
ZXingのバーコードスキャン機能はどのようなものですか?
ZXingは主に1Dおよび2Dバーコード用のオープンソースツールキットを提供しており、コア画像デコードライブラリとAndroidクライアントBarcode Scannerを含んでいます。
IronBarcodeがサポートしているプログラミング言語は何ですか?
IronBarcodeはC#とVB.NETをサポートしており、.NETフレームワークを使用する開発者にとって理想的です。








