C#でバーコードを読み取る
IronBarcodeは、.NETでバーコードを読み取るための多用途で高度かつ効率的なライブラリを提供します。
C#およびVB.NETでバーコードを読み取る方法
- IronBarcode をNuGetからインストールするか、またはDLLをダウンロードしてインストールしてください。
- 以下を使用
BarcodeReader.Read
あらゆるバーコードやQRを読み取るメソッド - 度のスキャン、PDF、またはマルチフレームTiffファイルで複数のバーコードやQRコードを読み取る
- IronBarcodeに不完全なスキャンや写真から読み取らせる
- チュートリアルプロジェクトをダウンロードして、今すぐスキャンを開始しましょう
インストール
今日から無料トライアルでIronBarcodeをあなたのプロジェクトで使い始めましょう。
IronBarcodeは、.NETでバーコードを読み取るための多用途で高度かつ効率的なライブラリを提供します。
最初のステップはIronBarcodeをインストールすることです。これを最も簡単に行う方法は、NuGetパッケージを使用することです。ただし、手動でインストールすることも選択できます。 DLL (ディーエルエル) プロジェクトまたはグローバルアセンブリキャッシュに追加します。 IronBarcodeは、C#バーコードスキャナーアプリケーションの作成に適しています。
Install-Package BarCode
最初のバーコードを読み取る
.NETでバーコードやQRコードを読み取ることは、IronBarcodeクラスライブラリを使用する.NET Barcode Readerを使えば非常に簡単です。 最初の例では、このバーコードを1行のコードで読み取る方法を確認できます。
値、画像、エンコーディング形式、バイナリデータを抽出することができます(何かあれば)、そしてそれをコンソールに出力できます。
:path=/static-assets/barcode/content-code-examples/tutorials/reading-barcodes-1.cs
using IronBarCode;
using System;
// Read barcode
BarcodeResults results = BarcodeReader.Read("GetStarted.png");
// Log the result to Console Window
foreach (BarcodeResult result in results)
{
if (result != null)
{
Console.WriteLine("GetStarted was a success. Read Value: " + result.Text);
}
}
Imports IronBarCode
Imports System
' Read barcode
Private results As BarcodeResults = BarcodeReader.Read("GetStarted.png")
' Log the result to Console Window
For Each result As BarcodeResult In results
If result IsNot Nothing Then
Console.WriteLine("GetStarted was a success. Read Value: " & result.Text)
End If
Next result
もっと頑張って、具体的にしてください。
次の例では、困難な画像を読み取るためのバーコードスキャンオプションを追加します。 Speed列挙型のExtremeDetail値は、遮蔽されている、破損している、または傾いた角度である可能性のあるバーコードのより深いスキャンを可能にします。
:path=/static-assets/barcode/content-code-examples/tutorials/reading-barcodes-2.cs
using IronBarCode;
BarcodeReaderOptions options = new BarcodeReaderOptions()
{
// Choose a speed from: Faster, Balanced, Detailed, ExtremeDetail
// There is a tradeoff in performance as more Detail is set
Speed = ReadingSpeed.ExtremeDetail,
// By default, all barcode formats are scanned for.
// Specifying one or more, performance will increase.
ExpectBarcodeTypes = BarcodeEncoding.QRCode | BarcodeEncoding.Code128,
};
// Read barcode
BarcodeResults results = BarcodeReader.Read("TryHarderQR.png", options);
Imports IronBarCode
Private options As New BarcodeReaderOptions() With {
.Speed = ReadingSpeed.ExtremeDetail,
.ExpectBarcodeTypes = BarcodeEncoding.QRCode Or BarcodeEncoding.Code128
}
' Read barcode
Private results As BarcodeResults = BarcodeReader.Read("TryHarderQR.png", options)
以下の歪んだQRコードを読み取ります:
例では、バーコードエンコーディングを指定できることがわかります。(s)私たちは、複数の形式でも探しています。 そうすることで、バーコードの読み取りパフォーマンスと精度が大幅に向上します。 その
pipe character, or 'Bitwise OR,' is used to specify multiple formats simultaneously.
同じことが、より高い特異性で達成されますが、ImageFiltersとAutoRotateプロパティを使用して先に進む場合です。
:path=/static-assets/barcode/content-code-examples/tutorials/reading-barcodes-3.cs
using IronBarCode;
BarcodeReaderOptions options = new BarcodeReaderOptions()
{
// Choose which filters are to be applied (in order)
ImageFilters = new ImageFilterCollection() {
new AdaptiveThresholdFilter(),
},
// Uses machine learning to auto rotate the barcode
AutoRotate = true,
};
// Read barcode
BarcodeResults results = BarcodeReader.Read("TryHarderQR.png", options);
Imports IronBarCode
Private options As New BarcodeReaderOptions() With {
.ImageFilters = New ImageFilterCollection() From {New AdaptiveThresholdFilter()},
.AutoRotate = True
}
' Read barcode
Private results As BarcodeResults = BarcodeReader.Read("TryHarderQR.png", options)
複数のバーコードを読み取る
PDFドキュメント
次の例では、読み取りを行う方法を見ていきます。スキャンされたPDFドキュメントそして、非常に少ないコード行で1次元フォーマットのすべてのバーコードを見つけます。
ご覧のように、単一のドキュメントから単一のバーコードを読み取ることと非常に似ていますが、バーコードが見つかったページ番号に関する新しい情報が追加されています。
:path=/static-assets/barcode/content-code-examples/tutorials/reading-barcodes-4.cs
using IronBarCode;
using System;
// Multiple barcodes may be scanned up from a single document or image. A PDF document may also used as the input image
BarcodeResults results = BarcodeReader.ReadPdf("MultipleBarcodes.pdf");
// Work with the results
foreach (var pageResult in results)
{
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);
}
Imports IronBarCode
Imports System
' Multiple barcodes may be scanned up from a single document or image. A PDF document may also used as the input image
Private results As BarcodeResults = BarcodeReader.ReadPdf("MultipleBarcodes.pdf")
' Work with the results
For Each pageResult In results
Dim Value As String = pageResult.Value
Dim PageNum As Integer = pageResult.PageNumber
Dim Img As System.Drawing.Bitmap = pageResult.BarcodeImage
Dim BarcodeType As BarcodeEncoding = pageResult.BarcodeType
Dim Binary() As Byte = pageResult.BinaryValue
Console.WriteLine(pageResult.Value & " on page " & PageNum)
Next pageResult
異なるページで次のバーコードを見つけました。
TIFFをスキャンする
次の例では、マルチフレームTIFFから同じ結果を得られることがわかります。この場合、PDFと同様に処理されます。
:path=/static-assets/barcode/content-code-examples/tutorials/reading-barcodes-5.cs
using IronBarCode;
// Multi frame TIFF and GIF images can also be scanned
BarcodeResults multiFrameResults = BarcodeReader.Read("Multiframe.tiff");
foreach (var pageResult in multiFrameResults)
{
//...
}
Imports IronBarCode
' Multi frame TIFF and GIF images can also be scanned
Private multiFrameResults As BarcodeResults = BarcodeReader.Read("Multiframe.tiff")
For Each pageResult In multiFrameResults
'...
Next pageResult
マルチスレッド
複数の文書を読み取るには、文書のリストを作成し、IronBarcodeを使用することでより良い結果を得ることができます。 BarcodeReader.Read
メソッド。 これは、バーコードスキャンプロセスにマルチスレッドとCPUの全コアを使用するため、バーコードを1つずつ読み取るよりも指数関数的に速くなります。
:path=/static-assets/barcode/content-code-examples/tutorials/reading-barcodes-6.cs
using IronBarCode;
// The Multithreaded property allows for faster barcode scanning across multiple images or PDFs. All threads are automatically managed by IronBarCode.
var ListOfDocuments = new[] { "image1.png", "image2.JPG", "image3.pdf" };
BarcodeReaderOptions options = new BarcodeReaderOptions()
{
// Enable multithreading
Multithreaded = true,
};
BarcodeResults batchResults = BarcodeReader.Read(ListOfDocuments, options);
Imports IronBarCode
' The Multithreaded property allows for faster barcode scanning across multiple images or PDFs. All threads are automatically managed by IronBarCode.
Private ListOfDocuments = { "image1.png", "image2.JPG", "image3.pdf" }
Private options As New BarcodeReaderOptions() With {.Multithreaded = True}
Private batchResults As BarcodeResults = BarcodeReader.Read(ListOfDocuments, options)
概要
要約すると、IronBarcodeは多用途な.NETソフトウェアライブラリであり、広範囲なバーコード形式を読み取ることができるC# QRコードジェネレーターです。 それは、バーコードが完璧なスクリーンキャプチャであっても、不完全な実世界の画像(例えば、写真やスキャン)であっても関係なく、実行できます。
さらに読む
IronBarcodeの使用について詳しく知りたい場合は、このセクションの他のチュートリアルや、ホームページの例を参照することをお勧めします。これにより、ほとんどの開発者が開始するのに十分でしょう。
摂 Our APIリファレンス特にBarcodeReaderクラスとBarcodeEncoding列挙体は、このC#バーコードライブラリで何が達成できるかについての詳細な情報を提供します。
ソースコードのダウンロード
このチュートリアルをダウンロードして自分で実行することを強くお勧めします。 ソースコードをダウンロードするか、GitHubでフォークすることでこれを行うことができます。 この .NET バーコードリーダー チュートリアルのソースは、C#で記述された Visual Studio 2017 コンソールアプリケーション プロジェクトとして利用できます。