在实际环境中测试
在生产中测试无水印。
随时随地为您服务。
条形码是一种机器可读代码,它以线条和空格的形式存储各种物品的信息。条形码由一系列用于编码数据的平行条组成。这些条形码组成了所谓的 "条形码 "或 "条形码符号",可由条形码扫描器读取 (扫描仪).所有条形码都有四个部分:
条形码是在零售环境中识别产品的最有效方法。每件产品都有一个独一无二的条形码,可以用扫描仪扫描,用于库存控制或价格核查。如今,条形码不仅是零售环境中识别产品的有效方法,而且已成为我们日常生活的一个重要方面,因为条形码可用于电子存储信息和管理消费者身份。
在本文中,我们将比较两种流行的条形码库:
这两个库均可用于生成和识别条形码,支持所有 dot net 框架,并允许保存条形码图像。
我们将通过一个示例来了解如何使用 IronBarcode 库在 C# .NET 中生成条形码。我们将看到创建条形码是多么容易,以及如何样式化我们的条形码,然后使用 IronBarocde 将其导出。
打开 Visual Studio,然后进入文件菜单。选择新项目,然后选择控制台应用程序/Windows 窗体/WPF 应用程序。IronBarcode 可用于所有类型的应用程序。此外,您还可以使用 Webform/MVC/MVC Core 等应用程序。
在相应的文本框中输入项目名称并选择文件路径。然后,单击创建按钮并选择所需的 .NET Framework。现在,项目将根据所选应用程序的结构生成,如果您选择的是控制台应用程序,它将打开 program.cs 文件,您可以在其中输入代码并构建/运行应用程序。
IronBarcode 库可通过四种方式下载和安装:
它们是
Visual Studio 软件提供了 NuGet 软件包管理器选项,可直接将软件包安装到解决方案中。下面的截图显示了如何打开 NuGet 包管理器。
它提供的搜索框可显示 NuGet 网站上的软件包列表。在软件包管理器中,我们需要搜索关键字 "Barcode",如下图所示:
从上图中,我们将看到相关搜索结果的列表。我们需要选择所需的选项,将软件包安装到解决方案中。
在 Visual Studio 工具中,转到工具-> NuGet 包管理器-> 包管理器控制台
在控制台选项卡中输入以下一行:
Install-Package BarCode
现在,软件包将下载/安装到当前项目,并可随时使用。
第三种方法是直接从网站下载软件包。
点击 链接 从网站下载最新软件包。下载完成后,按照以下步骤将软件包添加到项目中。
然后,选择参考选项并浏览下载参考的位置。
我们需要做的第一件事是安装 Iron Barcode 库,为 .NET 框架添加条形码功能。我们可以使用 NuGet 软件包 或下载 .NET Barcode DLL。
Install-Package BarCode
在下面的示例中,我们可以看到使用 IronBarcode 只需几行代码就可以写出包含数字或文本内容的条形码。
// Generate a Simple BarCode image and save as PNG
//using IronBarCode;
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
System.Diagnostics.Process.Start("MyBarCode.png");
// Generate a Simple BarCode image and save as PNG
//using IronBarCode;
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
System.Diagnostics.Process.Start("MyBarCode.png");
' Generate a Simple BarCode image and save as PNG
'using IronBarCode;
Dim 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
System.Diagnostics.Process.Start("MyBarCode.png")
我们首先通过指定条码的值来创建条码,我们将使用的条码格式来自 IronBarCode.BarcodeWriterEncoding Enum。然后,我们可以选择保存为图像、System.Drawing.Image 或 Bitmap 对象。这就是所需的全部代码! 最后一行代码只是打开示例中的条形码 PNG,以便您可以亲眼目睹。
虽然前面的例子很有效,但在现实世界中,我们可能希望做得更多。在下面的示例中,我们可以在条形码上添加注释、设置字体、在下方显示其值、添加页边距、更改条形码颜色,然后保存条形码,所有这些都只需在 C# 中完成。如果更适合我们的应用程序,我们还可以选择导出为 HTML 或 PDF 格式,而不是图像。
//using IronBarCode;
//using System.Drawing;
// Styling a QR code and adding annotation text
var MyBarCode = IronBarCode.BarcodeWriter.CreateBarcode("https://ironsoftware.com/csharp/barcode", BarcodeWriterEncoding.QRCode);
MyBarCode.AddAnnotationTextAboveBarcode("Product URL:");
MyBarCode.AddBarcodeValueTextBelowBarcode();
MyBarCode.SetMargins(100);
MyBarCode.ChangeBarCodeColor(Color.Purple);
// Save as HTML
MyBarCode.SaveAsHtmlFile("MyBarCode.html");
//using IronBarCode;
//using System.Drawing;
// Styling a QR code and adding annotation text
var MyBarCode = IronBarCode.BarcodeWriter.CreateBarcode("https://ironsoftware.com/csharp/barcode", BarcodeWriterEncoding.QRCode);
MyBarCode.AddAnnotationTextAboveBarcode("Product URL:");
MyBarCode.AddBarcodeValueTextBelowBarcode();
MyBarCode.SetMargins(100);
MyBarCode.ChangeBarCodeColor(Color.Purple);
// Save as HTML
MyBarCode.SaveAsHtmlFile("MyBarCode.html");
'using IronBarCode;
'using System.Drawing;
' Styling a QR code and adding annotation text
Dim MyBarCode = IronBarCode.BarcodeWriter.CreateBarcode("https://ironsoftware.com/csharp/barcode", BarcodeWriterEncoding.QRCode)
MyBarCode.AddAnnotationTextAboveBarcode("Product URL:")
MyBarCode.AddBarcodeValueTextBelowBarcode()
MyBarCode.SetMargins(100)
MyBarCode.ChangeBarCodeColor(Color.Purple)
' Save as HTML
MyBarCode.SaveAsHtmlFile("MyBarCode.html")
代码应该不言自明,但如果不言自明,我建议您阅读 生成的条形码 类文档中的 API文档.
使用 IronBarcode 类库,在 .NET 中读取条形码或 QR 码变得异常简单。 .NET 条码阅读器.在第一个示例中,我们可以看到如何用一行代码读取条形码。
使用 C# 扫描条形码图像
我们可以提取其值、图像、编码类型、二进制数据 (如有)然后我们就可以将其输出到控制台。
using IronBarCode;
using System;
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;
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
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
我们将在 QuicklyReadOneBarcode 方法中添加 TryHarder 变量。这将使该方法更加努力,花费更多时间,但却能更深入地扫描可能被遮挡、损坏或角度倾斜的二维码。
BarcodeResult Result = BarcodeReader.QuicklyReadOneBarcode("TryHarderQR.png", BarcodeEncoding.QRCode
BarcodeEncoding.Code128 , true);
BarcodeResult Result = BarcodeReader.QuicklyReadOneBarcode("TryHarderQR.png", BarcodeEncoding.QRCode
BarcodeEncoding.Code128 , true);
Dim Result As BarcodeResult = BarcodeReader.QuicklyReadOneBarcode("TryHarderQR.png", BarcodeEncoding.QRCode BarcodeEncoding.Code128, True)
它现在可以读取这个倾斜的 QR 码:
用 C# 扫描旋转 45 度的 QR 码
您将看到,我们可以指定条形码编码(s) 或指定多种格式。这样做可以大大提高条形码的读取性能和准确性。管道字符或 "Bitwise OR "用于同时指定多种格式。如果我们转而使用可视化方法或 BarcodeReader.ReadASingleBarcode 方法组件模式,也可实现同样的目的,但具体程度更高。
在实际应用中,我们可能希望读取并非完美截图的条形码。它们可能是不完美的图像、扫描或照片,包含数字噪音或倾斜。使用大多数传统的开源 .net 条码生成器和阅读器库,这是不可能的。然而,该 C# 中的条码阅读器 使其变得异常简单。我们将查看 "QuicklyReadOneBarcode "的 "TryHarder "方法。该参数会使 Iron Barcode 尝试去歪并从不完美的数字样本中读取条码。
我们将设置特定的条形码旋转校正和条形码图像校正,以校正数字噪声以及我们可能从手机摄像头中合理预期的偏斜、透视和旋转。
用 C# 从手机摄像头读取条形码
using IronBarCode;
using System;
using System.Drawing;
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;
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
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 实现了一个类似于 System.Linq.IronBarcode 的可选流畅应用程序接口。Linq。通过方法调用与方法调用之间的链式调用,我们可以首先创建一个条形码,然后设置其边距,最后在一行代码中将其导出为 Bitmap。这样做非常方便,代码也更易于阅读。
免费 Spire.Barcode for .NET 是一款免费的专业条码 API,专为 .NET 开发人员设计。 (c#、vb.net、asp.net) 生成和读取一维和二维条码。开发人员和程序员可使用 Spire.BarCode 将企业级条码格式快速、轻松地添加到他们的 .net 应用程序、asp.net Winforms 和 Web Service 中。Spire.BarCode 支持多种常见图像格式,如 Bitmap、JPG、PNG、EMF、TIFF、GIF 和 WMF。它还支持 QR 码。
我们首先需要安装 Spire 库,为 .NET 框架添加条形码功能。我们可以使用 NuGet 软件包来完成这项工作。与 IronBarcode 的安装过程相同,只需输入 "Spire barcode "并将软件包添加到项目中即可。
该库提供用于创建条码图像的方法。这是一种重载方法。在本部分中,我列出了这些方法的定义。代码中将使用这些方法来测试库的性能
using Spire.Barcode;
using System.Drawing;
namespace QRCode
{
class Program
{
static void Main(string [] args)
{
BarcodeSettings settings = new BarcodeSettings();
settings.Type = BarCodeType.QRCode;
settings.Data = "Hello world";
settings.Data2D = "Hello 123456789";
settings.QRCodeDataMode = QRCodeDataMode.AlphaNumber;
settings.X = 1.0f;
settings.QRCodeECL = QRCodeECL.H;
BarCodeGenerator generator = new BarCodeGenerator(settings);
Image image = generator.GenerateImage();
image.Save("QRCode.png");
}
}
}
using Spire.Barcode;
using System.Drawing;
namespace QRCode
{
class Program
{
static void Main(string [] args)
{
BarcodeSettings settings = new BarcodeSettings();
settings.Type = BarCodeType.QRCode;
settings.Data = "Hello world";
settings.Data2D = "Hello 123456789";
settings.QRCodeDataMode = QRCodeDataMode.AlphaNumber;
settings.X = 1.0f;
settings.QRCodeECL = QRCodeECL.H;
BarCodeGenerator generator = new BarCodeGenerator(settings);
Image image = generator.GenerateImage();
image.Save("QRCode.png");
}
}
}
Imports Spire.Barcode
Imports System.Drawing
Namespace QRCode
Friend Class Program
Shared Sub Main(ByVal args() As String)
Dim settings As New BarcodeSettings()
settings.Type = BarCodeType.QRCode
settings.Data = "Hello world"
settings.Data2D = "Hello 123456789"
settings.QRCodeDataMode = QRCodeDataMode.AlphaNumber
settings.X = 1.0F
settings.QRCodeECL = QRCodeECL.H
Dim generator As New BarCodeGenerator(settings)
Dim image As Image = generator.GenerateImage()
image.Save("QRCode.png")
End Sub
End Class
End Namespace
生成的 QR 条形码图像如下。
在 C# 中创建 QR 码
//Generate the barcode based on the this.barCodeControl1
BarCodeGenerator generator = new BarCodeGenerator(this.barCodeControl1);
Image barcode = generator.GenerateImage();
//save the barcode as an image
barcode.Save("barcode.png");
//Generate the barcode based on the this.barCodeControl1
BarCodeGenerator generator = new BarCodeGenerator(this.barCodeControl1);
Image barcode = generator.GenerateImage();
//save the barcode as an image
barcode.Save("barcode.png");
'Generate the barcode based on the this.barCodeControl1
Dim generator As New BarCodeGenerator(Me.barCodeControl1)
Dim barcode As Image = generator.GenerateImage()
'save the barcode as an image
barcode.Save("barcode.png")
该方法中有两个导入类 - BarCodeControl 和 BarCodeGenerator。BarCodeControl 用于存储条码信息。BarCodeGenerator 是生成条码图像的类。它的构造函数需要一个参数 - BarCodeControl 实例。它有一个名为 GenerateImage 的方法() 的返回值是用于生成图像的图像对象。
条形码扫描器是扫描条形码图像的类。使用包含条形码图像的 Bitmap 对象调用其 Scan 方法;该方法会返回一个字符串 [] 值,扫描结果存储在该值中。BarcodeScanner 类可在其代码中扫描条形码图像。它可以在 VB.NET 和 C# 中存储和添加企业级条形码。
代码如下
private void btnScan_Click(object sender, EventArgs e)
{
//scan the barcode
string [] datas = Spire.Barcode.BarcodeScanner.Scan("barcode.png");
//show the scan result
this.TextB_ScanResult.Text = datas [0];
}
private void btnScan_Click(object sender, EventArgs e)
{
//scan the barcode
string [] datas = Spire.Barcode.BarcodeScanner.Scan("barcode.png");
//show the scan result
this.TextB_ScanResult.Text = datas [0];
}
Private Sub btnScan_Click(ByVal sender As Object, ByVal e As EventArgs)
'scan the barcode
Dim datas() As String = Spire.Barcode.BarcodeScanner.Scan("barcode.png")
'show the scan result
Me.TextB_ScanResult.Text = datas (0)
End Sub
30 天退款保证:购买许可证后,您将获得 30 天的退款保证,如果许可证无法使用或铁条码不允许使用,您可以在 30 天内退款。
轻松集成:IronPDF 与您的项目和环境的集成非常简单,只需编写一行代码即可实现。 NuGet 软件包或者从网上下载,这样就能与我们的环境融为一体。
永久许可证:每个许可证只需购买一次,无需更新。
免费支持和产品更新:每个许可证都附带一年的免费产品更新和产品团队支持。可随时购买扩展功能。可查看扩展。
立即许可证:收到付款后立即发送注册许可证密钥。
所有许可证均为永久许可证,适用于开发、暂存和生产。
精简版软件包:
该软件包允许企业中的单个软件开发人员在一个地方使用 Iron 软件。Iron 软件可用于单个网络应用程序、内联网应用程序或桌面软件程序。许可证不可转让,也不能在组织或代理/客户关系之外共享。本许可类型与所有其他许可类型一样,明确排除本协议未明确授予的所有权利,不包括 OEM 再分发和 SaaS(如果未购买附加保险)。
定价:起价为每年 $749。
专业许可证:
该软件包允许企业中预先确定数量的软件开发人员在单个地点使用 Iron 软件,最多不超过 10 人。Iron 软件可用于任意数量的网站、内联网应用程序或桌面软件应用程序。许可证不可转让,也不能在组织或代理/客户关系之外共享。本许可证类型与所有其他许可证类型一样,明确排除本协议未明确授予的所有权利,包括 OEM 再分发和在不购买额外保险的情况下将 Iron 软件作为 SaaS 使用。本许可证可与单个项目集成,最多可集成 10 个项目。
定价:每年 999 美元起。
无限制许可:
该许可证允许企业中数量不限的软件开发人员在数量不限的地点使用 Iron 软件。您可以在任意数量的网站、内联网应用程序或桌面软件应用程序中使用 Iron 软件。许可证不可转让,也不能在组织或代理/客户关系之外共享。本许可类型与所有其他许可类型一样,明确排除本协议未明确授予的所有权利,包括 OEM 再分发和在未购买额外保险的情况下将 Iron 软件作为 SaaS 使用。
定价:每年 2999 美元起。
免版税再分发:这允许您将 Iron 软件作为多种不同包装的商业产品的一部分进行分发 (无需支付版税) 基于基本许可证所涵盖的项目数量。它还允许根据基本许可证涵盖的项目数量,在 SaaS 软件服务中部署 Iron 软件。
定价:每年 1599 美元起。
不间断的产品支持和更新:允许您访问产品更新、安全功能升级以及我们工程团队的支持。
定价:每年 399 美元起。
在 C# 中创建 QR 码
支持付费,所有订购均为一次性订购 仅 OEM 订购适用于面向公众的网站和基于云的应用程序。
开发人员订购:
此软件包授权一名开发人员使用该产品创建不限数量的应用程序,这些应用程序可部署在组织内的一个地理位置上 (仅供内部使用).它不允许将您的自定义应用程序分发给第三方、面向公众的网站或 SaaS/PaaS/IaaS 项目。
定价:每年 898 美元起。
开发人员 OEM 订阅:
该软件包授权一名开发人员使用该产品创建无限量的自定义应用程序,并允许将这些应用程序以任何形式分发到任意数量的地理位置。
定价:每年 3395 美元起。
网站企业订阅:
最多授权 10 名开发人员创建不限数量的应用程序,最多可在 10 个地理位置部署。它不允许将自定义应用程序发布到面向公众的网站或 SaaS/PaaS/IaaS 项目。
定价:每年 5301 美元起。
网站 OEM 订阅:
这授权多达 50 名开发人员使用产品创建数量不限的自定义应用程序,并允许这些应用程序以任何形式分发到任何数量的地理位置。
定价:每年 10187 美元起。
IronBarcode Lite套餐包括一个开发者套餐和一年的技术支持,价格约为 "liteLicense "美元,而Spire 开发者OEM订阅包括一个开发者套餐,价格为3394美元。包含所有更新、主要版本和 1 年技术支持,不包含版本和技术支持的价格为 1695 美元。IronPDF 专业套餐包括10个开发人员套餐和一年的技术支持,价格为999美元,而Spire Site OEM Subscription包括10个开发人员套餐,价格为10187.00美元/年,包括所有更新、主要版本和一年的技术支持,不包括版本和更新,价格为6558.00美元。
IronPDF Lite和Professional套餐均有 SaaS 服务或 OEM 以及五年支持选项。IronPDF Lite版本包括一个开发人员软件包,提供五年支持,SaaS和OEM服务费用为2897美元,而Spire则提供SaaS服务或OEM以及一年支持选项。IronPDF 专业版包括一个10名开发人员的软件包,提供五年支持以及SaaS和OEM服务,价格为3397美元,而Spire软件包为10名开发人员提供一年支持以及SaaS和OEM服务,价格为10187美元。
IronBarcode 用于生成企业级条码图像的条码格式。它还能让开发人员旋转条形码图像,以及创建条形码图像边框,以进一步帮助格式化条形码图像。与其他生成器相比,IronBarcode 可提供可靠的条形码生成功能,并可生成高质量的条形码图像。简而言之,使用 IronBarcode,我们可以获得所需的输出图像格式。由 IronBarcode 生成的条形码图像是最好的,因为我们只需一行代码即可创建、样式化和导出条形码。条形码开发人员可轻松与其他网络应用程序集成,并提供不同的条形码类型,它可以轻松识别条形码和邮政条形码。该库的组件模式也更加高效--每种组件模式都能让开发人员生成不同风格和不同格式的条形码。代码非常简单,只有一行。IronBarcode 的识别组件和识别功能更加完善。API 模式使其比其他生成器更可靠。
Spire.Barcode for .NET 提供了一种集成条码处理的方法。只需一行代码,我们就能创建条形码并读取一维和二维条形码。Spire.BarCode 支持多种常见图像格式,如 Bitmap、JPG、PNG、EMF、TIFF、GIF 和 WMF。因此,我们可以创建条形码图像,条形码图像开发人员只需几行代码即可轻松添加条形码生成并制作条形码。
与 Spire.Barcode 相比,IronBarcode 软件包提供了更好的许可证和支持,而 Spire 则更为昂贵。IronBarcode 的起价为 $749,而 Spire.Barcode 的起价为 898 美元,因此 IronBarcode 显然比 Spire 更具成本效益。IronBarcode 还提供比 Spire.Barcode 更多的功能。它还提供更好的支持和退款保证,而 Spire 则没有。IronBarcode 提供长期支持,并可与 API 模式的 .NET 应用程序轻松集成。易于与新文档集成 (C、VB.NET 和 C#)它还能生成多个条形码。
还等什么?获取免费试用版! 您可以获得 许可证 在此直接开始。