如何在 C# 中创建条形码和 QR 码图像

如何使用 IronBarcode 在 C## 中创建条码图像

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

IronBarcode 使 .NET 开发人员只需一行代码即可在 C# 中生成条形码和 QR 码图像,支持多种格式和图像类型。利用强大的 API 构建库存管理系统、零售应用程序或文档处理解决方案,该 API 可创建专业质量的条形码,以便在所有主流阅读器上进行可靠扫描。

快速入门:以一行创建并保存 Code128 条形码

使用 IronBarcode 的单行 API,根据字符串生成 Code128 BarCode,并将其保存为 PNG 图片。 立即开始--提供数据、选择编码和大小,然后编写图像文件。

  1. 使用 NuGet 包管理器安装 https://www.nuget.org/packages/BarCode

    PM > Install-Package BarCode
  2. 复制并运行这段代码。

    IronBarCode.BarcodeWriter.CreateBarcode("Sample123", BarcodeEncoding.Code128, 250, 100).SaveAsPng("Barcode.png");
  3. 部署到您的生产环境中进行测试

    通过免费试用立即在您的项目中开始使用IronBarcode

    arrow pointer

如何生成 BarCode 并保存为图像文件?

除了读取条形码,IronBarcode 还允许用户用最少的编码编写条形码。 从 BarcodeWriter 类调用 CreateBarcode() 方法,并在方法参数中指定 BARCODE 的值、类型、宽度和高度。 这将输出一个 GeneratedBarcode 对象,可通过 SaveAs() 方法将其保存为图像文件。

哪些数据类型可用于 BarCode 值?

BarcodeWriter.CreateBarcode() 方法支持多种 BarCode 数据类型:MemoryStreamstring。 字符串长度和可接受的字符因 BarCode 类型而异,详情请参见我们的 API 文档Code128 支持完整的 ASCII 字符集,而 UPC-A 必须精确包含 12 位数字。 对于二进制数据,请使用 byte[] array 来编码复杂的数据结构。

支持哪些 BarCode 编码类型?

IronBarcode 支持多种条形码格式,请参阅我们的 Supported Barcode Formats 一文了解完整列表。常用格式包括

  • 线性/1D BarCodeCode128, Code39, UPC-A, UPC-E, EAN-8, EAN-13
  • 2D BarCodeAztec
  • 专用格式MaxiCode 用于发货,Databar 用于零售

每种格式都有特定的用途。 Code128 能很好地处理一般的字母数字数据,而QR码则为移动端扫描提供了更出色的纠错能力

宽度和高度设置如何影响我的 BarCode?

以像素为单位设置输出 BarCode 图像的尺寸。 两者的默认测量值均为 250 px。 某些BarCode类型(PDF417)需要符合特定尺寸要求。 当输入尺寸不符合要求时,条形码会以符合要求的尺寸生成,并以空白填充剩余空间。 尺寸太小会出现异常。

优化扫描:

  • 线性条码: 保持宽度明显大于高度
  • 2D条码: 使用正方形尺寸生成QR码(例如250x250)
  • 打印质量:更高的像素尺寸可提高更大物理尺寸的打印质量

我可以将 BarCode 导出到哪些图像格式?

来自 BarcodeWriter.CreateBarcode()GeneratedBarcode 对象使用特定的 SaveAs() 方法将文件保存为各种图像格式:

  • SaveAsGif():保存为 GIF 图像文件
  • SaveAsJpeg():保存为 JPEG 图像文件
  • SaveAsPng():保存为 PNG 图像文件(推荐用于网页)
  • SaveAsTiff():保存为 TIFF 图像文件(适用于归档/打印)
  • SaveAsWindowsBitmap():保存为 BMP 图像文件
  • SaveAsImage():通用方法——在文件路径中指定格式扩展名

此外,将条形码导出为流,用于内存处理或将条形码创建为 PDF 文档,用于文档集成。

如何生成 BarCode 并将其保存为图像文件?

使用 BarcodeWriter.CreateBarcode() 生成一个 Code128 BARCODE,并将其保存为 JPEG 图片:

using IronBarCode;

// Create a basic barcode
BarcodeWriter.CreateBarcode("IronBarcode123", BarcodeEncoding.Code128, 200, 100).SaveAsJpeg("OneDBarcode.jpeg");

// Create a barcode with custom options
var myBarcode = BarcodeWriter.CreateBarcode("PRODUCT-12345", BarcodeEncoding.Code128, 300, 150);

// Apply styling
myBarcode.AddBarcodeValueTextBelowBarcode();
myBarcode.SetMargins(10);

// Save in multiple formats
myBarcode.SaveAsJpeg("product-barcode.jpg");
myBarcode.SaveAsPng("product-barcode.png");
using IronBarCode;

// Create a basic barcode
BarcodeWriter.CreateBarcode("IronBarcode123", BarcodeEncoding.Code128, 200, 100).SaveAsJpeg("OneDBarcode.jpeg");

// Create a barcode with custom options
var myBarcode = BarcodeWriter.CreateBarcode("PRODUCT-12345", BarcodeEncoding.Code128, 300, 150);

// Apply styling
myBarcode.AddBarcodeValueTextBelowBarcode();
myBarcode.SetMargins(10);

// Save in multiple formats
myBarcode.SaveAsJpeg("product-barcode.jpg");
myBarcode.SaveAsPng("product-barcode.png");
Imports IronBarCode

' Create a basic barcode
BarcodeWriter.CreateBarcode("IronBarcode123", BarcodeEncoding.Code128, 200, 100).SaveAsJpeg("OneDBarcode.jpeg")

' Create a barcode with custom options
Dim myBarcode = BarcodeWriter.CreateBarcode("PRODUCT-12345", BarcodeEncoding.Code128, 300, 150)

' Apply styling
myBarcode.AddBarcodeValueTextBelowBarcode()
myBarcode.SetMargins(10)

' Save in multiple formats
myBarcode.SaveAsJpeg("product-barcode.jpg")
myBarcode.SaveAsPng("product-barcode.png")
$vbLabelText   $csharpLabel
生成的带有黑色竖条的一维条形码显示了条形码创建代码的输出示例

有关高级样式选项,请参阅我们的自定义条形码样式指南。

如何生成二维码并保存为图像文件?

IronBarcode 完全支持被归类为二维条形码的 QR 码。 从餐厅菜单到支付系统,这些工具的多功能性、外观吸引力和可定制功能已被广泛采用。

由于二维码的复杂性,创建二维码需要不同的方法。 调用 CreateQrCode() 类中的 QRCodeWriter 方法,该方法接受 4 个参数BarCode 值输出 QR 码尺寸QRCodeWriter.QrErrorCorrectionLevel 枚举字段以及 QRVersion

QR 代码值可以使用哪些数据类型?

QRCodeWriter.CreateQrCode() 支持将数字、字母或字母数字值作为 MemoryStreamSystem.String 类型进行存储。QR码在存储以下内容方面表现出色:

  • URLs: 将用户直接引导至网站或目标页
  • 文本: 存储多达4,296个字母数字字符
  • 二进制数据: 编码文件或复杂的数据结构
  • 结构化数据: vCards、WiFi凭证或支付信息

有关 Unicode 支持和国际字符,请参阅我们的 编写 Unicode 条形码教程。

如何设置二维码大小?

请直接以 Int32 格式指定QR码尺寸单位为像素 px)。 默认大小为 500 px。 考虑这些因素:

  • 显示介质: 屏幕显示通常需要200-400px
  • 打印应用: 出于高质量打印请使用600px或更高
  • 扫描距离:代码越大,扫描距离越远

什么是 QR 纠错级别,为什么它很重要?

QRErrorCorrectionLevel 用于确定容错级别,共分为四个等级:最高。 校正级别越高,生成的二维码越复杂,即使在损坏或部分模糊的情况下也不会出现读取错误。

QRErrorCorrectionLevel.Highest

生成最复杂的 QR 代码,纠错率达 30%。 支持徽标戳记或图像图形。 适用于定制带有徽标的二维码

以最高纠错级别生成的 QR 码显示了带有定位方格的密集黑白图案

QRErrorCorrectionLevel.High

适用 25% 的纠错率。 复杂程度低于最高级别。 兼顾耐用性和数据容量。

QR 代码示例,显示具有密集数据模式和标准定位元素的高纠错级别

QRErrorCorrectionLevel.Medium

适用 15% 的纠错率。 生成 QR 代码的速度更快,但容易出错。 适用于大多数商业应用,印刷清晰。

生成的 QR 代码示例,显示带有角位置标记的黑白数据矩阵

QRErrorCorrectionLevel.Low

应用 7% 的纠错功能,创建最不复杂的二维码。 在需要最大数据容量和最佳扫描条件时使用。

以低纠错级别生成的 QR 码示例,显示标准的黑白模块模式

何时应使用不同的 QR 版本?

QR 版本(1-40)决定了符号的复杂程度和数据容量。 更高的版本会产生更复杂的代码,存储更多的数据。 将版本设置得过低会导致较大数据量的编码问题。 版本 0 会根据编码值自动分配相应的版本。 See QR Version for more information.

如何使用特定设置创建二维码图像?

使用 QRCodeWriter.CreateQrCode() 生成QR码并将其保存为图片:

using IronBarCode;

// Basic QR code creation
QRCodeWriter.CreateQrCode("IronBarcode1234", 250, QRCodeWriter.QrErrorCorrectionLevel.Medium, qrVersion: 0).SaveAsJpeg("QRMedium.jpeg");

// Advanced QR code with custom styling
var qrCode = QRCodeWriter.CreateQrCode("https://ironsoftware.com", 500, QRCodeWriter.QrErrorCorrectionLevel.High);

// Add logo and styling
qrCode.AddLogo("logo.png");
qrCode.ChangeBarCodeColor(System.Drawing.Color.DarkBlue);

// Save in multiple formats
qrCode.SaveAsPng("styled-qr.png");
qrCode.SaveAsPdf("styled-qr.pdf");
using IronBarCode;

// Basic QR code creation
QRCodeWriter.CreateQrCode("IronBarcode1234", 250, QRCodeWriter.QrErrorCorrectionLevel.Medium, qrVersion: 0).SaveAsJpeg("QRMedium.jpeg");

// Advanced QR code with custom styling
var qrCode = QRCodeWriter.CreateQrCode("https://ironsoftware.com", 500, QRCodeWriter.QrErrorCorrectionLevel.High);

// Add logo and styling
qrCode.AddLogo("logo.png");
qrCode.ChangeBarCodeColor(System.Drawing.Color.DarkBlue);

// Save in multiple formats
qrCode.SaveAsPng("styled-qr.png");
qrCode.SaveAsPdf("styled-qr.pdf");
Imports IronBarCode

' Basic QR code creation
QRCodeWriter.CreateQrCode("IronBarcode1234", 250, QRCodeWriter.QrErrorCorrectionLevel.Medium, qrVersion:=0).SaveAsJpeg("QRMedium.jpeg")

' Advanced QR code with custom styling
Dim qrCode = QRCodeWriter.CreateQrCode("https://ironsoftware.com", 500, QRCodeWriter.QrErrorCorrectionLevel.High)

' Add logo and styling
qrCode.AddLogo("logo.png")
qrCode.ChangeBarCodeColor(System.Drawing.Color.DarkBlue)

' Save in multiple formats
qrCode.SaveAsPng("styled-qr.png")
qrCode.SaveAsPdf("styled-qr.pdf")
$vbLabelText   $csharpLabel
二维码示例,显示中等纠错水平的标准查找模式和数据编码结构

代码以 250 像素对字母数字值进行编码,并进行中等程度的纠错。 版本 0 可让程序选择适当的二维码版本。 SaveAsJpeg() 接受带有 JPEG 扩展名的文件名。

生成 BarCode 图像的最佳实践

适用于生产应用:

  1. 选择正确的格式: PNG用于网页,TIFF用于档案,JPEG用于一般用途
  2. 测试扫描: 使用多个扫描设备验证条码
  3. 应用适当的边距: 使用条码边距设置以确保可靠扫描
  4. 考虑性能: 探索异步和多线程选项以进行高容量生成

有关其他示例和技术,请访问我们的 C# BarCode 图像生成器教程

常见问题解答

如何使用一行代码在 C# 中创建一个 BarCode 图像?

使用 IronBarcode,您可以使用 BarcodeWriter.CreateBarcode() 方法在一行内创建一个条形码图像。只需传递数据、编码类型、宽度和高度,然后将其保存为图像文件即可。例如IronBarCode.BarcodeWriter.CreateBarcode("Sample123", BarcodeEncoding.Code128, 250, 100).SaveAsPng("Barcode.png");

BarCode 可以编码哪些类型的数据?

IronBarcode 的 BarcodeWriter.CreateBarcode() 方法接受多种数据类型,包括字节数组、MemoryStreams 和字符串。字符串长度和接受的字符因条形码类型而异--Code128 支持完整的 ASCII 字符集,而 UPC-A 则需要 12 位数字。对于二进制数据,您可以使用字节数组来编码复杂的数据结构。

图像生成支持哪些条形码格式?

IronBarcode 支持多种条形码格式,包括线性/一维条形码(Code128、Code39、UPC-A、UPC-E、EAN-8、EAN-13)、二维条形码(QR Code、Data Matrix、PDF417、Aztec)以及特殊格式,如用于运输的 MaxiCode 和用于零售的 Databar。每种格式都有其特定的用途,Code128 可处理一般的字母数字数据,而 QR 码则可为移动扫描提供出色的纠错功能。

如何设置 BarCode 图像的尺寸?

您可以直接在 CreateBarcode() 方法参数中以像素为单位设置条码图像尺寸。IronBarcode 使用默认的宽度和高度均为 250px。某些条码类型如 QR 和 PDF417 可能需要特定的尺寸以符合要求,当输入尺寸不符合要求时,该库会自动进行调整。

生成的 BarCode 可以保存为何种图像文件格式?

IronBarcode 允许您使用 SaveAs() 方法将生成的条形码保存为多种图像格式。您可以使用 SaveAsPng() 保存为 PNG 格式,也可以保存为 JPEG、BMP 和 TIFF 等其他常见格式。CreateBarcode() 返回的 GeneratedBarcode 对象为不同的文件类型提供了多种保存方法。

除了传统的 BarCode 之外,我还能生成 QR 码吗?

是的,IronBarcode 完全支持 QR 码和传统条码的生成。通过指定 BarcodeEncoding.QRCode 作为编码类型,您可以使用相同的 CreateBarcode() 方法创建 QR 代码。QR 代码具有卓越的纠错功能,是移动扫描应用程序的理想选择。

IronBarcode是否提供支持自定义条形码外观的功能?

是的,IronBarcode为条形码外观提供广泛的自定义选项,包括颜色、大小和文本注释,允许运您将条形码设计成符合您特定的设计要求。

IronBarcode如何帮助提高业务流程的效率?

IronBarcode通过快速准确的条码生成和读取提高了业务流程效率,减少了手动数据输入错误,并改善了库存和资产跟踪。

在项目中实现IronBarcode需要哪些编程技能?

了解C#编程的基础知识就足以在项目中实现IronBarcode,因为它提供了简单的方法和全面的文档来指导开发人员。

IronBarcode适合小项目和大型企业应用吗?

IronBarcode被设计为可扩展且多功能,适合需要强大条码解决方案的小项目和大型企业应用。

Hairil Hasyimi Bin Omar
软件工程师
如所有伟大的工程师一般,Hairil 是个热心的学习者。他正在提高对 C#、Python 和 Java 的知识,并利用这些知识为 Iron Software 团队成员增值。Hairil 从马来西亚的玛拉工业大学加入 Iron Software 团队,获得化学与工艺工程学士学位。
准备开始了吗?
Nuget 下载 2,240,258 | 版本: 2026.5 just released
Still Scrolling Icon

还在滚动吗?

想快速获得证据? PM > Install-Package BarCode
运行示例 观看您的字符串变成 BarCode。