如何在 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 条形码并将其保存为 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() 方法,在方法参数中指定条形码的值、类型、宽度和高度。 这将输出一个 GeneratedBarcode 对象,可以使用 SaveAs() 方法将其保存为图像文件。

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

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

支持哪些 BarCode 编码类型?

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

  • 线性/一维条形码:Code128、Code39、UPC-A、UPC-E、EAN-8、EAN-13
  • 二维条形码:QR 码、数据矩阵、PDF417、阿兹特克码
  • 专业格式:用于运输的 MaxiCode、用于零售的 Databar

每种格式都有特定的用途。 Code128 可以很好地处理一般的字母数字数据,而QR 代码则为移动扫描提供了卓越的纠错功能

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

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

优化扫描:

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

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

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

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

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

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

使用 BarcodeWriter.CreateBarcode() 创建 Code128 条形码并将其保存为 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() 类的方法,该方法接受4 个参数条形码值输出二维码大小QRCodeWriter.QrErrorCorrectionLevel 枚举字段和 QRVersion

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

QRCodeWriter.CreateQrCode() 接受数字、字母或字母数字值,类型分别为 MemoryStreamSystem.String。二维码擅长存储:

  • URL:引导用户访问网站或登陆页面
  • 文本:最多可存储 4296 个字母数字字符
  • 二进制数据:文件或复杂数据结构的编码
  • 结构化数据:VCard、WiFi 证书或支付信息

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

如何设置二维码大小?

直接以像素 (px)为单位指定二维码大小,格式为 Int32。 默认大小为 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() 编写二维码并将其保存为图像:

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.测试扫描:使用多个扫描设备验证 BarCode 3.应用适当的页边距:使用条码页边距设置进行可靠扫描 4.考虑性能:探索 async 和多线程选项,用于大批量生成

有关其他示例和技术,请访问我们的 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 代码具有卓越的纠错功能,是移动扫描应用程序的理想选择。

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

还在滚动吗?

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