C#およびVB.NETアプリケーションでのバーコードとQRコード

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

Iron SoftwareのIronBarcodeソフトウェアライブラリを使用すると、C#およびその他のすべての.NET言語でバーコードの読み取りと書き込みが簡単に行えます。

IronBarcode のインストール

最初のステップはIronBarcodeのインストールです。これは、NuGetパッケージを使用して達成することができます、または DLLをダウンロードする このウェブサイトから。Iron Barcodeクラスの情報は、 IronBarcode 名前空間。

IronBarcode をインストールする最も簡単な方法は、Visual-Studio の NuGet パッケージ マネージャーを使用することです。

パッケージ名は「Barcode」です。

Install-Package BarCode

https://www.nuget.org/packages/Barcode/

バーコードやQRコードの読み取り

IronBarcodeを使用してバーコードを読み取るのは、ほんの数行のコードで済みます。

:path=/static-assets/barcode/content-code-examples/get-started/get-started-1.cs
using IronBarCode;

BarcodeResults results = BarcodeReader.Read("QuickStart.jpg");
if (results != null)
{
    foreach (BarcodeResult result in results)
    {
        Console.WriteLine(result.Text);
    }
}
Imports IronBarCode

Private results As BarcodeResults = BarcodeReader.Read("QuickStart.jpg")
If results IsNot Nothing Then
	For Each result As BarcodeResult In results
		Console.WriteLine(result.Text)
	Next result
End If
VB   C#

バーコードの読み取り速度と精度を向上させるために、特定のバーコードフォーマットを指定することができます。 (または形式) Iron Barcodeが既知のすべてのタイプのバーコードを試す必要がないようにするため。 特定の作物領域または画像の領域がわかっている場合、それを選択して確認することもできます。

:path=/static-assets/barcode/content-code-examples/get-started/get-started-2.cs
using IronBarCode;

BarcodeReaderOptions myOptionsExample = new BarcodeReaderOptions()
{
    ExpectMultipleBarcodes = false,
    ExpectBarcodeTypes = BarcodeEncoding.QRCode | BarcodeEncoding.Code128,
    CropArea = new System.Drawing.Rectangle(100, 200, 300, 400),
};

BarcodeResults result = BarcodeReader.Read("QuickStart.jpg", myOptionsExample);
if (result != null)
{
    Console.WriteLine(result.First().Text);
}
Imports IronBarCode

Private myOptionsExample As New BarcodeReaderOptions() With {
	.ExpectMultipleBarcodes = False,
	.ExpectBarcodeTypes = BarcodeEncoding.QRCode Or BarcodeEncoding.Code128,
	.CropArea = New System.Drawing.Rectangle(100, 200, 300, 400)
}

Private result As BarcodeResults = BarcodeReader.Read("QuickStart.jpg", myOptionsExample)
If result IsNot Nothing Then
	Console.WriteLine(result.First().Text)
End If
VB   C#

シンプルなスキャンで複数のバーコードをスキャンすることも選択できます。

:path=/static-assets/barcode/content-code-examples/get-started/get-started-3.cs
using IronBarCode;

BarcodeResults results = BarcodeReader.Read("MultipleBarcodes.png");

// Loop through the results
foreach (BarcodeResult result in results)
{
    string value = result.Value;
    Bitmap img = result.BarcodeImage;
    BarcodeEncoding barcodeType = result.BarcodeType;
    byte[] binary = result.BinaryValue;
    Console.WriteLine(result.Value);
}
Imports IronBarCode

Private results As BarcodeResults = BarcodeReader.Read("MultipleBarcodes.png")

' Loop through the results
For Each result As BarcodeResult In results
	Dim value As String = result.Value
	Dim img As Bitmap = result.BarcodeImage
	Dim barcodeType As BarcodeEncoding = result.BarcodeType
	Dim binary() As Byte = result.BinaryValue
	Console.WriteLine(result.Value)
Next result
VB   C#

私たちはまた、Iron Barcodeを使用して、PDFドキュメントの1ページまたは複数ページ、またはマルチページTIFFからバーコードを読み取ることもできます。

:path=/static-assets/barcode/content-code-examples/get-started/get-started-4.cs
using IronBarCode;

BarcodeResults pagedResults = BarcodeReader.Read("MultipleBarcodes.pdf");

// Loop through the results
foreach (BarcodeResult result in pagedResults)
{
    int pageNumber = result.PageNumber;
    string value = result.Value;
    Bitmap img = result.BarcodeImage;
    BarcodeEncoding barcodeType = result.BarcodeType;
    byte[] binary = result.BinaryValue;
    Console.WriteLine(result.Value);
}

// or from a multi-page  TIFF scan with image correction:
BarcodeResults multiFrameResults = BarcodeReader.Read(InputImage: "Multiframe.tiff", new BarcodeReaderOptions
{
    Speed = ReadingSpeed.Detailed,
    ExpectMultipleBarcodes = true,
    ExpectBarcodeTypes = BarcodeEncoding.Code128,
    Multithreaded = false,
    RemoveFalsePositive = false,
    ImageFilters = null
});
Imports IronBarCode

Private pagedResults As BarcodeResults = BarcodeReader.Read("MultipleBarcodes.pdf")

' Loop through the results
For Each result As BarcodeResult In pagedResults
	Dim pageNumber As Integer = result.PageNumber
	Dim value As String = result.Value
	Dim img As Bitmap = result.BarcodeImage
	Dim barcodeType As BarcodeEncoding = result.BarcodeType
	Dim binary() As Byte = result.BinaryValue
	Console.WriteLine(result.Value)
Next result

' or from a multi-page  TIFF scan with image correction:
Dim multiFrameResults As BarcodeResults = BarcodeReader.Read(InputImage:= "Multiframe.tiff", New BarcodeReaderOptions With {
	.Speed = ReadingSpeed.Detailed,
	.ExpectMultipleBarcodes = True,
	.ExpectBarcodeTypes = BarcodeEncoding.Code128,
	.Multithreaded = False,
	.RemoveFalsePositive = False,
	.ImageFilters = Nothing
})
VB   C#

バコードの作成

IronBarcodeを使用してバーコードを作成または書き込むには、BarcodeWriterクラスを使用します。 BarcodeWriterを使用すれば、バーコードの作成は非常に簡単です。 バーコードの形式と表現したい値を指定するだけで、System.Drawing.Imageオブジェクトとしてエクスポートしたり、ファイルに保存したりできる画像が作成されます。

:path=/static-assets/barcode/content-code-examples/get-started/get-started-5.cs
using IronBarCode;

GeneratedBarcode myBarcode = BarcodeWriter.CreateBarcode("https://ironsoftware.com/csharp/barcode", BarcodeEncoding.Code128);
myBarcode.SaveAsImage("myBarcode.png");
Imports IronBarCode

Private myBarcode As GeneratedBarcode = BarcodeWriter.CreateBarcode("https://ironsoftware.com/csharp/barcode", BarcodeEncoding.Code128)
myBarcode.SaveAsImage("myBarcode.png")
VB   C#

バーコードのスタイリング

バーコードのビジュアル描写は、IronBarcodeを使用することで非常に簡単に操作できます。 すべてのBarcodeWriter操作の出力は、生成されたバーコードオブジェクトです。 この生成されたバーコードオブジェクトにはFluent APIがあり、Linqに似て、バーコードのグラフィカル設定を1行のコードで設定することができます。

バーコードのスタイリングで人気のある機能には、バーコードのサイズ変更、マージンの設定、背景色の変更、バーコードの色の変更、そして出力されたバーコードがまだ読み取れるかどうかの確認が含まれます。

同様に、任意のフォントでテキストのような注釈をバーコードに追加したり、バーコードの値をバーコードの下や上に非常に簡単に配置することもできます。

:path=/static-assets/barcode/content-code-examples/get-started/get-started-6.cs
using IronBarCode;

GeneratedBarcode myBarcode = BarcodeWriter.CreateBarcode("https://ironsoftware.com/csharp/barcode", BarcodeEncoding.Code128);
myBarcode.AddAnnotationTextAboveBarcode("Product URL:");
myBarcode.AddBarcodeValueTextBelowBarcode();
myBarcode.SaveAsImage("myBarcode.png");
Imports IronBarCode

Private myBarcode As GeneratedBarcode = BarcodeWriter.CreateBarcode("https://ironsoftware.com/csharp/barcode", BarcodeEncoding.Code128)
myBarcode.AddAnnotationTextAboveBarcode("Product URL:")
myBarcode.AddBarcodeValueTextBelowBarcode()
myBarcode.SaveAsImage("myBarcode.png")
VB   C#

バーコードのHTMLとしてのエクスポート

生成されたバーコードオブジェクトには、生成されたバーコードからHTMLをエクスポートする便利な機能もあります。 バーコードを外部アセットを持たない独立したHTMLドキュメント、独立したHTMLタグ、またはデータURIとしてエクスポートすることができます。

:path=/static-assets/barcode/content-code-examples/get-started/get-started-7.cs
using IronBarCode;

GeneratedBarcode myBarcode = BarcodeWriter.CreateBarcode("https://ironsoftware.com/csharp/barcode", BarcodeEncoding.Code128);
myBarcode.AddAnnotationTextAboveBarcode("Product URL:");
myBarcode.AddBarcodeValueTextBelowBarcode();
myBarcode.SetMargins(100);
myBarcode.ChangeBarCodeColor(IronSoftware.Drawing.Color.Purple);

// All major image formats supported as well as PDF and HTML
myBarcode.SaveAsPng("myBarcode.png");
Imports IronBarCode

Private myBarcode As GeneratedBarcode = BarcodeWriter.CreateBarcode("https://ironsoftware.com/csharp/barcode", BarcodeEncoding.Code128)
myBarcode.AddAnnotationTextAboveBarcode("Product URL:")
myBarcode.AddBarcodeValueTextBelowBarcode()
myBarcode.SetMargins(100)
myBarcode.ChangeBarCodeColor(IronSoftware.Drawing.Color.Purple)

' All major image formats supported as well as PDF and HTML
myBarcode.SaveAsPng("myBarcode.png")
VB   C#

QRコードの生成

QRコードをIronBarcodeを使用して生成する際に、BarcodeWriterクラスの代わりにQRコードライタークラスを使用することを選択できます。 このクラスは、QRコード作成に対していくつかの新しく興味深い機能を提供します。 それにより、QRエラー訂正レベルを設定でき、QRコードのサイズと読みやすさのバランスを決定することができます。

:path=/static-assets/barcode/content-code-examples/get-started/get-started-8.cs
using IronBarCode;

QRCodeWriter.CreateQrCode("https://ironsoftware.com", 500, QRCodeWriter.QrErrorCorrectionLevel.Medium).SaveAsPdf("MyQR.pdf");
Imports IronBarCode

QRCodeWriter.CreateQrCode("https://ironsoftware.com", 500, QRCodeWriter.QrErrorCorrectionLevel.Medium).SaveAsPdf("MyQR.pdf")
VB   C#

Iron Barcodeは、QRコードにロゴ グラフィックを配置して、画像の正確な中央にグリッドにスナップするなど、スタイリングを行うこともできます。 それは特定のブランドやグラフィックアイデンティティに合わせてカラライズすることもできます。

:path=/static-assets/barcode/content-code-examples/get-started/get-started-9.cs
using IronBarCode;
using IronSoftware.Drawing;

QRCodeLogo qrCodeLogo = new QRCodeLogo("visual-studio-logo.png");
GeneratedBarcode myQRCodeWithLogo = QRCodeWriter.CreateQrCodeWithLogo("https://ironsoftware.com/csharp/barcode/", qrCodeLogo);
myQRCodeWithLogo.ChangeBarCodeColor(Color.DarkGreen).SaveAsPdf("MyQRWithLogo.pdf");
Imports IronBarCode
Imports IronSoftware.Drawing

Private qrCodeLogo As New QRCodeLogo("visual-studio-logo.png")
Private myQRCodeWithLogo As GeneratedBarcode = QRCodeWriter.CreateQrCodeWithLogo("https://ironsoftware.com/csharp/barcode/", qrCodeLogo)
myQRCodeWithLogo.ChangeBarCodeColor(Color.DarkGreen).SaveAsPdf("MyQRWithLogo.pdf")
VB   C#

サポートされるバーコード形式

Iron Barcodeは、多くの一般的に使用されているバーコード形式をサポートしています。

  • ロゴや色彩を含む、装飾やブランディングが施されたQRコード
  • アズテック、データマトリックス、CODE 93、およびCODE 128などのマルチフォーマットバーコード
  • RSSエクスパンデッドデータバー、UPSマキシコード、およびUSPS IMbワンコードバーコード
  • RSS-14やPDF-417のようなスタック型線形バーコード

  • 従来の数値バーコード形式には、UPCA、UPCE、EAN-8、EAN-13、Codabar、ITF、MSI、およびPlesseyがあります。
:path=/static-assets/barcode/content-code-examples/get-started/get-started-10.cs
using IronBarCode;

var myBarcode = BarcodeWriter.CreateBarcode("https://ironsoftware.com/csharp/barcode", BarcodeEncoding.Code128);
myBarcode.SaveAsImage("myBarcode.png");
myBarcode.SaveAsGif("myBarcode.gif");
myBarcode.SaveAsHtmlFile("myBarcode.html");
myBarcode.SaveAsJpeg("myBarcode.jpg");
myBarcode.SaveAsPdf("myBarcode.Pdf");
myBarcode.SaveAsPng("myBarcode.png");
myBarcode.SaveAsTiff("myBarcode.tiff");
myBarcode.SaveAsWindowsBitmap("myBarcode.bmp");
Image myBarcodeImage = myBarcode.Image;
Bitmap myBarcodeBitmap = myBarcode.ToBitmap();
string dataUrl = myBarcode.ToDataUrl();
string imgTagForHtml = myBarcode.ToHtmlTag();
byte[] pngBytes = myBarcode.ToPngBinaryData();

// Binary barcode image output also works for GIF,JPEG, PDF, PNG, BMP and TIFF
using (System.IO.Stream pdfStream = myBarcode.ToPdfStream())
{
    // Stream barcode image output also works for GIF,JPEG, PDF, PNG, BMP and TIFF
}
myBarcode.StampToExistingPdfPage("ExistingPDF.pdf", 1, 200, 50);
Imports IronBarCode

Private myBarcode = BarcodeWriter.CreateBarcode("https://ironsoftware.com/csharp/barcode", BarcodeEncoding.Code128)
myBarcode.SaveAsImage("myBarcode.png")
myBarcode.SaveAsGif("myBarcode.gif")
myBarcode.SaveAsHtmlFile("myBarcode.html")
myBarcode.SaveAsJpeg("myBarcode.jpg")
myBarcode.SaveAsPdf("myBarcode.Pdf")
myBarcode.SaveAsPng("myBarcode.png")
myBarcode.SaveAsTiff("myBarcode.tiff")
myBarcode.SaveAsWindowsBitmap("myBarcode.bmp")
Dim myBarcodeImage As Image = myBarcode.Image
Dim myBarcodeBitmap As Bitmap = myBarcode.ToBitmap()
Dim dataUrl As String = myBarcode.ToDataUrl()
Dim imgTagForHtml As String = myBarcode.ToHtmlTag()
Dim pngBytes() As Byte = myBarcode.ToPngBinaryData()

' Binary barcode image output also works for GIF,JPEG, PDF, PNG, BMP and TIFF
Using pdfStream As System.IO.Stream = myBarcode.ToPdfStream()
	' Stream barcode image output also works for GIF,JPEG, PDF, PNG, BMP and TIFF
End Using
myBarcode.StampToExistingPdfPage("ExistingPDF.pdf", 1, 200, 50)
VB   C#

Iron Barcodeを選ぶ理由

IronBarcodeは、.NET用のバーコードの読み取りおよび書き込みのために開発者に優しいAPIを提供し、実際の使用例において高い精度と低いエラー率を最適化します。

BarcodeWriterクラスは、例えば、UPCAおよびUPCEバーコードの「チェックサム」を自動的に検証し、修正します。 また、特定の数値フォーマットに対して短すぎる数字を「ゼロ埋め」することもできます。 データが指定したデータ形式に適さない場合、IronBarcodeは開発者に対してより適切なバーコード形式を指示します。

Iron Barcodeは、バーコードをスキャンしたり、写真画像から読み取ったりする際に優れた性能を発揮します。 つまり、その画像はグラフィカルに完璧ではなく、単なる機械生成のスクリーンショットでもありません。

Iron Barcodeには、自動回転および透視補正、デジタルノイズの補正機能が含まれており、画像にエンコードされたバーコードの種類を自動的に検出することができます。

これから進む

IronBarcodeを活用するために、このドキュメントセクション内のチュートリアルを読んでいただき、GitHubを訪問し、関連資料をお読みいただくことをお勧めします。 .NET APIリファレンス MSDN形式で。