C#でバーコードを読み取る

This article was translated from English: Does it need improvement?
Translated
View the article in English

によって フランク・ウォーカー

IronBarcodeは、.NETでバーコードを読み取るための多用途で高度かつ効率的なライブラリを提供します。

インストール

今日から無料トライアルでIronBarcodeをあなたのプロジェクトで使い始めましょう。

最初のステップ:
green arrow pointer

IronBarcodeは、.NETでバーコードを読み取るための多用途で高度かつ効率的なライブラリを提供します。

最初のステップはIronBarcodeをインストールすることです。これを最も簡単に行う方法は、NuGetパッケージを使用することです。ただし、手動でインストールすることも選択できます。 DLL (ディーエルエル) プロジェクトまたはグローバルアセンブリキャッシュに追加します。 IronBarcodeは、C#バーコードスキャナーアプリケーションの作成に適しています。

Install-Package BarCode

最初のバーコードを読み取る

.NETでバーコードやQRコードを読み取ることは、IronBarcodeクラスライブラリを使用する.NET Barcode Readerを使えば非常に簡単です。 最初の例では、このバーコードを1行のコードで読み取る方法を確認できます。

C#でスキャンするためのCode128バーコード画像

値、画像、エンコーディング形式、バイナリデータを抽出することができます(何かあれば)、そしてそれをコンソールに出力できます。

: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
VB   C#

もっと頑張って、具体的にしてください。

次の例では、困難な画像を読み取るためのバーコードスキャンオプションを追加します。 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)
VB   C#

以下の歪んだQRコードを読み取ります:

C#で45度回転したQRコードをスキャンする

例では、バーコードエンコーディングを指定できることがわかります。(s)私たちは、複数の形式でも探しています。 そうすることで、バーコードの読み取りパフォーマンスと精度が大幅に向上します。 その pipe character, or 'Bitwise OR,' is used to specify multiple formats simultaneously.

同じことが、より高い特異性で達成されますが、ImageFiltersAutoRotateプロパティを使用して先に進む場合です。

: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)
VB   C#

複数のバーコードを読み取る

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
VB   C#

異なるページで次のバーコードを見つけました。

C# - PDFの結果からバーコードを読み取る

TIFFをスキャンする

次の例では、マルチフレームTIFFから同じ結果を得られることがわかります。この場合、PDFと同様に処理されます。

C# - マルチフレームTIFF画像からバーコードを読み取る
: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
VB   C#

マルチスレッド

複数の文書を読み取るには、文書のリストを作成し、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)
VB   C#

概要

要約すると、IronBarcodeは多用途な.NETソフトウェアライブラリであり、広範囲なバーコード形式を読み取ることができるC# QRコードジェネレーターです。 それは、バーコードが完璧なスクリーンキャプチャであっても、不完全な実世界の画像(例えば、写真やスキャン)であっても関係なく、実行できます。

さらに読む

IronBarcodeの使用について詳しく知りたい場合は、このセクションの他のチュートリアルや、ホームページの例を参照することをお勧めします。これにより、ほとんどの開発者が開始するのに十分でしょう。

摂 Our APIリファレンス特にBarcodeReaderクラスとBarcodeEncoding列挙体は、このC#バーコードライブラリで何が達成できるかについての詳細な情報を提供します。

ソースコードのダウンロード

このチュートリアルをダウンロードして自分で実行することを強くお勧めします。 ソースコードをダウンロードするか、GitHubでフォークすることでこれを行うことができます。 この .NET バーコードリーダー チュートリアルのソースは、C#で記述された Visual Studio 2017 コンソールアプリケーション プロジェクトとして利用できます。

.NETソフトウェアエンジニア .NETからPDFファイルを生成する最も効率的な方法の一つです。追加のAPIを学習する必要もなく、また複雑な設計システムを操作する必要もありません。

フランク・ウォーカー

.NETプロダクトデベロッパー

フランクはIronBarcodeの開発の主要な力となってきました。昨年からIronOCRでの作業を行い、IronBarcode内のOCRの利用ケースを構築する上で影響力を発揮し、現在のツールに成長させました。