如何使用IronBarcode在C#中生成QR Code
IronBarcode使.NET開發者可以使用其QRCodeWriter類來高效地建立QR碼。 它支持自定義標誌、顏色、多種輸出格式和跨平台部署,包括Windows、Linux、macOS和移動平台。
這個指南演示了如何使用IronBarcode為生產系統生成QR碼。 IronBarcode的API遵循.NET的約定,同時提供企業應用所需的性能和可靠性。 該程式庫提供完整的文件,並支持在Windows、Linux、macOS和移動平台上的部署。 欲了解所有功能的完整概述,請查看功能頁面。 條碼快速入門指南提供立即上手的範例,助您開始。
使用IronBarcode生成QR碼的好處是什麼?
為什麼選擇IronBarcode而不是其他程式庫?
- 讀取和寫入超過20種條碼格式,包括UPC、EAN、程式碼128和
DataMatrix。 查看所有支持的格式。 - 使用校正濾鏡預處理圖像,提升準確性。 包含先進的圖像校正功能,用於不完美條碼。
- 自動進行圖像方向校正以讀取掃描和影片幀。
- 使用多個核心進行批量處理,支持非同步支持。 學習如何非同步讀取條碼以獲取更佳性能。
- 自動找到多個條碼,具備可定制的讀取選項。 配置條碼讀取器設置以獲得最佳結果。
- 支持.NET Core和Framework上的32/64位架構,具備跨平台相容性。
- Runs on PC and mobile: Android, iOS, macOS, Linux. 查看Docker安裝指南以配置伺服器。
- 使用各種輸出選項生成多種格式的QR碼。 支持將條碼生產出多種格式。
如何使用IronBarcode生成QR碼?
以下部分演示了一些遵循SOLID原則的生產準備好的程式碼。 您將學習建立各種QR碼型別,實施自定義樣式,並確保可靠的掃描性能。 該程式庫的功能包括支持1D和2D條碼,不僅限於QR碼。 對於高級場景,請查看API引用以獲取完整的方法簽名。 探索演示以察看IronBarcode的功能表現。
如何設置新專案?
打開Visual Studio,從文件選單中選擇新專案。 對於企業部署,請考慮查看MSI安裝指南以實現自動化安裝。 開始概述提供完整的設置指南。
選擇控制台應用模板,然後點擊下一步。
輸入您的首選專案名稱(如QR Code Generator),並指定位置。 點擊下一步。
從下拉選單中選擇.NET框架(如.NET 6.0(長期支持)),然後點擊建立。 IronBarcode支持所有現代.NET版本,詳見相容性文件。 對於具體平台需求,請查看Blazor整合指南。
有哪些安裝方法可用?
使用四種不同的方法之一安裝IronBarcode,適合不同的工作流程。 該程式庫的即時演示展示了即時條碼識別功能。 進行快速測試,請探索條碼快速入門範例。
如何使用Visual Studio套件管理器UI安裝?
前往工具 > NuGet套件管理器 > 為方案管理NuGet套件...
或者在解決方案資源管理器中右鍵單擊您的專案,然後選擇管理NuGet套件...
點擊瀏覽,搜尋Barcode,選擇IronBarcode,選擇您的專案,然後點擊安裝。 針對平台特定安裝,請參閱NuGet套件指南。 如果您遇到問題,請查閱NuGet故障排除指南。 該程式庫支持多個部署場景,包括AWS Lambda和Azure Functions。
如何使用套件管理器控制台安裝?
打開工具 > NuGet套件管理器 > 套件管理器控制台並運行:
Install-Package BarCode
這會將該程式庫安裝到您當前的專案中。 對於容器化部署,請遵循Docker設置指南。 當使用授權金鑰時,請確保您的部署環境配置正確。
如何從NuGet或IronBarcode網站下載?
從NuGet畫廊網站下載或存取IronBarcode主頁獲取最新的.NET條碼DLL。 在解決方案資源管理器中通過新增 > 引用將DLL新增到您的專案。 有關故障排除DLL問題,請參閱缺少DLL指南。 遇到運行時問題時,請查閱運行時複製異常指南。
如何建立和自定義QR碼圖像?
如何生成基本的QR碼?
使用QRCodeWriter類建立QR碼。 完整範例請參見C# QR碼生成器教程。 該程式庫支持以多種格式建立條碼圖像:
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;
}
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 Function
CreateQrCode方法接受:
- 必需:要編碼的資料(String或Stream)
- 可選:圖形尺寸(預設500x500px)
- 可選:錯誤校正級別(低7%,中15%,高25%,最高30%)
- 可選:QR版本號(0為自動)
對於高性能批量處理,使用非同步操作和自定義樣式。 在不良條件下工作時,使用容錯功能。 讀取條碼教程演示了如何驗證生成的程式碼。
我可以在QR碼中編碼哪些資料型別?
生產應用程式常見的QR碼資料型別包括從不同來源建立條碼。 有關詳細範例,請參見建立QR碼範例。 IronBarcode支持Unicode條碼以進行國際字元編碼:
URL QR碼:
// 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
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;
}
Imports System
Imports System.Collections.Generic
Imports System.Web
' 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 = 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 Function
vCard聯繫資訊:
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");
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");
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碼新增公司標識。 有關完整的樣式選項,請參見自定義QR碼範例和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
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;
}
Imports System.Drawing
' Create QR code with embedded logo
Dim qrWithLogo = QRCodeWriter.CreateQrCodeWithLogo("Hello World", "logo.png", 500)
qrWithLogo.ChangeBarCodeColor(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(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");
' 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")
有哪些導出格式可用?
將QR碼保存為不同用途的多種格式。 了解更多資訊請參見保存條碼範例和條碼圖像生成器教程。 對於專門需求,請參見建立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");
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應用中實現QR碼?
對於ASP.NET MVC應用程式,實現無文件I/O流式傳輸。 該程式庫支持建立條碼為HTML以便直接整合到網站中:
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 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應用程式,實現可反應性地生成QR碼:
@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"
@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授權金鑰指南。
實現QR碼的最佳實踐是什麼?
我應該選擇哪一組誤差修正級別?
誤差修正影響彈性和容量。 有關詳細資料,請參見錯誤校正指南。 該程式庫包括用於提高準確性的機器學習信心閾值:
| 等級 | 恢復 | 使用情境 |
|---|---|---|
| 低 | 7% | 乾淨的數位環境 |
| 中 | 15% | 印刷品,名片 |
| 高 | 25% | 戶外標牌,手動處理的物品 |
| 最高 | 30% | 工業用途,新增標誌 |
QR碼應該是多大?
根據掃描距離計算最佳尺寸。 了解有關設置邊距以提高掃描效果。 邊距設置範例演示了最佳實踐:
// 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
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 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平台。## 常見整合場景
建立市場活動QR碼
要實現可追蹤的市場QR碼與自定義品牌,請參見讀取速度指南以管理條碼讀取速度:
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 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);
}
Imports System.Drawing
Imports System.Threading.Tasks
Public Class BarcodeGenerator
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(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
End Class
生成產品標籤QR碼
建立QR碼進行庫存管理。 處理特殊格式時,請參見GS1-128故障排除指南。 當處理特定條碼型別例如程式碼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 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
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應用程式中的QR碼生成。 該程式庫提供直觀的API、廣泛的文件,以及包括容錯功能、跨平台支持和性能優化在內的生產就緒功能。 通過更新日志保持最新功能。 對於重視安全性部署,請查看安全CVE披露。
在授權頁面查找授權資訊。 IronBarcode提供了免費的開發者授權,並包括支持與更新的高級選項。 對於現有客戶,請探索授權擴展和升級選項。 如果需要授權方面的幫助,請參見授權金鑰應用指南和web.config 授權設置。
對於生產部署,考慮AWS Lambda、Azure Functions和Docker容器的指南。 有關故障排除具體部署問題,請參閱AWS Lambda運行時指南和運行時複製異常解決方案。 遇到誤報時,請查閱詳細故障排除指南。
快速QR碼範例入門
只需幾行程式碼即可生成具有自定義樣式的QR碼。 有關更多範例,請存取建立條碼範例並探索讀取條碼教程以獲得完整的條碼解決方案。 其他範例包括從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();
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披露以滿足企業安全需求。
探索讀取條碼功能以了解條碼識別的全部功能,包括支持讀取程式碼39條碼和其他專業格式。 該程式庫的完整功能集使其適合需要可靠條碼生成功能和掃描功能的企業應用程式。
常見問題
如何在.NET應用程式中生成QR碼?
您可以透過使用IronBarcode中的QRCodeWriter.CreateQrCode方法來在.NET應用程式中生成QR碼。此方法允許您指定QR碼資料、大小和錯誤校正級別。
可以用於QR碼的自訂選項有哪些?
IronBarcode允許自訂QR碼,包括更改顏色和嵌入公司商標等圖像。這些功能提升了QR碼的視覺吸引力和品牌整合。
如何在我的專案中安裝IronBarcode程式庫?
您可以透過Visual Studio的NuGet套件管理器UI、套件管理器控制台或從NuGet網站下載來在您的專案中安裝IronBarcode。
IronBarcode 能夠從影片幀讀取條形碼嗎?
是的,IronBarcode可以處理影片幀,允許它通過糾正旋轉和噪音來實時讀取條碼,從而提高條碼讀取效率。
可以用於保存IronBarcode生成的QR碼的文件格式有哪些?
使用IronBarcode生成的QR碼可以保存為多種格式,包括PNG和HTML,為不同的應用需求提供彈性。
IronBarcode適用於主控台和網頁應用程式嗎?
是的,IronBarcode具有多功能性,可以在主控台和.NET MVC網頁應用程式中使用,使其成為多種開發環境的強大選擇。
IronBarcode的QR碼可用的錯誤校正級別有哪些?
IronBarcode支援四個水平的QR碼錯誤校正:低、中、高和最高,以確保即使QR碼被損壞,資料完整性也能得到保護。
IronBarcode的授權選項有哪些?
IronBarcode提供免費的開發者授權版本和包含額外支援和更新的高級版本,以滿足不同的開發和商業需求。
IronBarcode相容.NET Core和.NET Framework嗎?
是的,IronBarcode相容.NET Core和.NET Framework,支援包括32位和64位體系結構的多種架構。




