
如何使用IronBarcode在 C# 中生成二维码
IronBarcode使.NET开发人员能够使用其 QRCodeWriter 类高效地创建二维码。 它支持自定义徽标、颜色、多种输出格式以及跨平台部署,包括 Windows、Linux、macOS 和移动设备。
本指南演示如何使用IronBarcode为生产系统生成二维码。 IronBarcode 的 API 遵循.NET规范,同时提供Enterprise应用程序所需的性能和可靠性。 该库提供完整的文档,并支持在 Windows、Linux、macOS 和移动平台上部署。 如需全面了解所有功能,请浏览功能页面。 条形码快速入门指南提供可立即上手操作的示例,帮助您快速入门。
使用IronBarcode生成二维码有哪些好处?
为什么选择IronBarcode而不是其他库?
读取和写入20多种条码格式,包括UPC、EAN、Code 128和DataMatrix。 查看所有支持的格式。
- 使用校正滤波器对图像进行预处理,以提高精度。 包含针对不完美条形码的高级图像校正功能。
- 读取扫描件和视频帧,并自动进行图像方向校正。
- 使用多个核心进行批量处理,并支持异步处理。 学习异步读取条形码以获得更好的性能。
- 可自动查找多个条形码,并提供可自定义的读取器选项。 配置条形码阅读器设置以获得最佳效果。
- 支持.NET Core和 Framework 上的 32/64 位架构,具有跨平台兼容性。
- 可在 PC 和移动设备上运行: Android 、 iOS 、 macOS 、 Linux 。 请参阅服务器的Docker 设置指南。
- 生成多种格式的二维码,并提供多种输出选项。 支持生成多种格式的条形码。
如何使用IronBarcode生成二维码?
以下各节将演示遵循 SOLID 原则的生产就绪代码。 您将学习创建各种类型的二维码,实现自定义样式,并确保可靠的扫描性能。 该库的功能包括支持除二维码之外的一维和二维条形码。 对于更高级的场景,请查阅API 参考文档以获取完整的方法签名。 浏览演示视频,了解 IronBarcode 的实际功能。
如何创建一个新项目?
打开 Visual Studio,从"文件"菜单中选择**"新建项目"** 。 对于Enterprise部署,请考虑查看MSI 安装程序指南以进行自动安装。 入门概览提供了完整的设置说明。
选择控制台应用程序模板,然后单击"下一步"。
输入您喜欢的项目名称(例如二维码生成器),并指定项目位置。 点击**"下一步"** 。
从下拉列表中选择.NET Framework ( .NET 6.0(长期支持) ),然后单击"创建"。 IronBarcode支持所有现代.NET版本,详情请参阅兼容性文档。 有关具体的平台要求,请查看Blazor集成指南。
有哪些安装方法?
使用四种适用于不同工作流程的方法之一来安装IronBarcode 。 图书馆的现场演示展示了实时条形码识别功能。 如需快速测试,请查看条形码快速入门示例。
如何使用 Visual Studio 的包管理器 UI 进行安装?
转到**"工具"** > "NuGet包管理器" > "管理解决方案的NuGet包"……
或者在解决方案资源管理器中右键单击您的项目,然后选择**"管理NuGet程序包..."**
点击*"浏览"* ,搜索*"条形码"* ,选择*"IronBarcode"* ,选择您的项目,然后点击"安装"。 有关特定平台的安装,请参阅NuGet包指南。 如果遇到问题,请参阅NuGet故障排除指南。 该库支持多种部署方案,包括AWS Lambda和Azure Functions 。
如何使用软件包管理器控制台进行安装?
打开**"工具"** > "NuGet程序包管理器" > "程序包管理器控制台" ,然后运行:
这会将库安装到您当前的项目中。 对于容器化部署,请遵循Docker 设置指南。 使用许可证密钥时,请确保针对您的部署环境进行正确配置。
如何从NuGet或IronBarcode网站下载?
从NuGet Gallery 网站下载或访问 IronBarcode 的主页获取最新的.NET条形码 DLL。 在解决方案资源管理器中,通过**"添加"** > **"引用"**将 DLL 添加到您的项目中。 要排查 DLL 问题,请参阅缺失 DLL 指南。 遇到运行时问题时,请参阅运行时复制异常指南。
如何创建和自定义二维码图像?
如何生成基本的二维码?
使用QRCodeWriter类中创建QR码。 有关完整示例,请参阅C# 二维码生成器教程。 该库支持创建各种格式的条形码图像:
using IronBarCode;
// Basic QR code generation with medium error correction
var qrCode = QRCodeWriter.CreateQrCode("hello world", 500, QRCodeWriter.QrErrorCorrectionLevel.Medium, 0);
qrCode.SaveAsPng("MyQR.png");
// Generate QR code with automatic sizing and highest error correction
var autoQr = QRCodeWriter.CreateQrCode("Automatic sizing example");
autoQr.SaveAsJpeg("AutoQR.jpg");
// Production-ready QR code with validation
public GeneratedBarcode CreateValidatedQrCode(string data, int size = 600)
{
if (string.IsNullOrWhiteSpace(data))
throw new ArgumentException("Data cannot be empty");
if (data.Length > 2953) // QR Code capacity at highest error correction
throw new ArgumentException("Data exceeds QR code capacity");
var qr = QRCodeWriter.CreateQrCode(data, size, QRCodeWriter.QrErrorCorrectionLevel.High);
qr.VerifyQrCode(); // Verify the generated code is valid
return qr;
}Imports IronBarCode
' Basic QR code generation with medium error correction
Dim qrCode = QRCodeWriter.CreateQrCode("hello world", 500, QRCodeWriter.QrErrorCorrectionLevel.Medium, 0)
qrCode.SaveAsPng("MyQR.png")
' Generate QR code with automatic sizing and highest error correction
Dim autoQr = QRCodeWriter.CreateQrCode("Automatic sizing example")
autoQr.SaveAsJpeg("AutoQR.jpg")
' Production-ready QR code with validation
Public Function CreateValidatedQrCode(data As String, Optional size As Integer = 600) As GeneratedBarcode
If String.IsNullOrWhiteSpace(data) Then
Throw New ArgumentException("Data cannot be empty")
End If
If data.Length > 2953 Then ' QR Code capacity at highest error correction
Throw New ArgumentException("Data exceeds QR code capacity")
End If
Dim qr = QRCodeWriter.CreateQrCode(data, size, QRCodeWriter.QrErrorCorrectionLevel.High)
qr.VerifyQrCode() ' Verify the generated code is valid
Return qr
End FunctionCreateQrCode方法接受:
- 必填:要编码的数据(字符串或流)
- 可选:图形尺寸(默认 500x500 像素)
- 可选:纠错级别(低 7%,中 15%,高 25%,最高 30%)
- 可选:二维码版本号(0 表示自动)
对于高性能批量处理,请使用异步操作和自定义样式。 在不完美条件下工作时,请使用容错功能。 条形码读取教程演示了如何验证生成的条形码。
我可以在二维码中编码哪些数据类型?
生产应用中常见的二维码数据类型包括从各种来源创建条形码。 有关详细示例,请参阅创建二维码示例。 IronBarcode支持Unicode条形码,用于国际字符编码:
URL二维码:
// Generate QR code for website URL
var urlQr = QRCodeWriter.CreateQrCode("___PROTECTED_URL_76___", 800);
urlQr.SetMargins(10); // Add quiet zone
urlQr.SaveAsPng("campaign-qr.png");
// Advanced URL QR code with tracking
public GeneratedBarcode CreateTrackableUrlQr(string baseUrl, Dictionary<string, string> utmParams)
{
var uriBuilder = new UriBuilder(baseUrl);
var query = System.Web.HttpUtility.ParseQueryString(uriBuilder.Query);
foreach (var param in utmParams)
query[param.Key] = param.Value;
uriBuilder.Query = query.ToString();
var qr = QRCodeWriter.CreateQrCode(uriBuilder.ToString(), 1000);
return qr;
}' Generate QR code for website URL
Dim urlQr = QRCodeWriter.CreateQrCode("___PROTECTED_URL_76___", 800)
urlQr.SetMargins(10) ' Add quiet zone
urlQr.SaveAsPng("campaign-qr.png")
' Advanced URL QR code with tracking
Public Function CreateTrackableUrlQr(baseUrl As String, utmParams As Dictionary(Of String, String)) As GeneratedBarcode
Dim uriBuilder = New UriBuilder(baseUrl)
Dim query = System.Web.HttpUtility.ParseQueryString(uriBuilder.Query)
For Each param In utmParams
query(param.Key) = param.Value
Next
uriBuilder.Query = query.ToString()
Dim qr = QRCodeWriter.CreateQrCode(uriBuilder.ToString(), 1000)
Return qr
End FunctionvCard 联系信息:
string vCard = @"BEGIN:VCARD
VERSION:3.0
FN:John Smith
ORG:Tech Corp
TEL:+1-555-0123
EMAIL:john@example.com
END:VCARD";
var contactQr = QRCodeWriter.CreateQrCode(vCard, 600, QRCodeWriter.QrErrorCorrectionLevel.Medium);
contactQr.SaveAsPng("contact-card.png");Dim vCard As String = "BEGIN:VCARD" & vbCrLf & _
"VERSION:3.0" & vbCrLf & _
"FN:John Smith" & vbCrLf & _
"ORG:Tech Corp" & vbCrLf & _
"TEL:+1-555-0123" & vbCrLf & _
"EMAIL:john@example.com" & vbCrLf & _
"END:VCARD"
Dim contactQr = QRCodeWriter.CreateQrCode(vCard, 600, QRCodeWriter.QrErrorCorrectionLevel.Medium)
contactQr.SaveAsPng("contact-card.png")WiFi 配置:
string wifiConfig = "WIFI:T:WPA;S:NetworkName;P:Password123;;";
var wifiQr = QRCodeWriter.CreateQrCode(wifiConfig, 500);
wifiQr.SaveAsPng("wifi-config.png");Dim wifiConfig As String = "WIFI:T:WPA;S:NetworkName;P:Password123;;"
Dim wifiQr = QRCodeWriter.CreateQrCode(wifiConfig, 500)
wifiQr.SaveAsPng("wifi-config.png")IronBarcode处理国际字符的Unicode 支持,并支持Micro QR 和 rMQR等格式,适用于空间受限的应用。 对于特殊格式,请探索新的格式里程碑。 在使用特殊数据格式时,该库可以从流中读取数据并将其导出为流,从而实现高效的内存使用。
如何添加徽标和自定义样式?
使用CreateQrCodeWithLogo添加公司标志到QR码。 有关完整的样式选项,请参阅自定义二维码示例和二维码样式指南。 该库还支持所有条形码类型的通用条形码样式:
// Create QR code with embedded logo
var qrWithLogo = QRCodeWriter.CreateQrCodeWithLogo("Hello World", "logo.png", 500);
qrWithLogo.ChangeBarCodeColor(System.Drawing.Color.DarkRed);
qrWithLogo.SaveAsPng("Logo_QR_Code.png");
// Advanced logo customization
var logo = new QRCodeLogo("company-logo.png")
{
Width = 100,
Height = 100,
CornerRadius = 5
};
var advancedQr = QRCodeWriter.CreateQrCodeWithLogo("Advanced Example", logo, 600);
// Production-ready branded QR code
public GeneratedBarcode CreateBrandedQrCode(string data, string logoPath, string brandColor)
{
var logo = new QRCodeLogo(logoPath)
{
Width = 80,
Height = 80,
CornerRadius = 10
};
var qr = QRCodeWriter.CreateQrCodeWithLogo(data, logo, 800);
qr.ChangeBarCodeColor(System.Drawing.ColorTranslator.FromHtml(brandColor));
qr.SetMargins(15);
return qr;
}' Create QR code with embedded logo
Dim qrWithLogo = QRCodeWriter.CreateQrCodeWithLogo("Hello World", "logo.png", 500)
qrWithLogo.ChangeBarCodeColor(System.Drawing.Color.DarkRed)
qrWithLogo.SaveAsPng("Logo_QR_Code.png")
' Advanced logo customization
Dim logo As New QRCodeLogo("company-logo.png") With {
.Width = 100,
.Height = 100,
.CornerRadius = 5
}
Dim advancedQr = QRCodeWriter.CreateQrCodeWithLogo("Advanced Example", logo, 600)
' Production-ready branded QR code
Public Function CreateBrandedQrCode(data As String, logoPath As String, brandColor As String) As GeneratedBarcode
Dim logo As New QRCodeLogo(logoPath) With {
.Width = 80,
.Height = 80,
.CornerRadius = 10
}
Dim qr = QRCodeWriter.CreateQrCodeWithLogo(data, logo, 800)
qr.ChangeBarCodeColor(System.Drawing.ColorTranslator.FromHtml(brandColor))
qr.SetMargins(15)
Return qr
End Function使用条形码自定义功能应用其他样式。 条形码样式功能提供完整的自定义选项:
// Use HTML color codes for brand colors
qrWithLogo.ChangeBarCodeColor(System.Drawing.ColorTranslator.FromHtml("#8B0000"));
qrWithLogo.ChangeBackgroundColor(System.Drawing.Color.LightGray);
qrWithLogo.AddAnnotationTextAboveBarcode("SCAN ME");
qrWithLogo.AddAnnotationTextBelowBarcode("Company Name");' Use HTML color codes for brand colors
qrWithLogo.ChangeBarCodeColor(System.Drawing.ColorTranslator.FromHtml("#8B0000"))
qrWithLogo.ChangeBackgroundColor(System.Drawing.Color.LightGray)
qrWithLogo.AddAnnotationTextAboveBarcode("SCAN ME")
qrWithLogo.AddAnnotationTextBelowBarcode("Company Name")有哪些导出格式可供选择?
保存各种格式的二维码,以适应不同的使用场景。 了解更多信息,请参阅保存条形码示例和条形码图像生成器教程。 对于特殊要求,请参阅创建 1-BPP 条形码图像的指南:
// Image formats
qrWithLogo.SaveAsJpeg("qr.jpg");
qrWithLogo.SaveAsPng("qr.png");
qrWithLogo.SaveAsGif("qr.gif");
qrWithLogo.SaveAsTiff("qr.tiff");
// Web formats
qrWithLogo.SaveAsHtmlFile("qr.html");
string dataUrl = qrWithLogo.ToDataUrl();
// Print formats
qrWithLogo.SaveAsPdf("qr.pdf");
qrWithLogo.ChangeBarcodeDpi(300);
// API formats
byte[] qrBytes = qrWithLogo.ToPngBinaryData();
var stream = qrWithLogo.ToStream();
// High-quality print export
public void ExportForPrint(GeneratedBarcode qr, string filename)
{
qr.ChangeBarcodeDpi(600); // 高的 DPI for print
qr.ResizeTo(2000, 2000); // Large size
qr.SaveAsTiff(filename); // Lossless format
}' Image formats
qrWithLogo.SaveAsJpeg("qr.jpg")
qrWithLogo.SaveAsPng("qr.png")
qrWithLogo.SaveAsGif("qr.gif")
qrWithLogo.SaveAsTiff("qr.tiff")
' Web formats
qrWithLogo.SaveAsHtmlFile("qr.html")
Dim dataUrl As String = qrWithLogo.ToDataUrl()
' Print formats
qrWithLogo.SaveAsPdf("qr.pdf")
qrWithLogo.ChangeBarcodeDpi(300)
' API formats
Dim qrBytes As Byte() = qrWithLogo.ToPngBinaryData()
Dim stream = qrWithLogo.ToStream()
' High-quality print export
Public Sub ExportForPrint(qr As GeneratedBarcode, filename As String)
qr.ChangeBarcodeDpi(600) ' 高的 DPI for print
qr.ResizeTo(2000, 2000) ' Large size
qr.SaveAsTiff(filename) ' Lossless format
End Sub有关 PDF 的特定操作,请参阅有关在 PDF 中创建条形码和在现有 PDF 上添加条形码的指南。 从 PDF 读取条形码时,请使用PDF 条形码阅读器设置以获得最佳效果。
如何在Web应用程序中实现二维码?
对于ASP.NET MVC 应用程序,实现无文件 I/O 的流式传输。 该库支持创建 HTML 条形码,以便直接集成到 Web 中:
public IActionResult GetQrCode(string data)
{
var qr = QRCodeWriter.CreateQrCode(data, 400);
byte[] qrBytes = qr.ToPngBinaryData();
return File(qrBytes, "image/png", "qrcode.png");
}
// Stream directly without disk I/O
public IActionResult StreamQrCode(string content)
{
var qr = QRCodeWriter.CreateQrCode(content, 500);
var stream = qr.ToStream();
return File(stream, "image/png");
}
// Generate HTML-embedded QR codes
public IActionResult GetHtmlQrCode(string data)
{
var qr = QRCodeWriter.CreateQrCode(data, 400);
var htmlString = qr.ToHtmlTag();
return Content(htmlString, "text/html");
}Public Function GetQrCode(data As String) As IActionResult
Dim qr = QRCodeWriter.CreateQrCode(data, 400)
Dim qrBytes As Byte() = qr.ToPngBinaryData()
Return File(qrBytes, "image/png", "qrcode.png")
End Function
' Stream directly without disk I/O
Public Function StreamQrCode(content As String) As IActionResult
Dim qr = QRCodeWriter.CreateQrCode(content, 500)
Dim stream = qr.ToStream()
Return File(stream, "image/png")
End Function
' Generate HTML-embedded QR codes
Public Function GetHtmlQrCode(data As String) As IActionResult
Dim qr = QRCodeWriter.CreateQrCode(data, 400)
Dim htmlString As String = qr.ToHtmlTag()
Return Content(htmlString, "text/html")
End Function对于Blazor应用,实现响应式二维码生成:
@page "/qrcode"
@using IronBarCode
<input @bind="qrText" placeholder="Enter text" />
<button @onclick="GenerateQr">Generate</button>
@if (!string.IsNullOrEmpty(QrCodeDataUrl))
{
<img src="@QrCodeDataUrl" alt="QR Code" />
}
@code {
private string qrText = "";
private string QrCodeDataUrl = "";
private void GenerateQr()
{
if (!string.IsNullOrEmpty(qrText))
{
var qr = QRCodeWriter.CreateQrCode(qrText, 400);
QrCodeDataUrl = qr.ToDataUrl();
}
}
}@page "/qrcode"
@Imports IronBarCode
<input @bind="qrText" placeholder="Enter text" />
<button @onclick="GenerateQr">Generate</button>
@if Not String.IsNullOrEmpty(QrCodeDataUrl) Then
<img src="@QrCodeDataUrl" alt="QR Code" />
End If
@Code
Private qrText As String = ""
Private QrCodeDataUrl As String = ""
Private Sub GenerateQr()
If Not String.IsNullOrEmpty(qrText) Then
Dim qr = QRCodeWriter.CreateQrCode(qrText, 400)
QrCodeDataUrl = qr.ToDataUrl()
End If
End Sub
End Code要将条形码导出为 HTML,请参阅创建条形码为 HTML 指南。 在 Web 应用程序中应用许可证时,请参阅web.config 许可证密钥指南。
二维码实施的最佳实践是什么?
我应该选择哪个纠错级别?
纠错能力会影响系统的韧性和容量。 有关详细信息,请参阅纠错指南。 该库包含机器学习置信度阈值,以提高准确率:
| 级别 | 恢复 | 使用案例 |
|---|---|---|
| low | 7% | 清洁的数字环境 |
| 语言 | 15% | 印刷材料、名片 |
| 高的 | 25% | 户外标牌、手拿物品 |
| 最高 | 30% | 工业用途,添加标识 |
我的二维码应该有多大?
根据扫描距离计算最佳尺寸。 了解如何设置边距以提高扫描效果。 以下边距设置示例展示了最佳实践:
// 1:10 ratio - 1cm QR per 10cm distance
int CalculateQrSize(double scanDistanceMeters)
{
int sizeInCm = (int)(scanDistanceMeters * 10);
return (int)(sizeInCm * 37.8); // Convert to pixels at 96 DPI
}
// Set appropriate margins for reliable scanning
public GeneratedBarcode CreateScanOptimizedQr(string data, int scanDistance)
{
int size = CalculateQrSize(scanDistance);
var qr = QRCodeWriter.CreateQrCode(data, size);
qr.SetMargins(size / 20); // 5% margin
return qr;
}' 1:10 ratio - 1cm QR per 10cm distance
Private Function CalculateQrSize(scanDistanceMeters As Double) As Integer
Dim sizeInCm As Integer = CInt(scanDistanceMeters * 10)
Return CInt(sizeInCm * 37.8) ' Convert to pixels at 96 DPI
End Function
' Set appropriate margins for reliable scanning
Public Function CreateScanOptimizedQr(data As String, scanDistance As Integer) As GeneratedBarcode
Dim size As Integer = CalculateQrSize(scanDistance)
Dim qr = QRCodeWriter.CreateQrCode(data, size)
qr.SetMargins(size / 20) ' 5% margin
Return qr
End Function如何确保移动设备兼容性?
通过条形码阅读器设置改进移动扫描。 如果遇到识别问题,请参阅条形码无法识别故障排除指南:
public GeneratedBarcode CreateMobileOptimizedQr(string data)
{
var qr = QRCodeWriter.CreateQrCode(data, 800, QRCodeWriter.QrErrorCorrectionLevel.Medium);
qr.SetMargins(20); // Adequate quiet zone
qr.ChangeBarCodeColor(System.Drawing.Color.Black);
qr.ChangeBackgroundColor(System.Drawing.Color.White);
return qr;
}Public Function CreateMobileOptimizedQr(ByVal data As String) As GeneratedBarcode
Dim qr = QRCodeWriter.CreateQrCode(data, 800, QRCodeWriter.QrErrorCorrectionLevel.Medium)
qr.SetMargins(20) ' Adequate quiet zone
qr.ChangeBarCodeColor(System.Drawing.Color.Black)
qr.ChangeBackgroundColor(System.Drawing.Color.White)
Return qr
End Function对于跨平台移动开发,请探索.NET MAUI条形码扫描器教程。 该库原生支持iOS和Android平台。## 常见集成场景
创建营销活动二维码
要实现带有自定义品牌标识的可追踪营销二维码,请参阅条形码读取速度管理指南:
public GeneratedBarcode CreateCampaignQr(string campaignId, string userId)
{
string trackingUrl = "___PROTECTED_URL_79___";
var qr = QRCodeWriter.CreateQrCodeWithLogo(trackingUrl, "logo.png", 1000);
qr.ChangeBarCodeColor(System.Drawing.ColorTranslator.FromHtml("#1E3A8A"));
qr.AddAnnotationTextAboveBarcode($"Campaign: {campaignId}");
return qr;
}
// Batch generate campaign materials
public async Task GenerateCampaignBatch(List<string> userIds, string campaignId)
{
var tasks = userIds.Select(async userId =>
{
var qr = CreateCampaignQr(campaignId, userId);
await Task.Run(() => qr.SaveAsPng($"campaigns/{campaignId}/{userId}.png"));
});
await Task.WhenAll(tasks);
}Public Function CreateCampaignQr(campaignId As String, userId As String) As GeneratedBarcode
Dim trackingUrl As String = "___PROTECTED_URL_79___"
Dim qr = QRCodeWriter.CreateQrCodeWithLogo(trackingUrl, "logo.png", 1000)
qr.ChangeBarCodeColor(System.Drawing.ColorTranslator.FromHtml("#1E3A8A"))
qr.AddAnnotationTextAboveBarcode($"Campaign: {campaignId}")
Return qr
End Function
' Batch generate campaign materials
Public Async Function GenerateCampaignBatch(userIds As List(Of String), campaignId As String) As Task
Dim tasks = userIds.Select(Async Function(userId)
Dim qr = CreateCampaignQr(campaignId, userId)
Await Task.Run(Sub() qr.SaveAsPng($"campaigns/{campaignId}/{userId}.png"))
End Function)
Await Task.WhenAll(tasks)
End Function生成产品标签二维码
创建用于库存管理的二维码。 有关处理特殊格式的信息,请参阅GS1-128 故障排除指南。 使用特定类型的条形码(例如Code 39或MSI 条形码)时,请参考特定格式的指南:
public void GenerateProductLabel(Product product)
{
var productData = new
{
sku = product.SKU,
batch = product.BatchNumber,
expiry = product.ExpiryDate.ToString("yyyy-MM-dd")
};
string json = System.Text.Json.JsonSerializer.Serialize(productData);
var qr = QRCodeWriter.CreateQrCode(json, 400, QRCodeWriter.QrErrorCorrectionLevel.High);
qr.AddAnnotationTextAboveBarcode(product.Name);
qr.SaveAsPng($"labels/product-{product.SKU}.png");
}
// Generate 1-BPP labels for thermal printers
public void GenerateThermalLabel(Product product)
{
var qr = CreateProductQr(product);
qr.SaveAs1BitPerPixelPng($"thermal/{product.SKU}.png");
}Public Sub GenerateProductLabel(product As Product)
Dim productData = New With {
.sku = product.SKU,
.batch = product.BatchNumber,
.expiry = product.ExpiryDate.ToString("yyyy-MM-dd")
}
Dim json As String = System.Text.Json.JsonSerializer.Serialize(productData)
Dim qr = QRCodeWriter.CreateQrCode(json, 400, QRCodeWriter.QrErrorCorrectionLevel.High)
qr.AddAnnotationTextAboveBarcode(product.Name)
qr.SaveAsPng($"labels/product-{product.SKU}.png")
End Sub
' Generate 1-BPP labels for thermal printers
Public Sub GenerateThermalLabel(product As Product)
Dim qr = CreateProductQr(product)
qr.SaveAs1BitPerPixelPng($"thermal/{product.SKU}.png")
End Sub对于特殊标签打印,请查看1-BPP 条形码图像指南。 阅读多页文档时,请参阅多页 GIF 和 TIFF 指南。
提高条形码扫描性能
对于大批量扫描应用,实施作物区域以限制扫描区域并提高性能。 读取速度选项可对精度和速度之间的权衡进行精细控制:
// Define crop region for faster scanning
var cropRegion = new Rectangle(100, 100, 300, 300);
var options = new BarcodeReaderOptions
{
Speed = ReadingSpeed.Faster,
ExpectBarcodeTypes = BarcodeEncoding.QRCode,
CropArea = cropRegion
};
var results = BarcodeReader.Read("image.png", options);' Define crop region for faster scanning
Dim cropRegion As New Rectangle(100, 100, 300, 300)
Dim options As New BarcodeReaderOptions With {
.Speed = ReadingSpeed.Faster,
.ExpectBarcodeTypes = BarcodeEncoding.QRCode,
.CropArea = cropRegion
}
Dim results = BarcodeReader.Read("image.png", options)在处理System.Drawing对象时,该库通过IronDrawing提供跨平台兼容性。
要点总结
IronBarcode为.NET应用程序提供完整的二维码生成解决方案。 该库提供直观的 API、丰富的文档和可用于生产环境的功能,包括容错性、跨平台支持和性能优化。 通过更新日志了解最新功能。 对于注重安全性的部署,请查看安全 CVE 披露信息。
请在许可页面查找许可信息。 IronBarcode提供免费的开发者许可证,并提供包括支持和更新在内的高级选项。 对于现有客户,请了解许可证延期和升级选项。 如果您需要有关许可方面的帮助,请参阅许可证密钥申请指南和web.config 许可设置。
对于生产环境部署,请参考AWS Lambda 、 Azure Functions和Docker 容器的相关指南。 要排查具体的部署问题,请参阅AWS Lambda 运行时指南和运行时复制异常解决方案。 如果遇到误报,请查阅详细的故障排除指南。
如需技术支持,请提交工程请求。 该库会定期进行更新,如产品更新部分所示,以确保持续的兼容性和新功能。
快速入门二维码示例
只需几行代码即可生成具有自定义样式的二维码。 如需更多示例,请访问创建条形码示例,并探索读取条形码教程,以获取完整的条形码解决方案。 其他示例包括从 PDF 读取条形码和从数据创建条形码:
using IronBarCode;
// Create QR code with custom size and error correction
var qrCode = QRCodeWriter.CreateQrCode("___PROTECTED_URL_81___", 500, QRCodeWriter.QrErrorCorrectionLevel.High);
// Add styling
qrCode.ChangeBarCodeColor(System.Drawing.Color.Navy);
qrCode.AddBarcodeValueTextBelowBarcode();
// Save as image
qrCode.SaveAsPng("quickstart-qr.png");
// Export for API
byte[] pngBytes = qrCode.ToPngBinaryData();Imports IronBarCode
' Create QR code with custom size and error correction
Dim qrCode = QRCodeWriter.CreateQrCode("___PROTECTED_URL_81___", 500, QRCodeWriter.QrErrorCorrectionLevel.High)
' Add styling
qrCode.ChangeBarCodeColor(System.Drawing.Color.Navy)
qrCode.AddBarcodeValueTextBelowBarcode()
' Save as image
qrCode.SaveAsPng("quickstart-qr.png")
' Export for API
Dim pngBytes As Byte() = qrCode.ToPngBinaryData()IronBarcode支持通过.NET MAUI在AWS Lambda 、 Azure 、 Docker和移动平台上部署。 如需技术支持,请提交工程请求。 查看安全漏洞 CVE 披露信息,以满足Enterprise安全要求。
探索条形码读取功能,了解条形码识别的全部功能,包括支持读取 Code 39 条形码和其他特殊格式。 该库功能齐全,适用于需要可靠的条形码生成和扫描功能的Enterprise应用程序。

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。
相关文章


