C# Windowsアプリでバーコードスキャナーを使用する方法
このチュートリアルでは、IronBarcodeライブラリを例に使用して、C#コンソールアプリケーションおよび.NET WindowsフォームアプリケーションでQRコードとバーコードをスキャンする方法を示します。
IronBarcodeライブラリを使用すると、複数のバーコードを同時にスキャンして読み取ることができ、また、不完全な画像でも成功してスキャンできます。 まず、バーコードスキャナーとは何かを明確にしましょう。
バーコードスキャナーとは何ですか?
バーコードは、さまざまな幅の平行な黒い線と白いスペースからなる四角または長方形の画像です。 バーコードスキャナーまたはバーコードリーダーは、印刷されたバーコードを読み取り、バーコードに含まれるデータをデコードし、そのデータをコンピューターに送信することができるデバイスです。
次の手順では、IronBarcodeライブラリを使用してバーコードスキャナーを作成する方法を紹介します。
C#でバーコードを読む方法
- Microsoft Visual Studioで.NET Windowsフォームアプリケーションプロジェクトを作成します。
- バーコードライブラリをインストールする
- どんなバーコードやQRコードも読み取ります。
- 1回のスキャンで複数のバーコードやQRコードを読み取ります。
- IronBarcodeを使用して不完全なスキャンや写真からの読み取りを可能にします。
1. Microsoft Visual StudioでWindowsフォームアプリケーションを作成する
Visual Studioを開き、新しいプロジェクトを作成をクリックし、Windowsフォームアプリケーションテンプレートを選択して次へを押し、プロジェクトに名前を付けて次へを押し、対象の.NETフレームワークを選択して作成ボタンをクリックします。
プロジェクトを作成したら、Visual Studioツールボックスからフォームを次のようにデザインします: PictureBox、Label、TextBox、およびボタンコントロール。
[26]
バーコードスキャナー
2. C#でバーコード.NETライブラリをインストールする
バーコードライブラリは、次の3つの方法のいずれかを使用してインストールできます。
1. パッケージマネージャコンソール
パッケージマネージャコンソールで次のコマンドを書きます。 これにより、パッケージがダウンロードされインストールされます。
Install-Package BarCode
2. NuGetパッケージマネージャーソリューション
NuGetパッケージソリューションを使用してバーコードライブラリをインストールすることもできます。 次の手順に従うだけです。
ツールをクリック > NuGetパッケージマネージャ > ソリューションのNuGetパッケージ管理。
これにより、NuGetパッケージマネージャが開きます。 ブラウズをクリックしてバーコードを検索し、クラスライブラリをインストールします。
3. リンクからダウンロード
代わりに、IronBarcode.Dllをダウンロードし、プロジェクトに参照として追加できます。
ダウンロードした後、バーコードリーダープロジェクトに次の参照を追加します。
using IronBarCode;using IronBarCode;3. どんなバーコードやQRコードも読み取る
IronBarcodeライブラリを使用して.NETでバーコードやQRコードを読むのは非常に簡単です。.NET Barcode Readerを参照してください。
バーコードスキャナー
プロジェクトで読み取りたい画像をブラウズします。 それはPictureBoxで開きます; "コードをスキャン"をクリックしてください。 テキストボックスにテキストが表示されます。
画像を開くための"ブラウズ"ボタンのコードはこちらです:
// Open file dialog
OpenFileDialog open = new OpenFileDialog();
// Image filters
open.Filter = "Image Files(*.jpg; *.png; *.jpeg; *.gif; *.bmp)|*.jpg;*.png;*.jpeg;*.gif;*.bmp";
if (open.ShowDialog() == DialogResult.OK) {
// Display image in PictureBox
pictureBox1.Image = new Bitmap(open.FileName);
// Store image file path in class data member. Initialize it as string ImageFileName;
ImageFileName = open.FileName;
}// Open file dialog
OpenFileDialog open = new OpenFileDialog();
// Image filters
open.Filter = "Image Files(*.jpg; *.png; *.jpeg; *.gif; *.bmp)|*.jpg;*.png;*.jpeg;*.gif;*.bmp";
if (open.ShowDialog() == DialogResult.OK) {
// Display image in PictureBox
pictureBox1.Image = new Bitmap(open.FileName);
// Store image file path in class data member. Initialize it as string ImageFileName;
ImageFileName = open.FileName;
}"コードをスキャン"ボタンのコードはこちらです:
// Read the barcode from the image file path
BarcodeResult Result = BarcodeReader.Read(ImageFileName);
// Display the decoded text in TextBox
textBox1.Text = Result.Text;// Read the barcode from the image file path
BarcodeResult Result = BarcodeReader.Read(ImageFileName);
// Display the decoded text in TextBox
textBox1.Text = Result.Text;バーコードスキャナーがテキストボックスにバーコードデータを次のように表示します:
[27]
C#でスキャンされたバーコード画像
QRコードスキャナー
このセクションでは、IronBarcodeライブラリが実世界のスキューされたQRコード状況を効果的に処理することを示します。 スキューされた角度のQRコードはReadメソッドで処理されて読み取ることができますが、時間がかかる場合があります。 IronBarcodeライブラリは、そのような画像入力を処理するために余分なパラメータとしてBarcodeReaderOptionsを使用するカスタマイズされた方法を提供します。 コードは次の通りです:
// Define a collection of image filters to apply
var filtersToApply = new ImageFilterCollection() {
new SharpenFilter(),
new InvertFilter(),
new ContrastFilter(),
new BrightnessFilter(),
new AdaptiveThresholdFilter(),
new BinaryThresholdFilter()
};
// Configure barcode reader options with specified filters
BarcodeReaderOptions myOptionsExample = new BarcodeReaderOptions() {
ImageFilters = filtersToApply,
ExpectBarcodeTypes = BarcodeEncoding.QRCode | BarcodeEncoding.Code128,
};
// Read the barcode/QR code with custom options and display result
BarcodeResult Result = BarcodeReader.Read(ImageFileName, myOptionsExample);
textBox1.Text = Result.Text;// Define a collection of image filters to apply
var filtersToApply = new ImageFilterCollection() {
new SharpenFilter(),
new InvertFilter(),
new ContrastFilter(),
new BrightnessFilter(),
new AdaptiveThresholdFilter(),
new BinaryThresholdFilter()
};
// Configure barcode reader options with specified filters
BarcodeReaderOptions myOptionsExample = new BarcodeReaderOptions() {
ImageFilters = filtersToApply,
ExpectBarcodeTypes = BarcodeEncoding.QRCode | BarcodeEncoding.Code128,
};
// Read the barcode/QR code with custom options and display result
BarcodeResult Result = BarcodeReader.Read(ImageFileName, myOptionsExample);
textBox1.Text = Result.Text;歪んだQRコード画像を開いた後、出力は次のようになります:
[28]
スキューされたQRコード画像
1回のスキャンで複数のバーコードを読み取る
PDFドキュメント
バーコード画像はPDFファイルからスキャンでき、各結果は希望どおりに適切に表示できます。 次のサンプルコードは、PDFファイルから複数のバーコードを読み取ることを可能にします。
// Scan for multiple barcodes within a PDF document
BarcodeResult[] PDFResults = BarcodeReader.ReadPdf("MultipleBarcodes.pdf");
// Work with the results found
foreach (var PageResult in PDFResults) {
string Value = PageResult.Value;
int PageNum = PageResult.PageNumber;
System.Drawing.Bitmap Img = PageResult.BarcodeImage;
BarcodeEncoding BarcodeType = PageResult.BarcodeType;
byte[] Binary = PageResult.BinaryValue;
Console.WriteLine(PageResult.Value + " on page " + PageNum);
}// Scan for multiple barcodes within a PDF document
BarcodeResult[] PDFResults = BarcodeReader.ReadPdf("MultipleBarcodes.pdf");
// Work with the results found
foreach (var PageResult in PDFResults) {
string Value = PageResult.Value;
int PageNum = PageResult.PageNumber;
System.Drawing.Bitmap Img = PageResult.BarcodeImage;
BarcodeEncoding BarcodeType = PageResult.BarcodeType;
byte[] Binary = PageResult.BinaryValue;
Console.WriteLine(PageResult.Value + " on page " + PageNum);
}PDFファイルに含まれるバーコードとQRコード:
[29]
PDFからバーコードを読み取る結果
不完全な画像からバーコードを読み取る
実際の使用ケースでは、バーコードは画像、スキャン、サムネイル、または写真でよく不完全で見つかり、デジタルノイズを含む場合やスキューしている場合があります。 このセクションでは、サムネイルからバーコードデータを読み取る方法を示します。
サムネイル
IronBarcodeライブラリは、C# Barcode Generatorを使用して、バーコードの破損したサムネイルを読み取ることができます。
自動バーコードサムネイルサイズ修正。 IronBarcodeを使用してC#で読み取れるファイル
それは、実際のバーコードを合理的に表現するには小さすぎるバーコード画像を自動的に検出し、すべてのデジタルノイズを除去して拡大し、その結果再び読み取り可能にします。
// Small or 'Thumbnail' barcode images are automatically detected by IronBarCode and corrected for wherever possible even if they have much digital noise.
BarcodeResult SmallResult = BarcodeReader.Read("ThumbnailOfBarcode.gif");// Small or 'Thumbnail' barcode images are automatically detected by IronBarCode and corrected for wherever possible even if they have much digital noise.
BarcodeResult SmallResult = BarcodeReader.Read("ThumbnailOfBarcode.gif");まとめ
さらに、IronBarcodeは、マルチスレッドや、MLモデルの精度など、バーコード読み取り速度を向上させるためのカスタマイズオプションを提供しており、切り取り領域やその他の方法があります。 IronBarcodeに関する詳細な情報は、公式ドキュメントページをご覧ください。 IronBarcodeに関する詳細は公式ドキュメントページをご覧ください。
現在、完全な Iron Suite を購入すると、わずか 2 つの価格で 5 つのライブラリを入手できます。
よくある質問
C#アプリケーションにおけるバーコードスキャナーとは何ですか?
バーコードスキャナーは印刷されたバーコードを読み取り、情報をデコードしてコンピューターに送信するデバイスです。C#アプリケーションでは、IronBarcodeのようなライブラリを使用してこの機能を実装できます。
C#でバーコードスキャン用のWindowsフォームアプリケーションをどのように作成できますか?
Visual Studioを開き、「Windowsフォームアプリケーションテンプレート」を使用して新しいプロジェクトを作成し、目標とする.NET Frameworkを設定し、PictureBox、Label、TextBox、およびボタンを使用してフォームをデザインします。
C#プロジェクトでバーコードライブラリをインストールする推奨方法は何ですか?
C#プロジェクトにIronBarcodeのようなバーコードライブラリをインストールするには、Install-Package IronBarCodeを使用したパッケージマネージャーコンソール、NuGetパッケージマネージャー、またはDLLをダウンロードして参照に追加することで行えます。
C#ライブラリを使用して一度に複数のバーコードを読み取ることは可能ですか?
はい、IronBarcodeを使用すれば、BarcodeReader.ReadPdfメソッドを使用してPDFドキュメントからでも一度に複数のバーコードを読み取ることができます。
そのライブラリは低品質の画像からバーコードをどうやって読み取るのですか?
IronBarcodeは画像フィルターやアップスケーリング技術を適用してデジタルノイズを軽減し、正確な読み取りを実現します。
IronBarcodeのようなC#ライブラリでサポートされるバーコードフォーマットは何ですか?
IronBarcodeはQRコードやCode128を含む多様なバーコードフォーマットをサポートしています。不完全な画像やカメラで撮影された画像からもこれらのフォーマットを読み取ることができます。
バーコード読み取りを.NETアプリケーションに実装する手順は何ですか?
画像をPictureBoxに読み込み、「スキャンコード」アクションを発動させ、IronBarcodeを使用してテキストボックスにデコードされたテキストを表示します。
IronBarcodeは傾いたQRコードを効果的に処理できますか?
はい、IronBarcodeはBarcodeReaderOptionsを使用して必要な画像フィルターと調整を適用し、正確な読み取りを実現します。
IronBarcodeはバーコード読み取りにどのようなカスタマイズ機能を提供しますか?
IronBarcodeはクロップ領域、マルチスレッド、パラメーター調整などの機能を提供して、バーコード読み取りの速度と精度を向上させます。
C#でバーコードライブラリを使用する詳細情報はどこで入手できますか?
Iron Softwareの公式ドキュメンテーションページでC#でバーコードライブラリを使用する詳細情報を入手できます。







