他のコンポーネントと比較する IronBarcodeとZXing.NETの比較 Jordi Bardia 更新日:7月 28, 2025 Download IronBarcode NuGet Download テキストの検索と置換 Start Free Trial Copy for LLMs Copy for LLMs Copy page as Markdown for LLMs Open in ChatGPT Ask ChatGPT about this page Open in Gemini Ask Gemini about this page Open in Grok Ask Grok about this page Open in Perplexity Ask Perplexity about this page Share Share on Facebook Share on X (Twitter) Share on LinkedIn Copy URL Email article バーコードスキャナーは、必ずしもわれわれのアプリケーションに適しているとは限りません。 あなたはすでにバーコードのデジタル画像をお持ちで、その内容が英文で何を表しているのか知りたいと思っているかもしれません。 さらに、このスキャナーは1Dバーコードのみを読み取ることができ、Windows RTクラスライブラリでのみ使用可能です。 2Dバーコード(QRコードとしても知られています)は今では一般的で、より多くの情報を保持することができます。 C#ベースのアプリケーションは、簡単なAPIコールと少しのコーディングステップでバーコードを読み取るために作成することができます。 .NET対応のアプリケーションは、サードパーティツールやAPIに頼らずにWindows、macOS、Linux上で動作します。 この記事では、プログラムでバーコードを読み取るための2つの最も強力な.NET Coreアプリライブラリを比較します。 これら2つのライブラリはIronBarcodeとZXing.NETです。 IronBarcodeがZXing.NETよりも強力で堅牢である理由を見ていきましょう。 class="hsg-featured-snippet"> C#でZxingを使用してバーコードを生成する方法 バーコードを生成するためのC#ライブラリをインストール BarcodeWriterPixelDataクラスから新しいオブジェクトを作成してバーコードをカスタマイズ Formatプロパティでバーコードタイプを設定 QrCodeEncodingOptionsクラスをインスタンス化して、さらに高さ、幅、マージンをカスタマイズ ステップ2のオブジェクトのWriteメソッドでC#でバーコードを生成 ZXing.NETとは ZXing.NETは、バーコード(QRコード、PDF 417、EAN、UPC、Aztec、Data Matrix、Codabarなど)をデコードおよび生成するライブラリです。 ZXingは「zebra crossing」の略で、Javaベースのオープンソースライブラリであり、さまざまな1Dおよび2Dバーコード形式をサポートしています。 主要な特長は以下の通りです: URL、連絡先情報、カレンダーイベントなどを保存する機能があります Java SE アプリケーションに特化しています インテントを介してバーコードスキャナーの統合を提供します 簡単なGoogle Glassアプリです IronBarcodeとは IronBarcodeは、プログラマーがバーコードを読み取り生成できるC#ライブラリです。 主要なバーコードライブラリとして、IronBarcodeは、装飾(カラーとブランド)QRコードを含むさまざまな1次元および2次元バーコードをサポートしています。 .NET StandardとCoreバージョン2以上をサポートしており、Azure、Linux、macOS、Windows、およびWebでクロスプラットフォームで使用できます。 IronBarcodeは、C#、VB.NET、F#開発者が標準化されたプログラミング言語を利用できる.NETシステムのクラスライブラリまたはコンポーネントとして知られています。 お客様はスキャナータグを参照して新しい標準ラベルを作成することができます。 2Dバーコードやその他の3D標準化バーコードに優れた動作をします。 IronBarcodeは現在、2Dバーコードをサポートしています。 これらのコードのカラーリング、スタイリング、ピクセル化を最適化する機能と、印刷または広告資料で使用するためのロゴを追加する機能を提供します。 このライブラリは、他のバーコードソフトウェアでは読み取ることができない歪んだバーコードや変形したバーコードを読むこともできます。 IronBarcodeとZXing.NETのインストール ZXing.NETのインストール ZXing.NETライブラリを使用するには、ASP.NET Core アプリケーションに以下の2つのパッケージを NuGet パッケージマネージャーコンソールを使用してインストールします: 1. ZXing.Net Install-Package ZXing.Net 2. ZXing.Net.Bindings.CoreCompat.System.Drawing Install-Package ZXing.Net.Bindings.CoreCompat.System.Drawing -Version 0.16.5-beta あるいは、NuGet パッケージマネージャを使用してプロジェクトに ZXing.NET をインストールします。 これを行うには、ツール > NuGet パッケージマネージャ > ソリューションのNuGet パッケージを管理...を開き、「ZXing.NET」を「参照」タブで検索します。 class="content-img-align-center"> class="content__image-caption">ASP.NET Webアプリケーション IronBarcodeのインストール IronBarcodeは、NuGet パッケージマネージャまたは製品ウェブサイトから DLL を直接ダウンロードすることでインストールできます。 IronBarcode の名前空間に IronBarcode クラスがすべて含まれています。 IronBarcode は、Visual Studio の NuGet パッケージマネージャを使用してインストールできます:パッケージ名は「Barcode」です。 Install-Package BarCode 2Dバーコードの作成 ZXing.NETを使用する まず、プロジェクトファイルのルートフォルダー内に「qrr」という新しいフォルダーを作成します。 次に、QRファイルを作成し、「qrr」フォルダー内の画像システムファイルに保存します。 コントローラー内に GenerateFile() メソッドを追加し、以下のソースコードのように記述します。 public ActionResult GenerateFile() { return View(); } [HttpPost] public ActionResult GenerateFile(string qrText) { Byte [] byteArray; var width = 250; // width of the QR Code var height = 250; // height of the QR Code var margin = 0; // BarcodeWriterPixelData acts as a QR code generator var qrCodeWriter = new ZXing.BarcodeWriterPixelData { Format = ZXing.BarcodeFormat.QR_CODE, Options = new QrCodeEncodingOptions { Height = height, Width = width, Margin = margin } }; var pixelData = qrCodeWriter.Write(qrText); // creating a PNG bitmap from the raw pixel data; if only black and white colors are used it makes no difference if the raw pixel data is BGRA oriented and the bitmap is initialized with RGB using (var bitmap = new System.Drawing.Bitmap(pixelData.Width, pixelData.Height, System.Drawing.Imaging.PixelFormat.Format32bppRgb)) { using (var ms = new MemoryStream()) { var bitmapData = bitmap.LockBits(new System.Drawing.Rectangle(0, 0, pixelData.Width, pixelData.Height), System.Drawing.Imaging.ImageLockMode.WriteOnly, System.Drawing.Imaging.PixelFormat.Format32bppRgb); try { // we assume that the row stride of the bitmap is aligned to 4 byte multiplied by the width of the image System.Runtime.InteropServices.Marshal.Copy(pixelData.Pixels, 0, bitmapData.Scan0, pixelData.Pixels.Length); } finally { bitmap.UnlockBits(bitmapData); } // Save to folder string fileGuid = Guid.NewGuid().ToString().Substring(0, 4); bitmap.Save(Server.MapPath("~/qrr") + "/file-" + fileGuid + ".png", System.Drawing.Imaging.ImageFormat.Png); // Save to stream as PNG bitmap.Save(ms, System.Drawing.Imaging.ImageFormat.Png); byteArray = ms.ToArray(); } } return View(byteArray); } public ActionResult GenerateFile() { return View(); } [HttpPost] public ActionResult GenerateFile(string qrText) { Byte [] byteArray; var width = 250; // width of the QR Code var height = 250; // height of the QR Code var margin = 0; // BarcodeWriterPixelData acts as a QR code generator var qrCodeWriter = new ZXing.BarcodeWriterPixelData { Format = ZXing.BarcodeFormat.QR_CODE, Options = new QrCodeEncodingOptions { Height = height, Width = width, Margin = margin } }; var pixelData = qrCodeWriter.Write(qrText); // creating a PNG bitmap from the raw pixel data; if only black and white colors are used it makes no difference if the raw pixel data is BGRA oriented and the bitmap is initialized with RGB using (var bitmap = new System.Drawing.Bitmap(pixelData.Width, pixelData.Height, System.Drawing.Imaging.PixelFormat.Format32bppRgb)) { using (var ms = new MemoryStream()) { var bitmapData = bitmap.LockBits(new System.Drawing.Rectangle(0, 0, pixelData.Width, pixelData.Height), System.Drawing.Imaging.ImageLockMode.WriteOnly, System.Drawing.Imaging.PixelFormat.Format32bppRgb); try { // we assume that the row stride of the bitmap is aligned to 4 byte multiplied by the width of the image System.Runtime.InteropServices.Marshal.Copy(pixelData.Pixels, 0, bitmapData.Scan0, pixelData.Pixels.Length); } finally { bitmap.UnlockBits(bitmapData); } // Save to folder string fileGuid = Guid.NewGuid().ToString().Substring(0, 4); bitmap.Save(Server.MapPath("~/qrr") + "/file-" + fileGuid + ".png", System.Drawing.Imaging.ImageFormat.Png); // Save to stream as PNG bitmap.Save(ms, System.Drawing.Imaging.ImageFormat.Png); byteArray = ms.ToArray(); } } return View(byteArray); } Public Function GenerateFile() As ActionResult Return View() End Function <HttpPost> Public Function GenerateFile(ByVal qrText As String) As ActionResult Dim byteArray() As Byte Dim width = 250 ' width of the QR Code Dim height = 250 ' height of the QR Code Dim margin = 0 ' BarcodeWriterPixelData acts as a QR code generator Dim qrCodeWriter = New ZXing.BarcodeWriterPixelData With { .Format = ZXing.BarcodeFormat.QR_CODE, .Options = New QrCodeEncodingOptions With { .Height = height, .Width = width, .Margin = margin } } Dim pixelData = qrCodeWriter.Write(qrText) ' creating a PNG bitmap from the raw pixel data; if only black and white colors are used it makes no difference if the raw pixel data is BGRA oriented and the bitmap is initialized with RGB Using bitmap = New System.Drawing.Bitmap(pixelData.Width, pixelData.Height, System.Drawing.Imaging.PixelFormat.Format32bppRgb) Using ms = New MemoryStream() Dim bitmapData = bitmap.LockBits(New System.Drawing.Rectangle(0, 0, pixelData.Width, pixelData.Height), System.Drawing.Imaging.ImageLockMode.WriteOnly, System.Drawing.Imaging.PixelFormat.Format32bppRgb) Try ' we assume that the row stride of the bitmap is aligned to 4 byte multiplied by the width of the image System.Runtime.InteropServices.Marshal.Copy(pixelData.Pixels, 0, bitmapData.Scan0, pixelData.Pixels.Length) Finally bitmap.UnlockBits(bitmapData) End Try ' Save to folder Dim fileGuid As String = Guid.NewGuid().ToString().Substring(0, 4) bitmap.Save(Server.MapPath("~/qrr") & "/file-" & fileGuid & ".png", System.Drawing.Imaging.ImageFormat.Png) ' Save to stream as PNG bitmap.Save(ms, System.Drawing.Imaging.ImageFormat.Png) byteArray = ms.ToArray() End Using End Using Return View(byteArray) End Function $vbLabelText $csharpLabel 残された唯一の変更点は、「qrr」フォルダー内にQRコードファイルを保存することです。 これは、以下の2行のコードを使用して行われます。 string fileGuid = Guid.NewGuid().ToString().Substring(0, 4); bitmap.Save(Server.MapPath("~/qrr") + "/file-" + fileGuid + ".png", System.Drawing.Imaging.ImageFormat.Png); string fileGuid = Guid.NewGuid().ToString().Substring(0, 4); bitmap.Save(Server.MapPath("~/qrr") + "/file-" + fileGuid + ".png", System.Drawing.Imaging.ImageFormat.Png); Dim fileGuid As String = Guid.NewGuid().ToString().Substring(0, 4) bitmap.Save(Server.MapPath("~/qrr") & "/file-" & fileGuid & ".png", System.Drawing.Imaging.ImageFormat.Png) $vbLabelText $csharpLabel 次に、GenerateFile ビューを作成し、その中に以下のコードを含めます。 GenerateFile ビューは、インデックスビューと同じです。 @model Byte [] @using (Html.BeginForm(null, null, FormMethod.Post)) { <table> <tbody> <tr> <td> <label>Enter text for creating QR Code</label> </td> <td> <input type="text" name="qrText" /> </td> </tr> <tr> <td colspan="2"> <button>Submit</button> </td> </tr> </tbody> </table> } @{ if (Model != null) { <h3>QR Code Successfully Generated</h3> <img src="@String.Format("data:image/png;base64,{0}", Convert.ToBase64String(Model))" /> } } @model Byte [] @using (Html.BeginForm(null, null, FormMethod.Post)) { <table> <tbody> <tr> <td> <label>Enter text for creating QR Code</label> </td> <td> <input type="text" name="qrText" /> </td> </tr> <tr> <td colspan="2"> <button>Submit</button> </td> </tr> </tbody> </table> } @{ if (Model != null) { <h3>QR Code Successfully Generated</h3> <img src="@String.Format("data:image/png;base64,{0}", Convert.ToBase64String(Model))" /> } } model Function [using](Html.BeginForm ByVal As (Nothing, Nothing, FormMethod.Post)) As Byte() 'INSTANT VB WARNING: An assignment within expression was extracted from the following statement: 'ORIGINAL LINE: <table> <tbody> <tr> <td> <label> Enter text for creating QR Code</label> </td> <td> <input type="text" name="qrText" /> </td> </tr> <tr> <td colspan="2"> <button> Submit</button> </td> </tr> </tbody> </table> "qrText" /> </td> </tr> (Of tr) <td colspan="2"> (Of button) Submit</button> </td> </tr> </tbody> </table> 'INSTANT VB WARNING: An assignment within expression was extracted from the following statement: 'ORIGINAL LINE: <table> <tbody> <tr> <td> <label> Enter text for creating QR Code</label> </td> <td> <input type="text" name="qrText" /> </td> </tr> <tr> <td colspan "text" name="qrText" /> </td> </tr> (Of tr) <td colspan (Of table) (Of tbody) (Of tr) (Of td) (Of label) Enter text for creating QR Code</label> </td> (Of td) <input type="text" name End Function @ If True Then If Model IsNot Nothing Then 'INSTANT VB WARNING: Instant VB cannot determine whether both operands of this division are integer types - if they are then you should use the VB integer division operator: (Of h3) QR Code Successfully Generated</h3> <img src="@String.Format("data:image/png base64, If True Then 0 End If ", Convert.ToBase64String(Model))" /> End If End If $vbLabelText $csharpLabel テキストボックスに任意の値を入力し、「送信」ボタンを押します。 QRコードが生成され、「qrr」フォルダーに.PNGファイルとして保存されます。 class="content-img-align-center"> class="content__image-caption">QRコードジェネレーター class="content-img-align-center"> class="content__image-caption">QRコードファイルの表示 サポートされているバーコードフォーマット IronBarcodeは、以下のように一般的に使用される幅広いバーコード形式をサポートしています: ロゴと色付きのQRコード(装飾やブランド化されたコードを含む) Aztec、Data Matrix、CODE 93、CODE 128、RSS Expanded Databar、UPS MaxiCode、およびUSPS、IMB(OneCode)バーコードを含む多様なフォーマットのバーコード RSS-14およびPDF-417スタック線形バーコード UPCA、UPCE、EAN-8、EAN-13、Codabar、ITF、MSI、Plesseyといった伝統的な数値バーコードフォーマット バーコードの作成と保存 using IronBarCode; // Create a barcode and save it in various formats 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"); // Convert barcode to different image formats and obtain binary data System.Drawing.Image MyBarCodeImage = MyBarCode.Image; System.Drawing.Bitmap MyBarCodeBitmap = MyBarCode.ToBitmap(); string DataURL = MyBarCode.ToDataUrl(); string ImgTagForHTML = MyBarCode.ToHtmlTag(); byte[] PngBytes = MyBarCode.ToPngBinaryData(); // Save barcode in PDF stream using (System.IO.Stream PdfStream = MyBarCode.ToPdfStream()) { // The Stream barcode image output also works for GIF, JPEG, PDF, PNG, BMP and TIFF } // Stamp barcode onto an existing PDF at a specific position MyBarCode.StampToExistingPdfPage("ExistingPDF.pdf", 1, 200, 50); using IronBarCode; // Create a barcode and save it in various formats 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"); // Convert barcode to different image formats and obtain binary data System.Drawing.Image MyBarCodeImage = MyBarCode.Image; System.Drawing.Bitmap MyBarCodeBitmap = MyBarCode.ToBitmap(); string DataURL = MyBarCode.ToDataUrl(); string ImgTagForHTML = MyBarCode.ToHtmlTag(); byte[] PngBytes = MyBarCode.ToPngBinaryData(); // Save barcode in PDF stream using (System.IO.Stream PdfStream = MyBarCode.ToPdfStream()) { // The Stream barcode image output also works for GIF, JPEG, PDF, PNG, BMP and TIFF } // Stamp barcode onto an existing PDF at a specific position MyBarCode.StampToExistingPdfPage("ExistingPDF.pdf", 1, 200, 50); Imports IronBarCode ' Create a barcode and save it in various formats 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") ' Convert barcode to different image formats and obtain binary data Dim MyBarCodeImage As System.Drawing.Image = MyBarCode.Image Dim MyBarCodeBitmap As System.Drawing.Bitmap = MyBarCode.ToBitmap() Dim DataURL As String = MyBarCode.ToDataUrl() Dim ImgTagForHTML As String = MyBarCode.ToHtmlTag() Dim PngBytes() As Byte = MyBarCode.ToPngBinaryData() ' Save barcode in PDF stream Using PdfStream As System.IO.Stream = MyBarCode.ToPdfStream() ' The Stream barcode image output also works for GIF, JPEG, PDF, PNG, BMP and TIFF End Using ' Stamp barcode onto an existing PDF at a specific position MyBarCode.StampToExistingPdfPage("ExistingPDF.pdf", 1, 200, 50) $vbLabelText $csharpLabel 一方、ZXingは、Javaベースのオープンソースの1D/2Dバーコード画像処理ライブラリです。 UPC-A、UPC-E、EAN-8、Code 93、Code 128、QRコード、Data Matrix、Aztec、PDF 417などのバーコード形式がサポートされています。 class="content-img-align-center"> class="content__image-caption">サポートされているバーコードフォーマット IronBarcodeを使用したQRコードファイル作成 QRコードをIronBarcodeで作成するには、QRCodeWriterクラスを使用します。BarcodeWriterクラスの代わりに。 このクラスはQRコードを作成するための新規および興味深い機能を導入しています。 QRエラー補正レベルを設定することで、QRコードのサイズと読みやすさのバランスを取ることができます。 using IronBarCode; // Generate a simple QR Code image and save as PNG QRCodeWriter.CreateQrCode("hello world", 500, QRCodeWriter.QrErrorCorrectionLevel.Medium).SaveAsPng("MyQR.png"); using IronBarCode; // Generate a simple QR Code image and save as PNG QRCodeWriter.CreateQrCode("hello world", 500, QRCodeWriter.QrErrorCorrectionLevel.Medium).SaveAsPng("MyQR.png"); Imports IronBarCode ' Generate a simple QR Code image and save as PNG QRCodeWriter.CreateQrCode("hello world", 500, QRCodeWriter.QrErrorCorrectionLevel.Medium).SaveAsPng("MyQR.png") $vbLabelText $csharpLabel エラー補正により、実社会でQRコードを読みやすくすることができます。 エラー補正レベルが高いほど、QRコードはより大きく、ピクセルや複雑さが増加します。 以下の画像では、QRコードファイルが表示されています。 class="content-img-align-center"> class="content__image-caption">QRコード画像 まず、IronBarcode.BarcodeWriterEncoding列挙型からバーコードの値とバーコード形式を指定します。 次に、画像、System.Drawing.Image、またはビットマップコードオブジェクトとして保存できます。 using IronBarCode; using System.Diagnostics; // Generate a simple BarCode image and save as PNG using the following namespaces GeneratedBarcode MyBarCode = IronBarcode.BarcodeWriter.CreateBarcode("https://ironsoftware.com/csharp/barcode", BarcodeWriterEncoding.Code128); MyBarCode.SaveAsPng("MyBarCode.png"); // This line opens the image in your default image viewer Process.Start("MyBarCode.png"); using IronBarCode; using System.Diagnostics; // Generate a simple BarCode image and save as PNG using the following namespaces GeneratedBarcode MyBarCode = IronBarcode.BarcodeWriter.CreateBarcode("https://ironsoftware.com/csharp/barcode", BarcodeWriterEncoding.Code128); MyBarCode.SaveAsPng("MyBarCode.png"); // This line opens the image in your default image viewer Process.Start("MyBarCode.png"); Imports IronBarCode Imports System.Diagnostics ' Generate a simple BarCode image and save as PNG using the following namespaces Private MyBarCode As GeneratedBarcode = IronBarcode.BarcodeWriter.CreateBarcode("https://ironsoftware.com/csharp/barcode", BarcodeWriterEncoding.Code128) MyBarCode.SaveAsPng("MyBarCode.png") ' This line opens the image in your default image viewer Process.Start("MyBarCode.png") $vbLabelText $csharpLabel class="content-img-align-center"> class="content__image-caption">C#の例でバーコード画像を作成 IronBarcodeは、QRコードのスタイリングもサポートしており、画像の正確な中心にロゴグラフィックを配置してスナップすることができます。 特定のブランドやグラフィックアイデンティティに合わせて色を変更することもできます。 テスト用に、以下のコードサンプルでロゴを作成し、QRCodeWriter.CreateQRCodeWithLogoメソッドを使用するのがどれほど簡単かを確認してください。 using IronBarCode; // Adding a Logo var MyQRWithLogo = QRCodeWriter.CreateQrCodeWithLogo("https://ironsoftware.com/csharp/barcode/", "visual-studio-logo.png", 500); MyQRWithLogo.ChangeBarCodeColor(System.Drawing.Color.DarkGreen); using IronBarCode; // Adding a Logo var MyQRWithLogo = QRCodeWriter.CreateQrCodeWithLogo("https://ironsoftware.com/csharp/barcode/", "visual-studio-logo.png", 500); MyQRWithLogo.ChangeBarCodeColor(System.Drawing.Color.DarkGreen); Imports IronBarCode ' Adding a Logo Private MyQRWithLogo = QRCodeWriter.CreateQrCodeWithLogo("https://ironsoftware.com/csharp/barcode/", "visual-studio-logo.png", 500) MyQRWithLogo.ChangeBarCodeColor(System.Drawing.Color.DarkGreen) $vbLabelText $csharpLabel class="content-img-align-center"> class="content__image-caption">ロゴ画像付きのQRコード生成 最後に、生成されたQRコードをPDFファイルとして保存します。便利のため、最終コード行はQRコードをHTMLファイルとして保存します。 using IronBarCode; // Adding a Logo var MyQRWithLogo = QRCodeWriter.CreateQrCodeWithLogo("https://ironsoftware.com/csharp/barcode/", "visual-studio-logo.png", 500); MyQRWithLogo.ChangeBarCodeColor(System.Drawing.Color.DarkGreen); // Save as PDF MyQRWithLogo.SaveAsPdf("MyQRWithLogo.pdf"); // Also Save as HTML MyQRWithLogo.SaveAsHtmlFile("MyQRWithLogo.html"); using IronBarCode; // Adding a Logo var MyQRWithLogo = QRCodeWriter.CreateQrCodeWithLogo("https://ironsoftware.com/csharp/barcode/", "visual-studio-logo.png", 500); MyQRWithLogo.ChangeBarCodeColor(System.Drawing.Color.DarkGreen); // Save as PDF MyQRWithLogo.SaveAsPdf("MyQRWithLogo.pdf"); // Also Save as HTML MyQRWithLogo.SaveAsHtmlFile("MyQRWithLogo.html"); Imports IronBarCode ' Adding a Logo Private MyQRWithLogo = QRCodeWriter.CreateQrCodeWithLogo("https://ironsoftware.com/csharp/barcode/", "visual-studio-logo.png", 500) MyQRWithLogo.ChangeBarCodeColor(System.Drawing.Color.DarkGreen) ' Save as PDF MyQRWithLogo.SaveAsPdf("MyQRWithLogo.pdf") ' Also Save as HTML MyQRWithLogo.SaveAsHtmlFile("MyQRWithLogo.html") $vbLabelText $csharpLabel 以下では、わずか1行のコードでバーコードを作成、スタイリング、エクスポートする方法を示しています。 IronBarcodeには、System.Linqに似た流れるようなAPIが含まれています。 メソッドコールを連鎖させることで、バーコードを作成し、そのマージンを設定し、それをビットマップにエクスポートします。 これは非常に便利で、コードを読みやすくします。 using IronBarCode; using System.Drawing; // Fluent API for Barcode image generation string MyValue = "https://ironsoftware.com/csharp/barcode"; Bitmap BarcodeBmp = IronBarcode.BarcodeWriter.CreateBarcode(MyValue, BarcodeEncoding.PDF417) .ResizeTo(300, 200) .SetMargins(100) .ToBitmap(); using IronBarCode; using System.Drawing; // Fluent API for Barcode image generation string MyValue = "https://ironsoftware.com/csharp/barcode"; Bitmap BarcodeBmp = IronBarcode.BarcodeWriter.CreateBarcode(MyValue, BarcodeEncoding.PDF417) .ResizeTo(300, 200) .SetMargins(100) .ToBitmap(); Imports IronBarCode Imports System.Drawing ' Fluent API for Barcode image generation Private MyValue As String = "https://ironsoftware.com/csharp/barcode" Private BarcodeBmp As Bitmap = IronBarcode.BarcodeWriter.CreateBarcode(MyValue, BarcodeEncoding.PDF417).ResizeTo(300, 200).SetMargins(100).ToBitmap() $vbLabelText $csharpLabel その結果、次に示すようなPDF417バーコードのSystem.Drawing.Imageが作成されます: class="content-img-align-center"> class="content__image-caption">簡単で直感的なPDF417バーコード生成 QRコードファイルを読む IronBarcodeを使用してQRコードを読む .NETバーコードリーダーと連携したIronBarcodeクラスライブラリを使用すると、バーコードまたはQRコードの読み取りは簡単です。 最初の例では、たった1行のコードでバーコードを読む方法を示しています。 class="content-img-align-center"> class="content__image-caption">C#でスキャンされるCode128バーコード画像 バーコードのバリュー、画像、エンコーディングタイプ、バイナリデータ(ある場合)を取得した後、それをコンソールに出力します。 using IronBarCode; using System; // Read a barcode or QR code from an image BarcodeResult Result = BarcodeReader.QuicklyReadOneBarcode("GetStarted.png"); if (Result != null && Result.Text == "https://ironsoftware.com/csharp/barcode/") { Console.WriteLine("GetStarted was a success. Read Value: " + Result.Text); } using IronBarCode; using System; // Read a barcode or QR code from an image BarcodeResult Result = BarcodeReader.QuicklyReadOneBarcode("GetStarted.png"); if (Result != null && Result.Text == "https://ironsoftware.com/csharp/barcode/") { Console.WriteLine("GetStarted was a success. Read Value: " + Result.Text); } Imports IronBarCode Imports System ' Read a barcode or QR code from an image Private Result As BarcodeResult = BarcodeReader.QuicklyReadOneBarcode("GetStarted.png") If Result IsNot Nothing AndAlso Result.Text = "https://ironsoftware.com/csharp/barcode/" Then Console.WriteLine("GetStarted was a success. Read Value: " & Result.Text) End If $vbLabelText $csharpLabel PDF内のバーコードを読む スキャンされたPDFドキュメントを読み取り、数行のコードで全ての一次元バーコードを追跡する方法を見ていきます。 ご覧の通り、単一のドキュメントから単一のバーコードを読み取るのと非常によく似ていますが、今回、バーコードが発見されたページ番号を知ることができます。 using IronBarCode; using System; using System.Drawing; // Multiple barcodes may be scanned up from a single document or image. A PDF document may also be used as the input image PagedBarcodeResult[] PDFResults = BarcodeReader.ReadBarcodesFromPdf("MultipleBarcodes.pdf"); // Work with the results 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); } using IronBarCode; using System; using System.Drawing; // Multiple barcodes may be scanned up from a single document or image. A PDF document may also be used as the input image PagedBarcodeResult[] PDFResults = BarcodeReader.ReadBarcodesFromPdf("MultipleBarcodes.pdf"); // Work with the results 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); } Imports IronBarCode Imports System Imports System.Drawing ' Multiple barcodes may be scanned up from a single document or image. A PDF document may also be used as the input image Private PDFResults() As PagedBarcodeResult = BarcodeReader.ReadBarcodesFromPdf("MultipleBarcodes.pdf") ' Work with the results For Each PageResult In PDFResults 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 $vbLabelText $csharpLabel PDF内の全てのビットマップバーコードを含む結果データを得ることができます。 class="content-img-align-center"> class="content__image-caption">PDF内に格納されたバーコードを読む結果 GIFおよびTIFFからバーコードを読む using IronBarCode; using System; // Multi-frame TIFF and GIF images can also be scanned, and multiple threads will be used automatically in the background for improved performance PagedBarcodeResult[] MultiFrameResults = BarcodeReader.ReadBarcodesFromMultiFrameTiff("Multiframe.tiff", BarcodeEncoding.Code128, BarcodeReader.BarcodeRotationCorrection.High, BarcodeReader.BarcodeImageCorrection.MediumCleanPixels); foreach (var PageResult in MultiFrameResults) { // Process each page result } using IronBarCode; using System; // Multi-frame TIFF and GIF images can also be scanned, and multiple threads will be used automatically in the background for improved performance PagedBarcodeResult[] MultiFrameResults = BarcodeReader.ReadBarcodesFromMultiFrameTiff("Multiframe.tiff", BarcodeEncoding.Code128, BarcodeReader.BarcodeRotationCorrection.High, BarcodeReader.BarcodeImageCorrection.MediumCleanPixels); foreach (var PageResult in MultiFrameResults) { // Process each page result } Imports IronBarCode Imports System ' Multi-frame TIFF and GIF images can also be scanned, and multiple threads will be used automatically in the background for improved performance Private MultiFrameResults() As PagedBarcodeResult = BarcodeReader.ReadBarcodesFromMultiFrameTiff("Multiframe.tiff", BarcodeEncoding.Code128, BarcodeReader.BarcodeRotationCorrection.High, BarcodeReader.BarcodeImageCorrection.MediumCleanPixels) For Each PageResult In MultiFrameResults ' Process each page result Next PageResult $vbLabelText $csharpLabel class="content-img-align-center"> class="content__image-caption">複数の画像フレームを持つTIFF画像からのバーコード読取 次の例では、スキャンされたPDFからQRコードとPDF-417バーコードを読み取る方法を示しています。 ドキュメントを可視的に磨くことなく重要なパフォーマンスペナルティを引き起こさない適切なバーコード回転補正レベルおよびバーコード画像補正レベルを設定しました。 using IronBarCode; using System; // PDF documents can also be scanned, and multiple threads will be used automatically in the background for improved performance var ScanResults = BarcodeReader.ReadBarcodesFromPdf("Scan.pdf", BarcodeEncoding.All, BarcodeReader.BarcodeRotationCorrection.Low, BarcodeReader.BarcodeImageCorrection.LightlyCleanPixels); // Work with the results foreach (var PageResult in ScanResults) { string Value = PageResult.Value; //... } using IronBarCode; using System; // PDF documents can also be scanned, and multiple threads will be used automatically in the background for improved performance var ScanResults = BarcodeReader.ReadBarcodesFromPdf("Scan.pdf", BarcodeEncoding.All, BarcodeReader.BarcodeRotationCorrection.Low, BarcodeReader.BarcodeImageCorrection.LightlyCleanPixels); // Work with the results foreach (var PageResult in ScanResults) { string Value = PageResult.Value; //... } Imports IronBarCode Imports System ' PDF documents can also be scanned, and multiple threads will be used automatically in the background for improved performance Private ScanResults = BarcodeReader.ReadBarcodesFromPdf("Scan.pdf", BarcodeEncoding.All, BarcodeReader.BarcodeRotationCorrection.Low, BarcodeReader.BarcodeImageCorrection.LightlyCleanPixels) ' Work with the results For Each PageResult In ScanResults Dim Value As String = PageResult.Value '... Next PageResult $vbLabelText $csharpLabel class="content-img-align-center"> class="content__image-caption">スキャンされたPDF文書からのバーコード読取 ビットマップ画像からの破損したQRコードを読む 以下の例は、このC#バーコードライブラリが破損したバーコードのサムネイルを読み取ることさえできることを示しています。 バーコードサムネイルサイズの補正は自動的に行われます。 C#のIronBarcodeはファイルを読み取り可能にします。 リーダーメソッドは、正当なバーコードとしては小さすぎるバーコード画像を自動的に検出し、サイズをアップスケールします。 サムネイルで作業する際のデジタルノイズをすべて除去し、再び読み取り可能にします。 using IronBarCode; // Small or 'Thumbnail' barcode images are automatically detected by IronBarcode and corrected wherever possible even if they have much digital noise. BarcodeResult SmallResult = BarcodeReader.QuicklyReadOneBarcode("ThumbnailOfBarcode.gif", BarcodeEncoding.Code128); using IronBarCode; // Small or 'Thumbnail' barcode images are automatically detected by IronBarcode and corrected wherever possible even if they have much digital noise. BarcodeResult SmallResult = BarcodeReader.QuicklyReadOneBarcode("ThumbnailOfBarcode.gif", BarcodeEncoding.Code128); Imports IronBarCode ' Small or 'Thumbnail' barcode images are automatically detected by IronBarcode and corrected wherever possible even if they have much digital noise. Private SmallResult As BarcodeResult = BarcodeReader.QuicklyReadOneBarcode("ThumbnailOfBarcode.gif", BarcodeEncoding.Code128) $vbLabelText $csharpLabel class="content-img-align-center"> class="content__image-caption">自動バーコードサムネイルサイズ補正 不完全な画像からのバーコードの読み取り 実社会のシナリオでは、不完全な画像からバーコードを読みたい場合があります。 これらは傾いた画像やデジタルノイズを含む写真である場合があります。ほとんどのオープンソース.NETバーコード生成および読み取りライブラリではこれが不可能です。 一方、IronBarcodeを使うと、不完全な画像からのバーコード読み取りが簡単です。 今度はReadASingleBarcodeメソッドを見ていきましょう。 RotationCorrectionパラメーターにより、IronBarcodeは不完全なデジタルサンプルからデスクューしてバーコードを読み取ろうとします。 using IronBarCode; using System; using System.Drawing; // All BarcodeResult.Read methods provide the developer with control to correct image and photograph correction and straightening rotation and perspective from skewed images // * RotationCorrection e.g BarcodeReader.BarcodeRotationCorrection.Extreme un-rotates and removes perspective from barcode images. // * ImageCorrection e.g BarcodeReader.BarcodeImageCorrection.DeepCleanPixels separates barcodes from background imagery and digital noise. // * BarcodeEncoding e.g. BarcodeEncoding.Code128, Setting a specific Barcode format improves speed and reduces the risk of false positive results // Example with a photo image var PhotoResult = BarcodeReader.ReadASingleBarcode("Photo.png", BarcodeEncoding.Code128, BarcodeReader.BarcodeRotationCorrection.Medium, BarcodeReader.BarcodeImageCorrection.DeepCleanPixels); string Value = PhotoResult.Value; System.Drawing.Bitmap Img = PhotoResult.BarcodeImage; BarcodeEncoding BarcodeType = PhotoResult.BarcodeType; byte[] Binary = PhotoResult.BinaryValue; Console.WriteLine(PhotoResult.Value); using IronBarCode; using System; using System.Drawing; // All BarcodeResult.Read methods provide the developer with control to correct image and photograph correction and straightening rotation and perspective from skewed images // * RotationCorrection e.g BarcodeReader.BarcodeRotationCorrection.Extreme un-rotates and removes perspective from barcode images. // * ImageCorrection e.g BarcodeReader.BarcodeImageCorrection.DeepCleanPixels separates barcodes from background imagery and digital noise. // * BarcodeEncoding e.g. BarcodeEncoding.Code128, Setting a specific Barcode format improves speed and reduces the risk of false positive results // Example with a photo image var PhotoResult = BarcodeReader.ReadASingleBarcode("Photo.png", BarcodeEncoding.Code128, BarcodeReader.BarcodeRotationCorrection.Medium, BarcodeReader.BarcodeImageCorrection.DeepCleanPixels); string Value = PhotoResult.Value; System.Drawing.Bitmap Img = PhotoResult.BarcodeImage; BarcodeEncoding BarcodeType = PhotoResult.BarcodeType; byte[] Binary = PhotoResult.BinaryValue; Console.WriteLine(PhotoResult.Value); Imports IronBarCode Imports System Imports System.Drawing ' All BarcodeResult.Read methods provide the developer with control to correct image and photograph correction and straightening rotation and perspective from skewed images ' * RotationCorrection e.g BarcodeReader.BarcodeRotationCorrection.Extreme un-rotates and removes perspective from barcode images. ' * ImageCorrection e.g BarcodeReader.BarcodeImageCorrection.DeepCleanPixels separates barcodes from background imagery and digital noise. ' * BarcodeEncoding e.g. BarcodeEncoding.Code128, Setting a specific Barcode format improves speed and reduces the risk of false positive results ' Example with a photo image Private PhotoResult = BarcodeReader.ReadASingleBarcode("Photo.png", BarcodeEncoding.Code128, BarcodeReader.BarcodeRotationCorrection.Medium, BarcodeReader.BarcodeImageCorrection.DeepCleanPixels) Private Value As String = PhotoResult.Value Private Img As System.Drawing.Bitmap = PhotoResult.BarcodeImage Private BarcodeType As BarcodeEncoding = PhotoResult.BarcodeType Private Binary() As Byte = PhotoResult.BinaryValue Console.WriteLine(PhotoResult.Value) $vbLabelText $csharpLabel class="content-img-align-center"> class="content__image-caption">携帯電話カメラからのバーコード読み取り IronBarcodeはまた、同時に複数のバーコードを読み取ることも可能です。ドキュメントのリストを作成し、バーコードリーダーを使用して複数のドキュメントを読み取ることで、IronBarcodeから良い結果を得ることができます。 バーコードスキャンプロセスにおけるReadBarcodesMultithreadedメソッドは、複数のスレッドおよび潜在的にはCPUの全コアを使用し、バーコードを一つずつ読むよりも指数関数的に速くなる可能性があります。 using IronBarCode; // The BarcodeResult.ReadBarcodesMultiThreaded method allows for faster barcode scanning of multiple images or PDFs. All threads are automatically managed by IronBarcode. var ListOfDocuments = new[] { "Image1.png", "image2.JPG", "image3.pdf" }; PagedBarcodeResult[] BatchResults = BarcodeReader.ReadBarcodesMultiThreaded(ListOfDocuments); // Work with the results foreach (var Result in BatchResults) { string Value = Result.Value; //... } using IronBarCode; // The BarcodeResult.ReadBarcodesMultiThreaded method allows for faster barcode scanning of multiple images or PDFs. All threads are automatically managed by IronBarcode. var ListOfDocuments = new[] { "Image1.png", "image2.JPG", "image3.pdf" }; PagedBarcodeResult[] BatchResults = BarcodeReader.ReadBarcodesMultiThreaded(ListOfDocuments); // Work with the results foreach (var Result in BatchResults) { string Value = Result.Value; //... } Imports IronBarCode ' The BarcodeResult.ReadBarcodesMultiThreaded method allows for faster barcode scanning of multiple images or PDFs. All threads are automatically managed by IronBarcode. Private ListOfDocuments = { "Image1.png", "image2.JPG", "image3.pdf" } Private BatchResults() As PagedBarcodeResult = BarcodeReader.ReadBarcodesMultiThreaded(ListOfDocuments) ' Work with the results For Each Result In BatchResults Dim Value As String = Result.Value '... Next Result $vbLabelText $csharpLabel ZXing.NETによるQRコードの読み取りとデコード QRコードファイルを読み取るために、コントローラにViewFileアクションメソッドを追加します。以下に示します。 public ActionResult ViewFile() { List<KeyValuePair<string, string>> fileData = new List<KeyValuePair<string, string>>(); KeyValuePair<string, string> data; string[] files = Directory.GetFiles(Server.MapPath("~/qrr")); foreach (string file in files) { // Create a barcode reader instance IBarcodeReader reader = new BarcodeReader(); // Load a bitmap var barcodeBitmap = (Bitmap)Image.FromFile(Server.MapPath("~/qrr") + "/" + Path.GetFileName(file)); // Detect and decode the barcode inside the bitmap var result = reader.Decode(barcodeBitmap); // Do something with the result data = new KeyValuePair<string, string>(result.ToString(), "/QR/" + Path.GetFileName(file)); fileData.Add(data); } return View(fileData); } public ActionResult ViewFile() { List<KeyValuePair<string, string>> fileData = new List<KeyValuePair<string, string>>(); KeyValuePair<string, string> data; string[] files = Directory.GetFiles(Server.MapPath("~/qrr")); foreach (string file in files) { // Create a barcode reader instance IBarcodeReader reader = new BarcodeReader(); // Load a bitmap var barcodeBitmap = (Bitmap)Image.FromFile(Server.MapPath("~/qrr") + "/" + Path.GetFileName(file)); // Detect and decode the barcode inside the bitmap var result = reader.Decode(barcodeBitmap); // Do something with the result data = new KeyValuePair<string, string>(result.ToString(), "/QR/" + Path.GetFileName(file)); fileData.Add(data); } return View(fileData); } Public Function ViewFile() As ActionResult Dim fileData As New List(Of KeyValuePair(Of String, String))() Dim data As KeyValuePair(Of String, String) Dim files() As String = Directory.GetFiles(Server.MapPath("~/qrr")) For Each file As String In files ' Create a barcode reader instance Dim reader As IBarcodeReader = New BarcodeReader() ' Load a bitmap Dim barcodeBitmap = CType(Image.FromFile(Server.MapPath("~/qrr") & "/" & Path.GetFileName(file)), Bitmap) ' Detect and decode the barcode inside the bitmap Dim result = reader.Decode(barcodeBitmap) ' Do something with the result data = New KeyValuePair(Of String, String)(result.ToString(), "/QR/" & Path.GetFileName(file)) fileData.Add(data) Next file Return View(fileData) End Function $vbLabelText $csharpLabel class="content-img-align-center"> class="content__image-caption">QRコードの読み取りとデコード class="content-img-align-center"> class="content__image-caption">デコードされたQRコード ビットマップ内でのバーコードデコード using ZXing; using System.Drawing; // Create a barcode reader instance BarcodeReader reader = new BarcodeReader(); // Load a bitmap var barcodeBitmap = (Bitmap)Image.FromFile("C:\\sample-barcode-image.png"); // Detect and decode the barcode inside the bitmap var result = reader.Decode(barcodeBitmap); // Do something with the result if (result != null) { txtDecoderType.Text = result.BarcodeFormat.ToString(); txtDecoderContent.Text = result.Text; } using ZXing; using System.Drawing; // Create a barcode reader instance BarcodeReader reader = new BarcodeReader(); // Load a bitmap var barcodeBitmap = (Bitmap)Image.FromFile("C:\\sample-barcode-image.png"); // Detect and decode the barcode inside the bitmap var result = reader.Decode(barcodeBitmap); // Do something with the result if (result != null) { txtDecoderType.Text = result.BarcodeFormat.ToString(); txtDecoderContent.Text = result.Text; } Imports ZXing Imports System.Drawing ' Create a barcode reader instance Private reader As New BarcodeReader() ' Load a bitmap Private barcodeBitmap = CType(Image.FromFile("C:\sample-barcode-image.png"), Bitmap) ' Detect and decode the barcode inside the bitmap Private result = reader.Decode(barcodeBitmap) ' Do something with the result If result IsNot Nothing Then txtDecoderType.Text = result.BarcodeFormat.ToString() txtDecoderContent.Text = result.Text End If $vbLabelText $csharpLabel ZXing Decoder Online ZXing Decoder Onlineは、デコードをサポートするオンラインのバーコードおよびQRコードスキャナーです。 QRコード画像のPNGまたはその他の形式をアップロードすると、デコードを開始します。 同様に、任意のデータのQRコードを生成できます。 ほとんどの時間、その情報はURLまたはQRコードにエンコードしたいテキストです。 ZXing Decoder のウェブサイトに移動します。 class="content-img-align-center"> class="content__image-caption">ZXing Decoder サイト class="content-img-align-center"> class="content__image-caption">ZXing Decode 結果 価格とライセンス ZXing.NETライブラリは、無料で商用利用も可能なApache License 2.0の下で許諾されている、バーコード読み取りアプリケーションを構築するためのオープンソースライブラリです。 IronBarcodeの開発者ライセンスは無料で提供されています。 IronBarcodeは独自の価格体系を持っており:Liteバンドルは$liteLicenseから始まり、追加費用がありません。 SaaSやOEMアイテムも再配布可能です。 各ライセンスには、永続ライセンス、開発/ステージング/本番の有効性、30日間の返金保証、1年間のソフトウェアサポートとアップグレード(1回限りの購入)が含まれています。 IronBarcodeの完全な価格とライセンス情報を表示するには、このページを参照してください。 IronBarcodeを選ぶ理由 IronBarcodeには、.NETでバーコードを読み書きするための簡単に使えるAPIが含まれており、精度の最適化と低エラー率を実社会でのユースケースで最適化します。 たとえば、BarcodeWriterクラスは、UPCAおよびUPCEバーコードの「チェックサム」を検証および修正します。 また、特定の数値形式に入力するために短すぎる数字を「ゼロパディング」します。 データが指定したデータ形式と互換性がない場合、IronBarcodeは開発者により適したバーコード形式を通知します。 IronBarcodeは、バーコードをスキャンしたりフォトグラフィック画像から読み取る際に優れています。言い換えれば、画像が完全にグラフィックでなく、機械生成されたスクリーンショットでないときに、バーコードを読む際に優れています。 IronBarcodeはZXing.NETとどう違うのか? IronBarcodeは、ZXing.NET(Zebra Crossing)コアから構築され、処理能力が改善されています。 使いやすいAPIと低エラー率がZXing.NETコアライブラリに比べて特徴です。 それだけでなく、IronBarcodeは通常のZXing.NETライブラリがサポートするよりも広範なバーコードフォーマットをサポートしています。 IronBarcodeはZXing.NETの改善されたバージョンであり、ユーザーに商業利用のためのプラットフォームと、多くのプラットフォームで同じパッケージを使用する可能性を提供します。 また、常に必要な場所で支援してくれる完全な技術サポートも備えています。 IronBarcodeは、画像内にエンコードされたバーコードの種類を検出できる自動回転、透視補正、デジタルノイズ補正も備えています。 結論 結論として、IronBarcodeは、スクリーンショット、写真、スキャン、またはその他の不完全な実社会の画像であっても、幅広いバーコード形式を読み取るための汎用.NETソフトウェアライブラリであり、C# QRコードジェネレーターです。 IronBarcodeは、バーコードを作成および識別するための最も効果的なライブラリの1つです。 バーコードを作成および識別する際にも最も迅速なライブラリの1つです。 このライブラリは異なるオペレーティングシステムと互換性があります。 設計が簡単で、さまざまなバーコード形式をサポートしています。 加えて、さまざまな記号、形式、キャラクターがサポートされています。 ZXing.NETバーコードは、さまざまな画像形式でバーコードを生成および認識する強力なライブラリです。 さまざまな形式で画像の読み取りと作成が可能です。 ZXing.NETはまた、バーコードの外観を変更することも可能で、その高さ、幅、バーコードテキストなどを変更できます。 ZXing.NETと比較して、IronBarcodeパッケージは信頼できるライセンスとサポートを提供します。 IronBarcodeの価格は$liteLicenseです。 ZXingがフリーかつオープンソースであるのに対し、IronBarcodeは包括的な商業サポートとプロフェッショナルメンテナンスを提供します。 ZXing.NETよりも柔軟性があるだけでなく、Iron Barcodeソリューションはさらに機能も備えています。 したがって、IronBarcodeがZXing.NETに対して強力なアドバンテージを持っていることは明らかです。 バーコードの認識および生成の処理時間を比較すると、IronBarcodeはZXing.NETを凌駕します。 IronBarcodeには、異なる画像形式およびPDFドキュメントからバーコードを読み取ることを可能にする多くのプロパティがあります。 さらに、他のライブラリでは利用できないバーコードやQRコード内に画像を含めることもできます。 IronBarcodeは開発初期段階で無料です。 無料トライアルを取得して、プロダクションレベルまたは商業利用に利用できます。 開発者の要件に応じて、IronBarcodeには3つの価格帯が用意されています。 あなたの需要を最も満たすソリューションを選ぶことができます。 現在、Iron Softwareの製品5つを2つのIron Software商品価格で入手できます。 詳細情報を得るには、このウェブサイトを訪れてください。 ご注意ZXing.NETはその所有者の登録商標です。 このサイトは、ZXing.NETと提携しておらず、承認もスポンサーもされていません。 すべての製品名、ロゴ、およびブランドは各所有者の所有物です。 比較は情報提供のみを目的としており、執筆時点で公開されている情報を反映しています。 よくある質問 C#でQRコードを生成する方法は? C#でQRコードを生成するには、`BarcodeWriter`クラスを使用してIronBarcodeを利用します。QRコードの内容を定義し、色やサイズのようなオプションをカスタマイズし、`Write`メソッドを呼び出してQRコードを生成します。 IronBarcodeがZXing.NETより堅牢な理由は何ですか? IronBarcodeは、より広範なバーコード形式のサポートや回転および視点の補正などの高度な画像処理機能、そしてロゴと色を使用してデコレーションされたQRコードを作成する機能など、強化された機能を提供します。また、クロスプラットフォーム互換性を備え、商業サポートを提供します。 不完全な画像からバーコードをIronBarcodeで読み取ることができますか? はい、IronBarcodeは、回転補正、視点補正、デジタルノイズ削減などの機能を使用して不完全な画像からバーコードを読み取ることができ、スキャンしたり写真に撮った画像に対して効果を発揮します。 C#でバーコードを読み取る手順は何ですか? C#でバーコードを読み取るには、IronBarcodeの`BarcodeReader`クラスを使用します。`BarcodeReader.QuicklyReadOneBarcode`メソッドを使用してバーコードを含む画像を読み込み、認識された場合はバーコードの内容をデコードして返します。 IronBarcodeはどのようにクロスプラットフォーム互換性を扱いますか? IronBarcodeは、Windows、macOS、Linux、およびAzureに対してクロスプラットフォーム互換性をサポートしており、サードパーティの依存関係なしに多様な.NETアプリケーションにバーコードの生成および読み取り機能を統合することができます。 IronBarcodeでQRコードをカスタマイズするためのオプションは何ですか? IronBarcodeは、色の調整、ブランディングのためのロゴの追加、およびサイズと可読性のバランスを取るためのエラー訂正レベルの設定など、QRコードのカスタマイズを可能にし、さまざまな美的および機能的な要件に柔軟性を提供します。 IronBarcodeを商用アプリケーションで使用する際のライセンス料はありますか? IronBarcodeは、商用アプリケーションに適した永続ライセンスを含むさまざまなライセンスオプションを提供します。これは無料であるが商用使用に制限のあるZXing.NETとは対照的です。 バーコードライブラリを使用する際の一般的なトラブルシューティングのシナリオは何ですか? 一般的な問題には、画像の質の悪さによる不正確なバーコード認識、サポートされていないバーコード形式、または構成エラーなどがあります。IronBarcodeの高度な画像処理は、一部の認識問題を軽減するのに役立ちます。 バーコード処理においてIronBarcodeを選ぶ理由は? IronBarcodeは、より堅牢なAPI、より良いエラー処理、幅広いバーコード形式サポート、および視覚的にカスタマイズされたQRコードを生成する機能を提供し、商業用ライセンスおよびプロフェッショナルサポートの追加のメリットがあります。 IronBarcodeを.NETプロジェクトにインストールする方法は? Visual StudioのNuGetパッケージマネージャーを使用して.NETプロジェクトにIronBarcodeをインストールできます。'IronBarcode'を検索してプロジェクトに追加し、容易な統合と更新を確実にします。 Jordi Bardia 今すぐエンジニアリングチームとチャット ソフトウェアエンジニア Jordiは、最も得意な言語がPython、C#、C++であり、Iron Softwareでそのスキルを発揮していない時は、ゲームプログラミングをしています。製品テスト、製品開発、研究の責任を分担し、Jordiは継続的な製品改善において多大な価値を追加しています。この多様な経験は彼を挑戦させ続け、興味を持たせており、Iron Softwareで働くことの好きな側面の一つだと言います。Jordiはフロリダ州マイアミで育ち、フロリダ大学でコンピュータサイエンスと統計学を学びました。 関連する記事 更新日 9月 25, 2025 C#で最高のバーコードライブラリを選ぶ方法 このガイドでは、.NET の最も広く使用されている5つのバーコードライブラリ、IronBarcode、http://ZXing.Net、Aspose.BarCode、BarcodeLib、Dynamsoft Barcode Reader を比較します。 詳しく読む 更新日 7月 28, 2025 ZXingでのバーコードスキャン方法 (C#開発者向け) ZXingを構成するモジュールのいくつかとして、コア画像デコードライブラリ、JavaSE固有のクライアントコード、およびAndroidクライアントバーコードスキャナーがあります。多くの他の独立したオープンソースプロジェクトがその上に構築されています。 詳しく読む 更新日 8月 31, 2025 ZXing.orgのQRコードライブラリとIronBarcodeの包括的な比較 ZXing は 1D および 2D バーコードを生成およびデコードするための人気のあるオープンソースライブラリです。 詳しく読む ZXingデコーダーとIronBarcodeの比較IronBarcodeとAspose.Barcodeの比較
更新日 9月 25, 2025 C#で最高のバーコードライブラリを選ぶ方法 このガイドでは、.NET の最も広く使用されている5つのバーコードライブラリ、IronBarcode、http://ZXing.Net、Aspose.BarCode、BarcodeLib、Dynamsoft Barcode Reader を比較します。 詳しく読む
更新日 7月 28, 2025 ZXingでのバーコードスキャン方法 (C#開発者向け) ZXingを構成するモジュールのいくつかとして、コア画像デコードライブラリ、JavaSE固有のクライアントコード、およびAndroidクライアントバーコードスキャナーがあります。多くの他の独立したオープンソースプロジェクトがその上に構築されています。 詳しく読む
更新日 8月 31, 2025 ZXing.orgのQRコードライブラリとIronBarcodeの包括的な比較 ZXing は 1D および 2D バーコードを生成およびデコードするための人気のあるオープンソースライブラリです。 詳しく読む