# Generate QR Codes in C# - Complete Tutorial for .NET Developers
<div class="alert alert-info iron-variant-1" role="alert">
<a href="/csharp/qr/">IronQR</a> to zupełnie nowa biblioteka QR Code .NET od Iron Software. Wykorzystaj najnowsze techniki uczenia maszynowego do odczytu kodów QR z dowolnego kąta z dokładnością 99,99%. Generuj i dostosowuj nowe kody QR z łatwością! <a href="/csharp/qr/tutorials/csharp-qr-code-generator/">Rozpocznij z IronQR</a> już teraz!
</div>
Potrzebujesz generować kody QR w swojej aplikacji C#? Ten samouczek pokazuje dokładnie, jak tworzyć, dostosowywać i weryfikować kody QR przy użyciu `IronBarcode` - od prostych jednowierszowych implementacji po zaawansowane funkcje, takie jak osadzanie logo i kodowanie danych binarnych.
Niezależnie od tego, czy tworzysz systemy inwentaryzacyjne, platformy biletowe, czy rozwiązania do płatności bezkontaktowych, nauczysz się implementować funkcjonalność kodów QR o jakości profesjonalnej w swoich aplikacjach .NET.
*as-heading:2(Szybki start: Tworzenie kodu QR w jednej linii z IronBarcode)*
Gotowy na szybkie wygenerowanie kodu QR? Oto jak można użyć API `QRCodeWriter` IronBarcode do wygenerowania kodu QR w zaledwie jednej linii kodu - dostosowanie jest opcjonalne, ale potężne.
```cs
:title=Generate QR in One Line—Try It Now
var qr = QRCodeWriter.CreateQrCode("https://ironsoftware.com/", 500, QRCodeWriter.QrErrorCorrectionLevel.Medium); qr.SaveAsPng("MyQR.png");
```
<div class="hsg-featured-snippet">
<h3>Minimalny proces (5 kroków)</h3>
<ol>
<li><a class="js-modal-open" data-modal-id="trial-license-after-download" href="https://www.nuget.org/packages/BarCode/">Zainstaluj IronBarcode przez NuGet</a></li>
<li>Stwórz kod QR w jednej linii: <code>QRCodeWriter.CreateQrCode()</code></li>
<li>Osadzaj logotypy używając <code>CreateQrCodeWithLogo()</code></li>
<li>Zweryfikuj czytelność za pomocą <code>GeneratedBarcode.Verify()</code></li>
<li>Koduj dane binarne dla zaawansowanych zastosowań</li>
</ol>
</div>
## How Do I Install a QR Code Library in C#?
Zainstaluj `IronBarcode` za pomocą Menedżera Pakietów NuGet, używając tego prostego polecenia:
```shell
:ProductInstall
```
[Zainstaluj przez NuGet](https://www.nuget.org/packages/BarCode/)
Alternatywnie, [pobierz bezpośrednio bibliotekę IronBarcode DLL](/csharp/barcode/packages/IronBarCode.zip) i dodaj ją jako odniesienie do swojego projektu.
### Importuj wymagane przestrzenie nazw
Dodaj te przestrzenie nazw, aby uzyskać dostęp do funkcji generowania kodów QR w IronBarcode:
```csharp
using IronBarCode;
// You may add styling with color, logo images or branding:
QRCodeLogo qrCodeLogo = new QRCodeLogo("visual-studio-logo.png");
GeneratedBarcode myQRCodeWithLogo = QRCodeWriter.CreateQrCodeWithLogo("https://ironsoftware.com/", qrCodeLogo);
myQRCodeWithLogo.ChangeBarCodeColor(System.Drawing.Color.DarkGreen);
// Save as PDF
myQRCodeWithLogo.SaveAsPdf("MyQRWithLogo.pdf");
// Also Save as HTML
myQRCodeWithLogo.SaveAsHtmlFile("MyQRWithLogo.html");
```
## How Can I Create a Simple QR Code in C#?
Wygeneruj kod QR przy użyciu zaledwie jednej linii kodu, korzystając z metody `IronBarcode`'s `CreateQrCode`:
```csharp
using IronBarCode;
using IronSoftware.Drawing;
using System;
// Verifying QR Codes
QRCodeLogo qrCodeLogo = new QRCodeLogo("visual-studio-logo.png");
GeneratedBarcode MyVerifiedQR = QRCodeWriter.CreateQrCodeWithLogo("https://ironsoftware.com/", qrCodeLogo);
MyVerifiedQR.ChangeBarCodeColor(System.Drawing.Color.LightBlue);
if (!MyVerifiedQR.Verify())
{
Console.WriteLine("\t LightBlue is not dark enough to be read accurately. Lets try DarkBlue");
MyVerifiedQR.ChangeBarCodeColor(Color.DarkBlue);
}
MyVerifiedQR.SaveAsHtmlFile("MyVerifiedQR.html");
// open the barcode html file in your default web browser
System.Diagnostics.Process.Start("MyVerifiedQR.html");
```
Metoda `CreateQrCode` akceptuje trzy parametry:
- **Zawartość tekstowa**: Dane do zakodowania (obsługuje URL-e, tekst lub dowolne dane tekstowe)
- **Rozmiar**: Wymiary pikselowe kwadratowego kodu QR (w tym przykładzie 500x500)
- **Korekcja błędów**: Określa czytelność w suboptymalnych warunkach (niska, średnia, kwartylowa lub wysoka)
Wyższe poziomy korekcji błędów pozwalają na czytelność kodów QR, nawet gdy są częściowo uszkodzone lub zasłonięte, jednak skutkują gęstszymi wzorami z mniejszymi modułami danych.

*Podstawowy kod QR zawierający tekst "hello world", wygenerowany przy rozmiarze 500x500 pikseli z średnią korekcją błędów*
## Jak dodać logo do mojego kodu QR?
Osadzanie logo w kodach QR zwiększa rozpoznawalność marki przy zachowaniu możliwości skanowania. `IronBarcode` automatycznie ustawia pozycję i rozmiar logo, aby zachować integralność kodu QR:
```csharp
using IronBarCode;
using System;
using System.Linq;
// Create Some Binary Data - This example equally well for Byte[] and System.IO.Stream
byte[] BinaryData = System.Text.Encoding.UTF8.GetBytes("https://ironsoftware.com/csharp/barcode/");
// WRITE QR with Binary Content
QRCodeWriter.CreateQrCode(BinaryData, 500).SaveAsImage("MyBinaryQR.png");
// READ QR with Binary Content
var MyReturnedData = BarcodeReader.Read("MyBinaryQR.png").First();
if (BinaryData.SequenceEqual(MyReturnedData.BinaryValue))
{
Console.WriteLine("\t Binary Data Read and Written Perfectly");
}
else
{
throw new Exception("Corrupted Data");
}
```
Metoda `CreateQrCodeWithLogo` inteligentnie obsługuje umieszczanie logo poprzez:
- Automatyczne dopasowanie rozmiaru logotypu do zachowania czytelności kodu QR
- Pozycjonowanie go w strefie ciszy, aby uniknąć uszkodzenia danych
- Zachowanie oryginalnych kolorów logotypu przy zmianie kolorów kodu QR
To podejście gwarantuje, że Twoje markowe kody QR pozostaną w pełni funkcjonalne na wszystkich urządzeniach do skanowania i aplikacjach.

*Kod QR z logo Visual Studio, demonstrujący automatyczne dostosowanie rozmiaru i pozycjonowania logotypów przez IronBarcode*
## Jak mogę eksportować kody QR do różnych formatów?
`IronBarcode` obsługuje wiele formatów eksportu dla różnych zastosowań. Eksportuj swoje kody QR jako obrazy, PDF-y lub pliki HTML:
```csharp
using IronBarCode;
using System;
using System.Linq;
BarcodeResults result = BarcodeReader.Read("QR.png", new BarcodeReaderOptions() { ExpectBarcodeTypes = BarcodeEncoding.QRCode });
if (result != null)
{
Console.WriteLine(result.First().Value);
}
```
Każdy format ma określone zastosowania:
- **PDF**: Idealny do [dokumentów do druku i raportów](/csharp/barcode/how-to/create-barcode-images/)
- **HTML**: Doskonały do integracji z witryną bez zewnętrznych zależności
- **PNG/JPEG**: Standardowe formaty obrazów do wszechstronnego użytku
## Jak mogę zweryfikować czytelność kodu QR po dostosowaniu?
Modyfikacje kolorów i dodanie logo mogą wpłynąć na skanowalność kodu QR. Użyj metody `Verify()`, aby zapewnić, że twoje dostosowane kody QR pozostają czytelne:
```csharp
using IronBarCode;
using System;
using System.Linq;
BarcodeReaderOptions options = new BarcodeReaderOptions
{
Speed = ReadingSpeed.Faster,
ExpectMultipleBarcodes = false,
ExpectBarcodeTypes = BarcodeEncoding.All,
Multithreaded = false,
MaxParallelThreads = 0,
CropArea = null,
UseCode39ExtendedMode = false,
RemoveFalsePositive = false,
ImageFilters = null
};
BarcodeResults result = BarcodeReader.Read("QR.png", options);
if (result != null)
{
Console.WriteLine(result.First().Value);
}
```
Metoda `Verify()` wykonuje kompleksowy test skanowania twojego kodu QR. Zapewnia to kompatybilność z różnymi urządzeniami skanującymi i warunkami oświetleniowymi przed wdrożeniem.

*Pomyślnie zweryfikowany kod QR w ciemnoniebieskim kolorze, pokazujący właściwy kontrast dla niezawodnego skanowania*
## Jak mogę zakodować dane binarne w kodach QR?
Kody QR doskonale przechowują dane binarne w sposób efektywny. Ta funkcja umożliwia zaawansowane zastosowania, takie jak szyfrowany transfer danych, udostępnianie plików i konfiguracja urządzeń IoT:
```csharp
using IronBarCode;
using System;
using System.Linq;
// Convert string to binary data
byte[] binaryData = System.Text.Encoding.UTF8.GetBytes("https://ironsoftware.com/csharp/barcode/");
// Create QR code from binary content
QRCodeWriter.CreateQrCode(binaryData, 500).SaveAsPng("MyBinaryQR.png");
// Read and verify binary data integrity
var myReturnedData = BarcodeReader.Read("MyBinaryQR.png").First();
// Confirm data matches original
if (binaryData.SequenceEqual(myReturnedData.BinaryValue))
{
Console.WriteLine("Binary Data Read and Written Perfectly");
}
else
{
throw new Exception("Data integrity check failed");
}
```
Kodowanie binarne w kodach QR oferuje kilka zalet:
- **Efektywność**: Przechowuje dane w zwartym formacie binarnym
- **Wszechstronność**: Obsługuje dowolny typ danych (pliki, zaszyfrowane treści, zserializowane obiekty)
- **Integralność**: Zachowuje dokładne sekwencje bajtów bez problemów kodowania
Ta funkcja wyróżnia `IronBarcode` spośród podstawowych bibliotek kodów QR, umożliwiając zaawansowane scenariusze wymiany danych w twoich aplikacjach.

*Kod QR przechowujący dane binarne, demonstrujący zaawansowane możliwości kodowania IronBarcode*
## How Do I Read QR Codes in C#?
`IronBarcode` zapewnia elastyczne możliwości odczytu kodów QR. Oto najprostsze podejście:
```csharp
using IronBarCode;
using System;
using System.Linq;
// Read QR code with optimized settings
BarcodeResults result = BarcodeReader.Read("QR.png", new BarcodeReaderOptions() {
ExpectBarcodeTypes = BarcodeEncoding.QRCode
});
// Extract and display the decoded value
if (result != null && result.Any())
{
Console.WriteLine(result.First().Value);
}
else
{
Console.WriteLine("No QR codes found in the image.");
}
```
Dla bardziej złożonych scenariuszy wymagających precyzyjnej kontroli:
```csharp
using IronBarCode;
using System;
using System.Linq;
// Configure advanced reading options
BarcodeReaderOptions options = new BarcodeReaderOptions
{
Speed = ReadingSpeed.Faster, // Optimize for speed
ExpectMultipleBarcodes = false, // Single QR code expected
ExpectBarcodeTypes = BarcodeEncoding.QRCode, // QR codes only
Multithreaded = true, // Enable parallel processing
MaxParallelThreads = 4, // Utilize multiple CPU cores
RemoveFalsePositive = true, // Filter out false detections
ImageFilters = new ImageFilterCollection() // Apply preprocessing
{
new AdaptiveThresholdFilter(), // Handle varying lighting
new ContrastFilter(), // Enhance contrast
new SharpenFilter() // Improve edge definition
}
};
// Read with advanced configuration
BarcodeResults result = BarcodeReader.Read("QR.png", options);
```
Te [zaawansowane opcje odczytu](/csharp/barcode/object-reference/api/IronBarCode.BarcodeReaderOptions.html) umożliwiają niezawodną detekcję kodów QR w trudnych warunkach, takich jak słabe oświetlenie, zniekształcenia obrazu, czy wydruki niskiej jakości.
## Co dalej w zakresie rozwoju kodów QR?
Teraz, gdy opanowałeś generowanie kodów QR przy użyciu `IronBarcode`, odkryj te zaawansowane tematy:
- [Wyciągaj kody QR z dokumentów PDF](/csharp/barcode/how-to/read-barcodes-from-pdf/)
- [Zaimplementuj przetwarzanie partii kodów QR](/csharp/barcode/tutorials/reading-barcodes/)
- [Stosuj poprawki obrazów dla trudnych skanów](/csharp/barcode/how-to/image-correction/)
### Pobierz zasoby
Uzyskaj dostęp do pełnego kodu źródłowego i przykładów:
- [Repozytorium GitHub](https://github.com/iron-software/Iron-Barcode-Generating-QR-Codes-In-CSharp-Tutorial)
- [Pobierz kod źródłowy](/downloads/assets/tutorials/creating-qr-barcodes-in-dot-net/Generating-QR-Codes-In-CSharp.zip)
### Dokumentacja API
Eksploruj pełen zestaw funkcji w dokumentacji API:
- [Dokumentacja klasy QRCodeWriter](/csharp/barcode/object-reference/api/IronBarCode.QRCodeWriter.html)
- [Dokumentacja klasy BarcodeReader](/csharp/barcode/object-reference/api/IronBarCode.BarcodeReader.html)
- [Dokumentacja klasy GeneratedBarcode](/csharp/barcode/object-reference/api/IronBarCode.GeneratedBarcode.html)
### Alternatywa: IronQR dla zaawansowanych aplikacji QR
Dla projektów wymagających najnowocześniejszych możliwości kodów QR, rozważ [IronQR](/csharp/qr/) - specjalistyczną bibliotekę kodów QR od Iron Software z funkcjami odczytu zasilanymi uczeniem maszynowym z dokładnością 99,99% oraz zaawansowanymi opcjami generacji.
Gotowy na wdrożenie kodów QR w swojej aplikacji .NET? [Bezpłatna próba](trial-license) lub [pobierz IronBarcode](download-modal) już dziś.
IronQR to zupełnie nowa biblioteka QR Code .NET od Iron Software. Wykorzystaj najnowsze techniki uczenia maszynowego do odczytu kodów QR z dowolnego kąta z dokładnością 99,99%. Generuj i dostosowuj nowe kody QR z łatwością! Rozpocznij z IronQR już teraz!
Potrzebujesz generować kody QR w swojej aplikacji C#? Ten samouczek pokazuje dokładnie, jak tworzyć, dostosowywać i weryfikować kody QR przy użyciu IronBarcode - od prostych jednowierszowych implementacji po zaawansowane funkcje, takie jak osadzanie logo i kodowanie danych binarnych.
Niezależnie od tego, czy tworzysz systemy inwentaryzacyjne, platformy biletowe, czy rozwiązania do płatności bezkontaktowych, nauczysz się implementować funkcjonalność kodów QR o jakości profesjonalnej w swoich aplikacjach .NET.
Szybki start: Tworzenie kodu QR w jednej linii z IronBarcode
Gotowy na szybkie wygenerowanie kodu QR? Oto jak można użyć API QRCodeWriter IronBarcode do wygenerowania kodu QR w zaledwie jednej linii kodu - dostosowanie jest opcjonalne, ale potężne.
1Install IronBarcode with NuGet Package Manager
PM > Install-Package BarCode
Install-Package BarCode
2Skopiuj i uruchom ten fragment kodu.
var qr = QRCodeWriter.CreateQrCode("https://ironsoftware.com/", 500, QRCodeWriter.QrErrorCorrectionLevel.Medium); qr.SaveAsPng("MyQR.png");
var qr = QRCodeWriter.CreateQrCode("https://ironsoftware.com/", 500, QRCodeWriter.QrErrorCorrectionLevel.Medium); qr.SaveAsPng("MyQR.png");
C#
3Wdrożenie do testowania w środowisku produkcyjnym
Dodaj te przestrzenie nazw, aby uzyskać dostęp do funkcji generowania kodów QR w IronBarcode:
using IronBarCode;// You may add styling with color, logo images or branding:QRCodeLogo qrCodeLogo = new QRCodeLogo("visual-studio-logo.png");GeneratedBarcode myQRCodeWithLogo = QRCodeWriter.CreateQrCodeWithLogo("https://ironsoftware.com/", qrCodeLogo);myQRCodeWithLogo.ChangeBarCodeColor(System.Drawing.Color.DarkGreen);// Save as PDFmyQRCodeWithLogo.SaveAsPdf("MyQRWithLogo.pdf");// Also Save as HTMLmyQRCodeWithLogo.SaveAsHtmlFile("MyQRWithLogo.html");
using IronBarCode;
// You may add styling with color, logo images or branding:
QRCodeLogo qrCodeLogo = new QRCodeLogo("visual-studio-logo.png");
GeneratedBarcode myQRCodeWithLogo = QRCodeWriter.CreateQrCodeWithLogo("https://ironsoftware.com/", qrCodeLogo);
myQRCodeWithLogo.ChangeBarCodeColor(System.Drawing.Color.DarkGreen);
// Save as PDF
myQRCodeWithLogo.SaveAsPdf("MyQRWithLogo.pdf");
// Also Save as HTML
myQRCodeWithLogo.SaveAsHtmlFile("MyQRWithLogo.html");
ImportsIronBarCode' You may add styling with color, logo images or branding:Private qrCodeLogo As New QRCodeLogo("visual-studio-logo.png")Private myQRCodeWithLogo AsGeneratedBarcode = QRCodeWriter.CreateQrCodeWithLogo("https://ironsoftware.com/", qrCodeLogo)myQRCodeWithLogo.ChangeBarCodeColor(System.Drawing.Color.DarkGreen)' Save as PDFmyQRCodeWithLogo.SaveAsPdf("MyQRWithLogo.pdf")' Also Save as HTMLmyQRCodeWithLogo.SaveAsHtmlFile("MyQRWithLogo.html")
Imports IronBarCode
' You may add styling with color, logo images or branding:
Private qrCodeLogo As New QRCodeLogo("visual-studio-logo.png")
Private myQRCodeWithLogo As GeneratedBarcode = QRCodeWriter.CreateQrCodeWithLogo("https://ironsoftware.com/", qrCodeLogo)
myQRCodeWithLogo.ChangeBarCodeColor(System.Drawing.Color.DarkGreen)
' Save as PDF
myQRCodeWithLogo.SaveAsPdf("MyQRWithLogo.pdf")
' Also Save as HTML
myQRCodeWithLogo.SaveAsHtmlFile("MyQRWithLogo.html")
How Can I Create a Simple QR Code in C#?
Wygeneruj kod QR przy użyciu zaledwie jednej linii kodu, korzystając z metody IronBarcode's CreateQrCode:
using IronBarCode;using IronSoftware.Drawing;using System;// Verifying QR CodesQRCodeLogo qrCodeLogo = new QRCodeLogo("visual-studio-logo.png");GeneratedBarcodeMyVerifiedQR = QRCodeWriter.CreateQrCodeWithLogo("https://ironsoftware.com/", qrCodeLogo);MyVerifiedQR.ChangeBarCodeColor(System.Drawing.Color.LightBlue);if (!MyVerifiedQR.Verify()){Console.WriteLine("\t LightBlue is not dark enough to be read accurately. Lets try DarkBlue");MyVerifiedQR.ChangeBarCodeColor(Color.DarkBlue);}MyVerifiedQR.SaveAsHtmlFile("MyVerifiedQR.html");// open the barcode html file in your default web browserSystem.Diagnostics.Process.Start("MyVerifiedQR.html");
using IronBarCode;
using IronSoftware.Drawing;
using System;
// Verifying QR Codes
QRCodeLogo qrCodeLogo = new QRCodeLogo("visual-studio-logo.png");
GeneratedBarcode MyVerifiedQR = QRCodeWriter.CreateQrCodeWithLogo("https://ironsoftware.com/", qrCodeLogo);
MyVerifiedQR.ChangeBarCodeColor(System.Drawing.Color.LightBlue);
if (!MyVerifiedQR.Verify())
{
Console.WriteLine("\t LightBlue is not dark enough to be read accurately. Lets try DarkBlue");
MyVerifiedQR.ChangeBarCodeColor(Color.DarkBlue);
}
MyVerifiedQR.SaveAsHtmlFile("MyVerifiedQR.html");
// open the barcode html file in your default web browser
System.Diagnostics.Process.Start("MyVerifiedQR.html");
ImportsMicrosoft.VisualBasicImportsIronBarCodeImportsIronSoftware.DrawingImportsSystem' Verifying QR CodesPrivate qrCodeLogo As New QRCodeLogo("visual-studio-logo.png")PrivateMyVerifiedQRAsGeneratedBarcode = QRCodeWriter.CreateQrCodeWithLogo("https://ironsoftware.com/", qrCodeLogo)MyVerifiedQR.ChangeBarCodeColor(System.Drawing.Color.LightBlue)IfNotMyVerifiedQR.Verify() ThenConsole.WriteLine(vbTab & " LightBlue is not dark enough to be read accurately. Lets try DarkBlue")MyVerifiedQR.ChangeBarCodeColor(Color.DarkBlue)End IfMyVerifiedQR.SaveAsHtmlFile("MyVerifiedQR.html")' open the barcode html file in your default web browserSystem.Diagnostics.Process.Start("MyVerifiedQR.html")
Imports Microsoft.VisualBasic
Imports IronBarCode
Imports IronSoftware.Drawing
Imports System
' Verifying QR Codes
Private qrCodeLogo As New QRCodeLogo("visual-studio-logo.png")
Private MyVerifiedQR As GeneratedBarcode = QRCodeWriter.CreateQrCodeWithLogo("https://ironsoftware.com/", qrCodeLogo)
MyVerifiedQR.ChangeBarCodeColor(System.Drawing.Color.LightBlue)
If Not MyVerifiedQR.Verify() Then
Console.WriteLine(vbTab & " LightBlue is not dark enough to be read accurately. Lets try DarkBlue")
MyVerifiedQR.ChangeBarCodeColor(Color.DarkBlue)
End If
MyVerifiedQR.SaveAsHtmlFile("MyVerifiedQR.html")
' open the barcode html file in your default web browser
System.Diagnostics.Process.Start("MyVerifiedQR.html")
Metoda CreateQrCode akceptuje trzy parametry:
Zawartość tekstowa: Dane do zakodowania (obsługuje URL-e, tekst lub dowolne dane tekstowe)
Rozmiar: Wymiary pikselowe kwadratowego kodu QR (w tym przykładzie 500x500)
Korekcja błędów: Określa czytelność w suboptymalnych warunkach (niska, średnia, kwartylowa lub wysoka)
Wyższe poziomy korekcji błędów pozwalają na czytelność kodów QR, nawet gdy są częściowo uszkodzone lub zasłonięte, jednak skutkują gęstszymi wzorami z mniejszymi modułami danych.
Podstawowy kod QR zawierający tekst "hello world", wygenerowany przy rozmiarze 500x500 pikseli z średnią korekcją błędów
Jak dodać logo do mojego kodu QR?
Osadzanie logo w kodach QR zwiększa rozpoznawalność marki przy zachowaniu możliwości skanowania. IronBarcode automatycznie ustawia pozycję i rozmiar logo, aby zachować integralność kodu QR:
using IronBarCode;using System;using System.Linq;// Create Some Binary Data - This example equally well for Byte[] and System.IO.Streambyte[] BinaryData = System.Text.Encoding.UTF8.GetBytes("https://ironsoftware.com/csharp/barcode/");// WRITE QR with Binary ContentQRCodeWriter.CreateQrCode(BinaryData, 500).SaveAsImage("MyBinaryQR.png");// READ QR with Binary ContentvarMyReturnedData = BarcodeReader.Read("MyBinaryQR.png").First();if (BinaryData.SequenceEqual(MyReturnedData.BinaryValue)){Console.WriteLine("\t Binary Data Read and Written Perfectly");}else{ throw new Exception("Corrupted Data");}
using IronBarCode;
using System;
using System.Linq;
// Create Some Binary Data - This example equally well for Byte[] and System.IO.Stream
byte[] BinaryData = System.Text.Encoding.UTF8.GetBytes("https://ironsoftware.com/csharp/barcode/");
// WRITE QR with Binary Content
QRCodeWriter.CreateQrCode(BinaryData, 500).SaveAsImage("MyBinaryQR.png");
// READ QR with Binary Content
var MyReturnedData = BarcodeReader.Read("MyBinaryQR.png").First();
if (BinaryData.SequenceEqual(MyReturnedData.BinaryValue))
{
Console.WriteLine("\t Binary Data Read and Written Perfectly");
}
else
{
throw new Exception("Corrupted Data");
}
ImportsMicrosoft.VisualBasicImportsIronBarCodeImportsSystemImportsSystem.Linq' Create Some Binary Data - This example equally well for Byte[] and System.IO.StreamPrivateBinaryData() AsByte = System.Text.Encoding.UTF8.GetBytes("https://ironsoftware.com/csharp/barcode/")' WRITE QR with Binary ContentQRCodeWriter.CreateQrCode(BinaryData, 500).SaveAsImage("MyBinaryQR.png")' READ QR with Binary ContentDimMyReturnedData = BarcodeReader.Read("MyBinaryQR.png").First()IfBinaryData.SequenceEqual(MyReturnedData.BinaryValue) ThenConsole.WriteLine(vbTab & " Binary Data Read and Written Perfectly")ElseThrow New Exception("Corrupted Data")End If
Imports Microsoft.VisualBasic
Imports IronBarCode
Imports System
Imports System.Linq
' Create Some Binary Data - This example equally well for Byte[] and System.IO.Stream
Private BinaryData() As Byte = System.Text.Encoding.UTF8.GetBytes("https://ironsoftware.com/csharp/barcode/")
' WRITE QR with Binary Content
QRCodeWriter.CreateQrCode(BinaryData, 500).SaveAsImage("MyBinaryQR.png")
' READ QR with Binary Content
Dim MyReturnedData = BarcodeReader.Read("MyBinaryQR.png").First()
If BinaryData.SequenceEqual(MyReturnedData.BinaryValue) Then
Console.WriteLine(vbTab & " Binary Data Read and Written Perfectly")
Else
Throw New Exception("Corrupted Data")
End If
Metoda CreateQrCodeWithLogo inteligentnie obsługuje umieszczanie logo poprzez:
Automatyczne dopasowanie rozmiaru logotypu do zachowania czytelności kodu QR
Pozycjonowanie go w strefie ciszy, aby uniknąć uszkodzenia danych
Zachowanie oryginalnych kolorów logotypu przy zmianie kolorów kodu QR
To podejście gwarantuje, że Twoje markowe kody QR pozostaną w pełni funkcjonalne na wszystkich urządzeniach do skanowania i aplikacjach.
Kod QR z logo Visual Studio, demonstrujący automatyczne dostosowanie rozmiaru i pozycjonowania logotypów przez IronBarcode
Jak mogę eksportować kody QR do różnych formatów?
IronBarcode obsługuje wiele formatów eksportu dla różnych zastosowań. Eksportuj swoje kody QR jako obrazy, PDF-y lub pliki HTML:
using IronBarCode;using System;using System.Linq;BarcodeResults result = BarcodeReader.Read("QR.png", new BarcodeReaderOptions() { ExpectBarcodeTypes = BarcodeEncoding.QRCode });if (result != null){Console.WriteLine(result.First().Value);}
using IronBarCode;
using System;
using System.Linq;
BarcodeResults result = BarcodeReader.Read("QR.png", new BarcodeReaderOptions() { ExpectBarcodeTypes = BarcodeEncoding.QRCode });
if (result != null)
{
Console.WriteLine(result.First().Value);
}
ImportsIronBarCodeImportsSystemImportsSystem.LinqPrivate result AsBarcodeResults = BarcodeReader.Read("QR.png", New BarcodeReaderOptions() With {.ExpectBarcodeTypes = BarcodeEncoding.QRCode})If result IsNot Nothing ThenConsole.WriteLine(result.First().Value)End If
Imports IronBarCode
Imports System
Imports System.Linq
Private result As BarcodeResults = BarcodeReader.Read("QR.png", New BarcodeReaderOptions() With {.ExpectBarcodeTypes = BarcodeEncoding.QRCode})
If result IsNot Nothing Then
Console.WriteLine(result.First().Value)
End If
HTML: Doskonały do integracji z witryną bez zewnętrznych zależności
PNG/JPEG: Standardowe formaty obrazów do wszechstronnego użytku
Jak mogę zweryfikować czytelność kodu QR po dostosowaniu?
Modyfikacje kolorów i dodanie logo mogą wpłynąć na skanowalność kodu QR. Użyj metody Verify(), aby zapewnić, że twoje dostosowane kody QR pozostają czytelne:
using IronBarCode;
using System;
using System.Linq;
BarcodeReaderOptions options = new BarcodeReaderOptions
{
Speed = ReadingSpeed.Faster,
ExpectMultipleBarcodes = false,
ExpectBarcodeTypes = BarcodeEncoding.All,
Multithreaded = false,
MaxParallelThreads = 0,
CropArea = null,
UseCode39ExtendedMode = false,
RemoveFalsePositive = false,
ImageFilters = null
};
BarcodeResults result = BarcodeReader.Read("QR.png", options);
if (result != null)
{
Console.WriteLine(result.First().Value);
}
ImportsIronBarCodeImportsSystemImportsSystem.LinqPrivate options As New BarcodeReaderOptionsWith { .Speed = ReadingSpeed.Faster, .ExpectMultipleBarcodes = False, .ExpectBarcodeTypes = BarcodeEncoding.All, .Multithreaded = False, .MaxParallelThreads = 0, .CropArea = Nothing, .UseCode39ExtendedMode = False, .RemoveFalsePositive = False, .ImageFilters = Nothing}Private result AsBarcodeResults = BarcodeReader.Read("QR.png", options)If result IsNot Nothing ThenConsole.WriteLine(result.First().Value)End If
Imports IronBarCode
Imports System
Imports System.Linq
Private options As New BarcodeReaderOptions With {
.Speed = ReadingSpeed.Faster,
.ExpectMultipleBarcodes = False,
.ExpectBarcodeTypes = BarcodeEncoding.All,
.Multithreaded = False,
.MaxParallelThreads = 0,
.CropArea = Nothing,
.UseCode39ExtendedMode = False,
.RemoveFalsePositive = False,
.ImageFilters = Nothing
}
Private result As BarcodeResults = BarcodeReader.Read("QR.png", options)
If result IsNot Nothing Then
Console.WriteLine(result.First().Value)
End If
Metoda Verify() wykonuje kompleksowy test skanowania twojego kodu QR. Zapewnia to kompatybilność z różnymi urządzeniami skanującymi i warunkami oświetleniowymi przed wdrożeniem.
Pomyślnie zweryfikowany kod QR w ciemnoniebieskim kolorze, pokazujący właściwy kontrast dla niezawodnego skanowania
Jak mogę zakodować dane binarne w kodach QR?
Kody QR doskonale przechowują dane binarne w sposób efektywny. Ta funkcja umożliwia zaawansowane zastosowania, takie jak szyfrowany transfer danych, udostępnianie plików i konfiguracja urządzeń IoT:
using IronBarCode;using System;using System.Linq;// Convert string to binary databyte[] binaryData = System.Text.Encoding.UTF8.GetBytes("https://ironsoftware.com/csharp/barcode/");// Create QR code from binary contentQRCodeWriter.CreateQrCode(binaryData, 500).SaveAsPng("MyBinaryQR.png");// Read and verify binary data integrityvar myReturnedData = BarcodeReader.Read("MyBinaryQR.png").First();// Confirm data matches originalif (binaryData.SequenceEqual(myReturnedData.BinaryValue)){Console.WriteLine("Binary Data Read and Written Perfectly");}else{ throw new Exception("Data integrity check failed");}
using IronBarCode;
using System;
using System.Linq;
// Convert string to binary data
byte[] binaryData = System.Text.Encoding.UTF8.GetBytes("https://ironsoftware.com/csharp/barcode/");
// Create QR code from binary content
QRCodeWriter.CreateQrCode(binaryData, 500).SaveAsPng("MyBinaryQR.png");
// Read and verify binary data integrity
var myReturnedData = BarcodeReader.Read("MyBinaryQR.png").First();
// Confirm data matches original
if (binaryData.SequenceEqual(myReturnedData.BinaryValue))
{
Console.WriteLine("Binary Data Read and Written Perfectly");
}
else
{
throw new Exception("Data integrity check failed");
}
ImportsIronBarCodeImportsSystemImportsSystem.Linq' Convert string to binary dataDim binaryData AsByte() = System.Text.Encoding.UTF8.GetBytes("https://ironsoftware.com/csharp/barcode/")' Create QR code from binary contentQRCodeWriter.CreateQrCode(binaryData, 500).SaveAsPng("MyBinaryQR.png")' Read and verify binary data integrityDim myReturnedData = BarcodeReader.Read("MyBinaryQR.png").First()' Confirm data matches originalIf binaryData.SequenceEqual(myReturnedData.BinaryValue) ThenConsole.WriteLine("Binary Data Read and Written Perfectly")ElseThrow New Exception("Data integrity check failed")End If
Imports IronBarCode
Imports System
Imports System.Linq
' Convert string to binary data
Dim binaryData As Byte() = System.Text.Encoding.UTF8.GetBytes("https://ironsoftware.com/csharp/barcode/")
' Create QR code from binary content
QRCodeWriter.CreateQrCode(binaryData, 500).SaveAsPng("MyBinaryQR.png")
' Read and verify binary data integrity
Dim myReturnedData = BarcodeReader.Read("MyBinaryQR.png").First()
' Confirm data matches original
If binaryData.SequenceEqual(myReturnedData.BinaryValue) Then
Console.WriteLine("Binary Data Read and Written Perfectly")
Else
Throw New Exception("Data integrity check failed")
End If
Kodowanie binarne w kodach QR oferuje kilka zalet:
Efektywność: Przechowuje dane w zwartym formacie binarnym
Wszechstronność: Obsługuje dowolny typ danych (pliki, zaszyfrowane treści, zserializowane obiekty)
Integralność: Zachowuje dokładne sekwencje bajtów bez problemów kodowania
Ta funkcja wyróżnia IronBarcode spośród podstawowych bibliotek kodów QR, umożliwiając zaawansowane scenariusze wymiany danych w twoich aplikacjach.
Kod QR przechowujący dane binarne, demonstrujący zaawansowane możliwości kodowania IronBarcode
How Do I Read QR Codes in C#?
IronBarcode zapewnia elastyczne możliwości odczytu kodów QR. Oto najprostsze podejście:
using IronBarCode;using System;using System.Linq;// Read QR code with optimized settingsBarcodeResults result = BarcodeReader.Read("QR.png", new BarcodeReaderOptions() { ExpectBarcodeTypes = BarcodeEncoding.QRCode});// Extract and display the decoded valueif (result != null && result.Any()){Console.WriteLine(result.First().Value);}else{Console.WriteLine("No QR codes found in the image.");}
using IronBarCode;
using System;
using System.Linq;
// Read QR code with optimized settings
BarcodeResults result = BarcodeReader.Read("QR.png", new BarcodeReaderOptions() {
ExpectBarcodeTypes = BarcodeEncoding.QRCode
});
// Extract and display the decoded value
if (result != null && result.Any())
{
Console.WriteLine(result.First().Value);
}
else
{
Console.WriteLine("No QR codes found in the image.");
}
ImportsIronBarCodeImportsSystemImportsSystem.Linq' Read QR code with optimized settingsPrivate result AsBarcodeResults = BarcodeReader.Read("QR.png", New BarcodeReaderOptions() With {.ExpectBarcodeTypes = BarcodeEncoding.QRCode})' Extract and display the decoded valueIf result IsNot NothingAndAlso result.Any() ThenConsole.WriteLine(result.First().Value)ElseConsole.WriteLine("No QR codes found in the image.")End If
Imports IronBarCode
Imports System
Imports System.Linq
' Read QR code with optimized settings
Private result As BarcodeResults = BarcodeReader.Read("QR.png", New BarcodeReaderOptions() With {.ExpectBarcodeTypes = BarcodeEncoding.QRCode})
' Extract and display the decoded value
If result IsNot Nothing AndAlso result.Any() Then
Console.WriteLine(result.First().Value)
Else
Console.WriteLine("No QR codes found in the image.")
End If
Dla bardziej złożonych scenariuszy wymagających precyzyjnej kontroli:
using IronBarCode;using System;using System.Linq;// Configure advanced reading optionsBarcodeReaderOptions options = new BarcodeReaderOptions{Speed = ReadingSpeed.Faster, // Optimize for speedExpectMultipleBarcodes = false, // Single QR code expectedExpectBarcodeTypes = BarcodeEncoding.QRCode, // QR codes onlyMultithreaded = true, // Enable parallel processingMaxParallelThreads = 4, // Utilize multiple CPU coresRemoveFalsePositive = true, // Filter out false detectionsImageFilters = new ImageFilterCollection() // Apply preprocessing { new AdaptiveThresholdFilter(), // Handle varying lighting new ContrastFilter(), // Enhance contrast new SharpenFilter() // Improve edge definition }};// Read with advanced configurationBarcodeResults result = BarcodeReader.Read("QR.png", options);
using IronBarCode;
using System;
using System.Linq;
// Configure advanced reading options
BarcodeReaderOptions options = new BarcodeReaderOptions
{
Speed = ReadingSpeed.Faster, // Optimize for speed
ExpectMultipleBarcodes = false, // Single QR code expected
ExpectBarcodeTypes = BarcodeEncoding.QRCode, // QR codes only
Multithreaded = true, // Enable parallel processing
MaxParallelThreads = 4, // Utilize multiple CPU cores
RemoveFalsePositive = true, // Filter out false detections
ImageFilters = new ImageFilterCollection() // Apply preprocessing
{
new AdaptiveThresholdFilter(), // Handle varying lighting
new ContrastFilter(), // Enhance contrast
new SharpenFilter() // Improve edge definition
}
};
// Read with advanced configuration
BarcodeResults result = BarcodeReader.Read("QR.png", options);
ImportsIronBarCodeImportsSystemImportsSystem.Linq' Configure advanced reading optionsDim options As New BarcodeReaderOptionsWith { .Speed = ReadingSpeed.Faster, ' Optimize for speed .ExpectMultipleBarcodes = False, ' Single QR code expected .ExpectBarcodeTypes = BarcodeEncoding.QRCode, ' QR codes only .Multithreaded = True, ' Enable parallel processing .MaxParallelThreads = 4, ' Utilize multiple CPU cores .RemoveFalsePositive = True, ' Filter out false detections .ImageFilters = New ImageFilterCollection() From { ' Apply preprocessing New AdaptiveThresholdFilter(), ' Handle varying lighting New ContrastFilter(), ' Enhance contrast New SharpenFilter() ' Improve edge definition }}' Read with advanced configurationDim result AsBarcodeResults = BarcodeReader.Read("QR.png", options)
Imports IronBarCode
Imports System
Imports System.Linq
' Configure advanced reading options
Dim options As New BarcodeReaderOptions With {
.Speed = ReadingSpeed.Faster, ' Optimize for speed
.ExpectMultipleBarcodes = False, ' Single QR code expected
.ExpectBarcodeTypes = BarcodeEncoding.QRCode, ' QR codes only
.Multithreaded = True, ' Enable parallel processing
.MaxParallelThreads = 4, ' Utilize multiple CPU cores
.RemoveFalsePositive = True, ' Filter out false detections
.ImageFilters = New ImageFilterCollection() From { ' Apply preprocessing
New AdaptiveThresholdFilter(), ' Handle varying lighting
New ContrastFilter(), ' Enhance contrast
New SharpenFilter() ' Improve edge definition
}
}
' Read with advanced configuration
Dim result As BarcodeResults = BarcodeReader.Read("QR.png", options)
Te zaawansowane opcje odczytu umożliwiają niezawodną detekcję kodów QR w trudnych warunkach, takich jak słabe oświetlenie, zniekształcenia obrazu, czy wydruki niskiej jakości.
Co dalej w zakresie rozwoju kodów QR?
Teraz, gdy opanowałeś generowanie kodów QR przy użyciu IronBarcode, odkryj te zaawansowane tematy:
Alternatywa: IronQR dla zaawansowanych aplikacji QR
Dla projektów wymagających najnowocześniejszych możliwości kodów QR, rozważ IronQR - specjalistyczną bibliotekę kodów QR od Iron Software z funkcjami odczytu zasilanymi uczeniem maszynowym z dokładnością 99,99% oraz zaawansowanymi opcjami generacji.
Możesz generować kod QR w C# używając metody IronBarcode's QRCodeWriter.CreateQrCode(). Ta metoda pozwala przekazać swoją zawartość, rozmiar i poziom korekcji błędów, aby efektywnie stworzyć kod QR.
Do jakich formatów obrazów mogą być eksportowane kody QR?
Z IronBarcode możesz eksportować kody QR do różnych formatów, w tym PNG, JPEG, PDF i HTML. Dostępne są metody takie jak SaveAsPng(), SaveAsJpeg(), SaveAsPdf() i SaveAsHtmlFile() do tego celu.
Jak mogę dodać logo firmy do kodu QR?
IronBarcode dostarcza metodę CreateQrCodeWithLogo(), gdzie możesz przekazać obiekt QRCodeLogo zawierający swoje logo. Biblioteka zapewnia, że logo jest właściwie rozmiarowane i pozycjonowane, aby kod QR pozostał czytelny.
Co to jest korekcja błędów w kodach QR i jaki poziom powinienem wybrać?
Korekcja błędów w kodach QR pozwala im pozostać skanowalnymi, nawet jeśli są częściowo uszkodzone. IronBarcode oferuje cztery poziomy: Niski (7%), Średni (15%), Kwartał (25%) i Wysoki (30%). Średni jest odpowiedni dla większości celów, a Wysoki jest idealny dla trudnych środowisk.
Jak zweryfikować czytelność dostosowanego kodu QR?
Możesz użyć metody Verify() na obiekcie GeneratedBarcode, aby upewnić się, że twój dostosowany kod QR pozostaje skanowalny po modyfikacjach, takich jak zmiany koloru czy dodanie logo.
Czy dane binarne mogą być kodowane w kodach QR?
Tak, metoda CreateQrCode() IronBarcode obsługuje kodowanie tablic bajtów, co pozwala na przechowywanie danych binarnych, takich jak pliki czy zaszyfrowane treści w kodach QR.
Jak czytac kody QR z obrazów w C#?
Aby czytać kody QR z obrazów w C#, użyj metody BarcodeReader.Read() w IronBarcode. Dla zoptymalizowanej wydajności, wybierz BarcodeEncoding.QRCode w BarcodeReaderOptions.
Jaka jest maksymalna pojemność danych kodu QR?
Generowane przez IronBarcode kody QR mogą zawierać do 2 953 bajtów, 4 296 znaków alfanumerycznych lub 7 089 cyfr, w zależności od wybranego poziomu korekcji błędów.
Jak mogę zmienić kolor kodu QR, aby pozostał skanowalny?
Metoda ChangeBarCodeColor() w IronBarcode pozwala na zmianę koloru kodu QR. Zawsze używaj metody Verify() po tej operacji, żeby upewnić się, że czytelność kodu QR nie jest wpływana przez zmianę koloru.
Jakie funkcje oferuje wyspecjalizowana biblioteka do kodów QR?
IronQR, wyspecjalizowana biblioteka od Iron Software, zawiera zaawansowane funkcje takie jak czytanie kodów QR z użyciem uczenia maszynowego z dokładnością 99,99% oraz solidne możliwości generowania, dostosowane do złożonych aplikacji.
Jacob Mellor jest Chief Technology Officer w Iron Software i wizjonerskim inżynierem, pionierem technologii C# PDF. Jako pierwotny deweloper głównej bazy kodowej Iron Software, kształtuje architekturę produktów firmy od jej początku, przekształcając ją wspólnie z CEO Cameron Rimington w firmę liczącą ponad 50 osób, obsługującą NASA, Teslę i światowe agencje rządowe.