在實際環境中測試
在生產環境中測試無浮水印。
在任何需要的地方都能運作。
條碼無處不在。 條碼掃描實作被作者用來簽署他們的產品,大多數書籍的簽名都是由條碼掃描實作提供支持的。 然而,對於我們的應用程式來說,條碼掃描器可能並不總是合適的。 您可能擁有條碼的數位圖像和影片,並想知道它們在英語文本中代表什麼。 此外,僅有一維條碼可以被條碼掃描器讀取,這些條碼只能用於 Windows RT 類庫,且資料量有限。 二維條碼,也稱為QR碼,如今被廣泛使用,可在其資料矩陣中儲存更多數據。
ZXing(斑馬線)是一個開源的、多格式的1D/2D條碼影像處理庫,用Java實現,並有其他語言的移植版本。 它可以讀寫多種不同的條碼格式,包括計算機上的 QR 碼和 UPC 碼。
IronBarcode 是一個 C# .NET 軟體庫,允許開發人員使用 ZXing 庫來讀取和編寫條碼圖像,用於網路應用程式測試。 它被設計成易於使用且易於整合到任何 .NET 應用程式中,並且可以與 Windows Forms、WPF 和 ASP.NET 框架一起使用。
IronBarcode 的庫提供了一個簡單的 API 用於讀取和寫入條碼圖像,使開發人員能夠輕鬆地將條碼掃描和生成功能添加到他們的軟體中。 IronBarcode 支援讀取和寫入多種不同的條碼格式,包括 QR 碼、UPC 碼、UPC-A 碼、EAN 碼、RSS expanded 等,用於產品標識。
該庫擁有撰寫完善的文檔和示例代碼,展示了如何開始使用IronBarcode,如何掃描和解碼條碼,如何生成和編碼條碼,以及如何自定義讀寫過程。
IronBarcode 的一個最重要功能是支援從 PDF 文件或圖像文件中識別條碼和 QR 碼,並能夠從文件路徑或位圖對象中讀取條碼。
IronBarcode 使用簡便、功能強大且速度快。對於需要在其軟體中新增條碼掃描或生成功能的人而言,它是一個絕佳工具。 而且,由於它建立在受歡迎且可靠的ZXing庫之上,您可以對其可靠性和高品質解決方案充滿信心。
IronBarcode 是一個商業的第三方 .NET 函式庫,用於在 C# 和 VB.NET 中解碼條碼,並使用開源的 ZXing 函式庫作為其底層引擎。該函式庫提供了一個簡化的、易於使用的 API 來操作條碼,以及其他功能,例如從圖像和 PDF 讀取條碼的能力,並且可以創建多種格式的條碼。
IronBarcode 由一群開發人員創建,他們希望為 .NET 生態系統建立一個更具用戶友好性和功能豐富的條碼解碼庫。 他們利用了 ZXing 庫,這是一個成熟的開源庫,支持多種條碼格式,作為其庫的基礎。 然後,他們在 ZXing 代碼庫的基礎上構建了自己的自定義包裝器,為開發人員提供了一個更簡單且一致的 API,並增加了額外的功能,例如支持從圖像和 PDF 中讀取條形碼。
IronBarcode 和 ZXing 都是用來解碼條碼圖像的庫,但它們之間有一些重要的差異,使得 IronBarcode 成為更先進且多功能的選擇。
IronBarcode 支援的網頁條碼格式比 ZXing 更廣泛。 IronBarcode可以解碼支援的格式,例如QR碼、Code 39、Code 128、EAN-8、EAN-13、UPC-A、UPC-E、Codabar、ITF、Data Matrix、PDF-417、RSS expanded等。 Android 使用者也不會被排除; IronBarcode 可以輕鬆整合到移動應用程式中,使 Android 用戶的條碼掃描更加方便。 ZXing 支援許多相同的格式,但對於某些格式(如 ITF 和 Codabar)沒有完整支援,且不支援某些二维條碼格式,如 PDF-417。
// Generate a Simple BarCode image and save as PDF
QRCodeWriter.CreateQrCode("hello world", 500, QRCodeWriter.QrErrorCorrectionLevel.Medium).SaveAsPng("MyQR.png");
// Generate a Simple BarCode image and save as PDF
QRCodeWriter.CreateQrCode("hello world", 500, QRCodeWriter.QrErrorCorrectionLevel.Medium).SaveAsPng("MyQR.png");
' Generate a Simple BarCode image and save as PDF
QRCodeWriter.CreateQrCode("hello world", 500, QRCodeWriter.QrErrorCorrectionLevel.Medium).SaveAsPng("MyQR.png")
IronBarcode 的另一個優勢是其更易於使用的網頁 API。 該庫被設計為簡單易用,並易於整合到現有項目中,配備高級別的 Web API,可抽象掉條碼解碼的許多複雜細節。
IronBarcode 的性能也比 ZXing 更好。 該庫是用 C# 開發的,能夠使用平行處理比 ZXing 庫更快地解碼條碼。 此外,IronBarcode 能夠從 ZXing 不支持的圖像文件類型(例如 GIF、TIFF 和 JPEG-XR)中讀取條碼。
總之,IronBarcode 是比 ZXing 更先進且多功能的條碼解碼庫。 它提供了更廣泛的條碼格式支持、更友好的 API 和更好的性能,使其成為使用 .NET Framework 開發人員的不錯選擇。
ZXing .NET 是 ZXing 庫的移植版,是一個用於處理多種格式的一維/二維條碼的開源庫,最初用 Java 實現。 它已被移植到 C#,並可透過 NuGet 套件管理器取得。 IronBarcode 是一個 C# .NET 函式庫,可以讀取和寫入條碼。 它是對 ZXing 庫的封裝,也可以通過 NuGet 獲得。
在本教程中,我們將使用ZXing在線解碼器和IronBarcode在C# .NET Web應用程式中解碼條碼。 我們將在本教程中使用 Visual Studio,但這些概念應適用於任何 C# 開發環境。
步驟 1:在 Visual Studio 中創建一個新的 C# .NET 專案
在 Visual Studio 中透過依序點選檔案 > 新增 > 專案,來建立一個新的 C# 專案。 選擇「Windows Forms App」,並為您的專案命名。
步驟 2:安裝 ZXing .NET 和 IronBarcode NuGet 套件
在方案總管中,右鍵點擊專案並選擇「管理 NuGet 套件」。搜尋 ZXing.NET 和「IronBarcode」並將它們安裝到專案中。
步驟 3:將 PictureBox 和 Button 添加到表單中
在表單的設計視圖中,添加一個PictureBox
和一個Button
到表單。 PictureBox
將用於顯示我們將解碼的圖像,而 Button
將用於啟動解碼過程。
步驟 4:將以下 using 語句添加到表單代碼的頂部:
using IronBarCode;
using ZXing;
using IronBarCode;
using ZXing;
Imports IronBarCode
Imports ZXing
步驟 5:處理按鈕的點擊事件
在設計視圖中雙擊按鈕以創建單擊事件處理程式。 在處理程序中,加入以下程式碼以開啟 OpenFileDialog
,讓使用者選擇要解碼的圖像:
private void button1_Click(object sender, EventArgs e) {
OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = "Images (*.BMP;*.JPG;*.GIF;*.PNG)
*.BMP;*.JPG;*.GIF;*.PNG
All files (*.*)
*.*";
ofd.FilterIndex = 1;
if (ofd.ShowDialog() == DialogResult.OK) {
pictureBox1.Image = Image.FromFile(ofd.FileName);
// Decode the barcode from the image here
}
}
private void button1_Click(object sender, EventArgs e) {
OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = "Images (*.BMP;*.JPG;*.GIF;*.PNG)
*.BMP;*.JPG;*.GIF;*.PNG
All files (*.*)
*.*";
ofd.FilterIndex = 1;
if (ofd.ShowDialog() == DialogResult.OK) {
pictureBox1.Image = Image.FromFile(ofd.FileName);
// Decode the barcode from the image here
}
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
步驟 6: 從圖像中解碼條碼
在以下行之後:
pictureBox1.Image = Image.FromFile(ofd.FileName);
pictureBox1.Image = Image.FromFile(ofd.FileName);
pictureBox1.Image = Image.FromFile(ofd.FileName)
將以下代碼塊添加到按鈕點擊事件處理器中,以解碼圖像中的條碼。
var BarcodeReader = new BarcodeReader();
var Result = BarcodeReader.Decode((Bitmap)pictureBox1.Image);
if (Result != null) {
MessageBox.Show(Result.Text);
} else {
MessageBox.Show("No barcode found.");
}
var BarcodeReader = new BarcodeReader();
var Result = BarcodeReader.Decode((Bitmap)pictureBox1.Image);
if (Result != null) {
MessageBox.Show(Result.Text);
} else {
MessageBox.Show("No barcode found.");
}
Dim BarcodeReader As New BarcodeReader()
Dim Result = BarcodeReader.Decode(CType(pictureBox1.Image, Bitmap))
If Result IsNot Nothing Then
MessageBox.Show(Result.Text)
Else
MessageBox.Show("No barcode found.")
End If
此程式碼從 ZXing.NET 建立一個新的 BarcodeReader
類別實例,然後使用 Decode
方法從圖像中解碼條碼。 Decode
方法返回一個 Result
對象,其中包含有關已解碼條碼的信息。
IronBarcode 和 ZXing 都是用於 C# 程式語言的條碼和 QR 碼解析庫。 這兩個庫都有其各自的優勢和劣勢,而選擇哪一個將取決於您專案的具體需求。
IronBarcode 相較於 ZXing 的其中一個主要優勢是其易用性。 IronBarcode 擁有簡單直觀的 API,使開發人員能夠輕鬆快速地開始處理條碼和 QR 碼。 只需幾行程式碼,您就可以輕鬆讀寫條形碼和QR碼。 相較之下,ZXing 的 API 較為複雜,對於開發者來說可能具有挑戰性,特別是如果他們剛開始接觸條碼和 QR 碼的讀取。
IronBarcode 另一個優勢是其高效能。 IronBarcode 使用先進的算法快速讀取和解碼條碼及 QR 碼,速度比其他庫如 ZXing 更快。 這使其成為需要快速掃描和解碼條碼及QR碼的專案的理想選擇。
IronBarcode 還提供更好的支援來讀取和寫入來自各種影像格式的條碼,包括 JPEG、PNG、GIF、BMP 和 TIFF。 相較之下,ZXing對圖像格式的支持較有限,它可能無法從某些類型的圖像中讀取或寫入條碼。
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)
IronBarcode 提供更多的自訂選項,例如微調條碼讀取、支援多頁文件和各種條碼格式,如 DataMatrix、Aztec 和 PDF-417。如果您需要處理不同類型的條碼或有特定需求,這將非常有用。
另一方面,ZXing 是一個免費使用的開源庫。 這可能對於預算有限的項目來說是一個重大優勢。
總之,IronBarcode 和 ZXing 都是用於在 C# 中處理條形碼和 QR 碼的強大庫,但 IronBarcode 相較於 ZXing 提供了幾個優勢,如易於使用、高性能、更好的影像格式支持以及更多的自定義選項。 最好的做法是評估這兩個程式庫,選擇最適合您專案需求的那一個。
IronBarcode 和 ZXing 都是用於在 C# 中處理條形碼和 QR 碼的受歡迎庫。 這兩個庫都有其各自的優勢和劣勢,而選擇哪一個將取決於您專案的具體需求。 在本文中,我們將詳細了解使用 IronBarcode 相較於 ZXing 的優勢,並通過例子來幫助說明主要差異。
IronBarcode 的主要優勢之一是其易於使用。 IronBarcode 擁有一個簡單易懂的 API,使開發人員能夠輕鬆快速地開始處理條碼和 QR 碼。 只需幾行代碼,您就可以輕鬆讀寫條碼和二維碼。 例如,要使用 IronBarcode 從圖像文件中讀取條形碼,您可以使用以下代碼:
var reader = new BarcodeReader();
var result = reader.Read("image.jpg");
Console.WriteLine(result.Text);
var reader = new BarcodeReader();
var result = reader.Read("image.jpg");
Console.WriteLine(result.Text);
Dim reader = New BarcodeReader()
Dim result = reader.Read("image.jpg")
Console.WriteLine(result.Text)
相比之下,ZXing 的 API 較為複雜,對於開發者來說可能具有挑戰性,特別是如果他們不熟悉條碼和 QR 碼的讀取。 上述範例如果使用ZXing來達成相同的結果,將需要更多行的代碼。
IronBarcode 另一個優勢是其高效能。 IronBarcode 使用先進的算法快速讀取和解碼條碼及 QR 碼,速度比其他庫如 ZXing 更快。 這使其成為需要高速掃描和解碼條形碼和QR碼的項目的一個不錯選擇。 例如,IronBarcode 能夠在不到一秒鐘內從圖像中讀取並解碼條碼,使其成為大規模掃描和解碼操作的理想選擇。
IronBarcode 也提供了更好的支援,能從多種影像格式讀取和寫入條碼,包括 JPEG、PNG、GIF、BMP 和 TIFF。 這使開發者能夠輕鬆地使用不同圖像格式的條碼,而不必擔心兼容性問題。 相比之下,ZXing對圖像格式的支援較為有限,可能無法從某些類型的圖像讀取或寫入條碼。
using IronBarCode;
using System;
using System.Drawing;
// Multiple barcodes may be scanned up from a single document or image. A PDF document may also 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 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 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
IronBarcode 也提供了更多的自訂選項,使開發人員可以微調條碼讀取過程,以滿足其具體需求。 例如,您可以使用 IronBarcode 指定不同的條碼格式,如 DataMatrix、Aztec 和 PDF-417。如果您需要處理不同格式或具有特定需求的條碼,這將非常有用。 此外,IronBarcode 提供多頁文件支持,允許開發人員從文件的多個頁面讀取和提取條碼信息。
另外,IronBarcode 具有更好的錯誤處理功能,更適合企業級應用程序。
以下是如何從圖像文件中解碼多個條形碼的示例:
var barcodeResults = IronBarCode.BarcodeReader.ReadMultiple("multibarcode.png");
foreach (var result in barcodeResults)
{
Console.WriteLine(result.Text);
}
var barcodeResults = IronBarCode.BarcodeReader.ReadMultiple("multibarcode.png");
foreach (var result in barcodeResults)
{
Console.WriteLine(result.Text);
}
Dim barcodeResults = IronBarCode.BarcodeReader.ReadMultiple("multibarcode.png")
For Each result In barcodeResults
Console.WriteLine(result.Text)
Next result
另一方面,ZXing 是一個開源庫,可以免費使用。 這對於預算有限的專案來說可能是顯著的優勢。 然而,應注意的是,使用 IronBarcode 的成本可能會被使用更具使用者友好性和更強大功能的程式庫所節省的時間和精力所抵消。
總結來說,IronBarcode 和 ZXing 都是用於在 C# 中處理條碼和 QR 碼的強大庫。 然而,IronBarcode 相較於 ZXing 擁有多項優勢,例如易於使用、高效能、更佳的影像格式支持,以及更多的客製化選項。 如果您的專案需要快速且高效的條碼掃描和解碼,或者您需要對條碼讀取過程有更多控制,IronBarcode 是一個絕佳的選擇。
ZXing 在 Apache 2.0 開源許可證下發布,這意味著它可以自由使用、分發和修改。 在您的軟體專案中使用該庫不會產生任何費用。 但是,如果您在商業產品中使用該庫,則必須遵守Apache 2.0許可證的條款,其中包括顯著顯示許可證通知和免責聲明。
IronBarcode 是提供免費開發者許可證的軟體。 定價從 Lite 套餐的 $749 起,包括永久授權、在開發、預備和生產環境中使用軟體的能力、30 天退款保證,以及一年的軟體支援和升級。 如需了解有關IronBarcode定價和授權的更多信息,請訪問公司的網站。
IronBarcode 專為 .NET 應用程式開發,並基於 ZXing 庫。 IronBarcode 也是完全用 C# 編寫的,如果您的應用程式也是用 C# 編寫並且您想在 .NET 生態系統中使用它,這可能是一個優勢。
IronBarcode 旨在提供更友好且易於使用的介面,以解碼和編碼條碼,而 ZXing 主要專注於提供底層演算法和庫。
IronBarcode 在 ZXing 庫之上提供了若干附加功能,例如自動校正常見掃描錯誤的能力、支援不同類型的條碼閱讀和掃描,以及直接從圖像文件或位圖中讀取條碼內容的能力。
總而言之,如果您的應用程式是用 C# 編寫的,並且您正在尋找一個易於使用且強大的庫來讀取和寫入各種條形碼格式,那麼 IronBarcode 可能是一個不錯的選擇。 但是,如果您正在尋找一個更通用的、可以在多種語言中使用的底層庫,ZXing 可能是一個更好的選擇。
總結來說,IronBarcode 是一個靈活且高效的軟體庫,支援各種類型的條碼格式、符號及字符。 它相容於各種作業系統,並提供可靠的授權和支援。
IronBarcode 和 ZXing 都是用於在 .NET Framework 中讀取和寫入條碼的庫。 IronBarcode 使用 ZXing 庫作為依賴項來執行條碼讀取和寫入操作。 IronBarcode 提供一個簡單易用的 API 用於在 C# 和 VB.NET 中讀取和寫入條碼,而 ZXing 是一個低層的庫,提供了大量的靈活性和自定義選項。 IronBarcode 使用 ZXing 來執行基礎的條碼處理和解碼,但為開發人員提供了一個更簡單且更方便的介面。
IronBarcode 是 ZXing 庫的 C# / VB.NET 包裝器,這意味著它為 ZXing 提供了 C# / VB.NET 介面。 IronBarcode 透過提供更方便、更簡單的 API 來讀取和寫入條碼,從而促進了 ZXing 的使用。
與ZXing.NET相比,IronBarcode提供了更多的功能和更快的處理時間,用於條碼識別和生成,並具備從各種圖像格式和PDF文件中讀取條碼的附加功能。
此外,IronBarcode 在早期開發階段免費提供 免費試用 商業使用。 透過不同的定價層級,開發者可以選擇最符合其需求和預算的解決方案。 還有一項優惠可用於購買 5 種 Iron 軟體產品組合,只需支付 2 種產品的價格。總體而言,IronBarcode 明顯優於 ZXing.NET。