在生产环境中测试,无水印。
随时随地满足您的需求。
获得30天的全功能产品。
几分钟内就能启动并运行。
在您的产品试用期间,全面访问我们的支持工程团队。
BarCode 是一种机器可读代码,它以线条和空格排列的形式存储各种物品的信息。 BarCode 由一系列用于编码数据的平行条组成。 这些条称为“条形码”或“条码符号”,可以通过条码扫描器读取(有时仅称为“扫描器”)。 所有 BarCode 都有四个部分:
停止字符
BarCode 是零售环境中识别产品的最有效方式。 每个产品都有一个独一无二的 BarCode,可以用扫描仪扫描,用于库存控制或价格验证。 如今,BarCode 不仅仅是零售环境中识别产品的有效方式,而且已经成为我们日常生活的一个重要方面,因为它们被用来以电子方式存储信息和管理消费者身份。
在本文中,我们将比较两个流行的条形码库:
IronBarcode
这两个库均可用于条形码的生成和识别,为所有 dot NET Framework 提供支持,并允许您保存条形码图像。
我们将通过一个示例来了解如何使用 IronBarcode for .NET 库在 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
现在,软件包将下载/安装到当前项目,并可随时使用。
第三种方法是直接从网站下载软件包。
点击链接从网站下载最新的软件包。下载后,请按照以下步骤将软件包添加到项目中。
然后,单击 "确定 "添加引用。
首先,我们需要安装IronBarcode库,将条形码功能添加到.NET框架中。 我们可以使用我们的[NuGet 包](https://www.nuget.org/packages/BarCode/" class="js-modal-open" href="https://www.nuget.org/packages/barcode" target="_blank" rel="nofollow noopener noreferrer" data-modal-id="trial-license-after-download)或者通过下载 .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 枚举。 然后,我们可以选择保存为图像、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")
代码应该是不言自明的,但如果不是,我建议您阅读GeneratedBarcode类文档,位于API 参考中。
在 .NET 中使用 IronBarcode 类库读取条形码或 QR 码非常简单,使用 .NET Barcode Reader。 在第一个示例中,我们可以看到如何用一行代码读取这个 BarCode。
使用 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 码
您将看到,我们可以指定我们正在寻找的条码编码或指定多种格式。 这样做极大地提高了条形码读取的性能和准确性。 管道字符或 "Bitwise OR "用于同时指定多种格式。 如果我们转而使用可视化方法或 BarcodeReader.ReadASingleBarcode 方法组件模式,也可以达到同样的效果,但具体程度更高。
在实际使用案例中,我们可能希望阅读的 BarCode 并不是完美的截图。 译文可能是不完美的图像、扫描件或照片,可能包含数字噪音或有偏差。 如果使用大多数传统的开源 .net 条码生成器和阅读器库,这是不可能实现的。 然而,这个Barcodes Reader in 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.NET Framework。 Linq。 通过方法调用与方法调用之间的链式调用,我们首先创建一个 BarCode,然后设置它的边距,再将其单行导出为 Bitmap。这样做非常方便,代码也更容易阅读。
Free Spire.BarCode for .NET 是一款免费且专业的条码 API,专为 .NET 开发人员(C#、VB.NET、ASP.NET)生成和读取一维和二维条码而设计。 开发人员和程序员可以使用 Spire.BarCode 将企业级条形码格式快速、轻松地添加到他们的 .net 应用程序、asp.net Winforms 和 Web Service 中。 Free Spire.BarCode for .NET 提供了一种非常简单的集成条形码处理的方法。 Spire 创建、读取一维和二维条形码,Spire.BarCode 支持多种常见图像格式,如位图、JPG、PNG、EMF、TIFF、GIF 和 WMF。 它还提供对 QR 代码的支持。
我们首先要做的是安装 Spire 库,为 .NET Framework 添加条形码功能。 我们可以通过使用 NuGet 软件包来做到这一点。 与我们在 IronBarcode 案例中的做法一样,过程也是一样的--按照相同的步骤,只需输入 "Spire barcode "并将软件包添加到项目中即可。
该库提供用于创建 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() 的方法,其返回值是用于生成图像的 Image 对象。
条形码扫描器是扫描条形码图像的类。 使用包含条形码图像的 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天退款保证:购买许可证后,如果许可证无法使用或IronBarcode未能满足需求,您可以在30天内获得退款。
轻松集成:将IronPDF与您的项目和环境集成是如此简单,以至于在从[NuGet包](https://www.nuget.org/packages/IronPdf" target="_blank" rel="nofollow noopener noreferrer)中添加时,我们只需编写一行代码即可实现,或者如果我们从网络下载,我们也可以通过这种方式将其与我们的环境集成。
永久许可:每个许可证只需购买一次,不需要续订。
免费支持和产品更新:每个许可证都附带一年的免费产品更新和由产品团队提供的支持。 可以随时购买扩展。 可查看扩展内容。
即时许可证:在收到付款后立即发送注册的许可证密钥。
所有许可证均为永久许可证,适用于开发、暂存和生产。
基础套餐:
永久许可证
此软件包可让企业中的单个软件开发人员在一个地方使用 Iron Software。 Iron Software 可用于单个网络应用程序、内联网应用程序或桌面软件程序。 许可证不可转让,也不能在组织或代理/客户关系之外共享。本许可类型与所有其他许可类型一样,明确排除本协议未明确授予的所有权利,不包括 OEM 再分发和 SaaS(如果未购买附加保险)。
定价:起始价为每年$749。
Professional License:
永久许可证
本软件包允许一个组织中预定数量的软件开发人员在单个地点使用 Iron Software,最多不超过 10 人。 Iron Software 可用于任意数量的网站、内网应用程序或桌面软件应用程序。许可证不可转让,也不能在组织或代理/客户关系之外共享。本许可类型与所有其他许可类型一样,明确排除本协议未明确授予的所有权利,包括 OEM 再分发和在未购买额外保险的情况下将 Iron Software 作为 SaaS 使用。 该许可证可与单个项目集成,最多可集成 10 个项目。
定价:每年起价$999。
Unlimited License:
永久许可证
这样,企业中数量不限的软件开发人员就可以在无限多的地点使用 Iron Software。 Iron Software 可用于任意数量的网站、内网应用程序或桌面软件应用程序。许可证不可转让,也不能在组织或代理/客户关系之外共享。本许可类型与所有其他许可类型一样,明确排除本协议未明确授予的所有权利,包括 OEM 再分发和在未购买额外保险的情况下将 Iron Software 作为 SaaS 使用。
价格:起价为每年 $2999。
免版税再发行:这允许您根据基础许可证涵盖的项目数量,将Iron Software作为多个不同包装的商业产品的一部分进行分发(无需支付版税)。 它还允许在 SaaS 软件服务中部署 Iron Software,以基本许可所涵盖的项目数量为基础。
定价:每年起价 $1599。
不间断的产品支持和更新:这让您可以获得产品更新、安全功能升级以及我们工程团队的支持。
价格:起价为每年 $399。
在 C# 中创建 QR 码
支持是付费的,所有订阅都是一次性的 只有 OEM 订阅适用于面向公众的网站和基于云的应用程序。
开发者订阅:
一个部署地点
此软件包授权一名开发人员使用该产品创建无限数量的应用程序,这些应用程序可以在您组织内的一个地理位置部署(仅限内部使用)。 它不允许将您的自定义应用程序分发给第三方、面向公众的网站或 SaaS/PaaS/IaaS 项目。
定价:起价为每年$898。
开发者OEM订阅:
部署地点不受限制
该软件包授权一名开发人员使用该产品创建无限量的自定义应用程序,并允许这些应用程序以任何形式发布到任何数量的地理位置。
定价:每年起价为 $3395。
网站企业订阅:
多达 10 个部署地点
这将授权最多 10 名开发人员创建不限数量的应用程序,并可在最多 10 个地理位置部署。 它不允许将您的自定义应用程序发布到面向公众的网站或 SaaS/PaaS/IaaS 项目。
定价:每年起价为 $5301。
网站OEM订阅:
部署地点不受限制
这将授权多达 50 名开发人员使用产品创建数量不限的自定义应用程序,并允许以任何形式向任何数量的地理位置分发这些应用程序。
定价:起价为每年 $10187。
IronBarcode Lite 包括一个开发者包和一年的支持,费用约为 $749,而包含一个开发者包的 Spire Developer OEM Subscription 费用为 $3394。包含所有更新、主要版本和一年技术支持,不含版本和技术支持的费用为 $1695。IronPDF Professional 包括 10 个开发者包和一年的支持费用为 $999,而 Spire Site OEM Subscription 包括 10 个开发者包每年费用为 $10187.00,包含所有更新、主要版本和一年技术支持,不含版本和更新的费用为 $6558.00。
IronPDF Lite 和 Professional 套餐都提供SaaS服务或OEM,以及五年的支持选项。 Lite 版本包括一个开发者包,五年支持,并且包含 SaaS 和 OEM 服务,费用为 2897 美元。 Spire 提供 SaaS 服务或 OEM 以及为期一年的支持选项。 IronPDF Professional 版本,包括一个10位开发者的套餐、五年的支持以及SaaS和OEM服务,费用为$3397,而10位开发者的Spire套餐,包括一年的支持和SaaS及OEM服务,费用为$10187.00。
IronBarcode 用于生成企业级条形码图像的条形码格式。 它还能让开发人员旋转条形码图像,以及创建条形码图像边框,进一步协助格式化条形码图像。 与其他生成器相比,IronBarcode 可提供可靠的条码生成功能,并可生成高质量的条码图像。 总之,我们可以通过 IronBarcode 得到我们想要的输出图像格式。 IronBarcode 生成的条形码图像最好,因为我们只需一行代码即可创建、样式化和导出条形码。 BarCode 开发人员可轻松与其他 net 应用程序集成,并提供不同的条形码类型,它可以轻松识别条形码和邮政条形码。 该库的组件模式也更加高效--每种组件模式都能让开发人员生成不同风格和不同格式的 BarCode。 代码非常简单,只有一行。识别组件和识别功能在 IronBarcode 中更好。 API 模式使其比其他生成器更可靠。
Spire.BarCode for .NET 提供了一种集成条形码处理的方法。 只需一行代码,我们就能创建条形码并读取一维和二维条形码。 Spire.BarCode 支持多种常见图像格式,如 Bitmap、JPG、PNG、EMF、TIFF、GIF 和 WMF。 因此,我们可以创建条形码图像,条形码图像开发人员只需几行代码即可轻松添加条形码生成并制作条形码。
IronBarcode 套件提供比 Spire.Barcode 更好的许可证和支持,而且 Spire 更昂贵。IronBarcode 的起价是 $749,而 Spire.Barcode 的起价是 $898,所以 IronBarcode 显然比 Spire 更具成本效益。IronBarcode 还提供比 Spire.Barcode 更多的功能。 它还提供更好的支持和退款保证,而 Spire 则没有。 IronBarcode 提供长期支持,可与 API 模式的 .NET 应用程序轻松集成。 很容易与新文档(C、VB.NET和C#)集成,并且它还可以生成多个条形码。
那么,您还在等什么呢? 获取免费试用版! 您可以在此处获取许可证并立即开始。