Jak wygenerować kody QR i kody kreskowe w C# dla .NET 5, używając Iron Barcode

Barcodes & QRs in C# & VB.NET Applications

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

Odczytywanie i pisanie kodow kreskowych w jezyku C# i wszystkich innych jezykach .NET to latwy proces z nasza biblioteka oprogramowania IronBarcode.

Zainstaluj IronBarcode

Pierwszym krokiem w podrozy bedzie zainstalowanie IronBarcode, co mozna zrobic pobierajac z NuGet lub pobierajac DLL.

Aby zainstalowac pakiet NuGet IronBarcode, mozesz uzyc menedzera pakietow NuGet dla Visual Studio:

Install-Package BarCode

Alternatywnie, mozesz zainstalowac rowniez za pomoca .NET CLI:

dotnet add package IronBarCode

Odczyt kodu kreskowego lub QR code

Odczyt kodu kreskowego wymaga tylko jednej linijki kodu z IronBarcode.

:path=/static-assets/barcode/content-code-examples/get-started/get-started-1.cs
using IronBarCode;

BarcodeResults results = BarcodeReader.Read("QuickStart.jpg");
if (results != null)
{
    foreach (BarcodeResult result in results)
    {
        Console.WriteLine(result.Text);
    }
}
Imports IronBarCode

Private results As BarcodeResults = BarcodeReader.Read("QuickStart.jpg")
If results IsNot Nothing Then
	For Each result As BarcodeResult In results
		Console.WriteLine(result.Text)
	Next result
End If
$vbLabelText   $csharpLabel

Za pomoca tej jednej linijki kodu masz mozliwosc wykrycia i zeskanowania wszystkich typow kodow kreskowych z dokumentu wejsciowego z wyjatkowa wydajnoscia - wszystko, czego potrzebujesz, w jednym kroku! Ta metoda obsluguje szeroki wachlarz formatow obrazow, takich jak JPEG, PNG i BMP, a takze PDFow i formatow wieloklatkowych jak GIF i TIFF. Dostepne sa opcje konfiguracji dostosowywania dla ulepszonej wydajnosci.

Aby poprawić szybkość czytania, można utworzyć obiekt BarcodeReaderOptions z ustawieniem Speed skonfigurowanym pod kątem lepszej wydajności. Domyślnym ustawieniem jest Balanced, ale dostępna jest opcja Faster, która pozwala pominąć niektóre kontrole.

:path=/static-assets/barcode/content-code-examples/get-started/get-started-2.cs
using IronBarCode;

BarcodeReaderOptions myOptionsExample = new BarcodeReaderOptions()
{
    ExpectMultipleBarcodes = false,
    ExpectBarcodeTypes = BarcodeEncoding.QRCode | BarcodeEncoding.Code128,
    CropArea = new System.Drawing.Rectangle(100, 200, 300, 400),
};

BarcodeResults result = BarcodeReader.Read("QuickStart.jpg", myOptionsExample);
if (result != null)
{
    Console.WriteLine(result.First().Text);
}
Imports IronBarCode

Private myOptionsExample As New BarcodeReaderOptions() With {
	.ExpectMultipleBarcodes = False,
	.ExpectBarcodeTypes = BarcodeEncoding.QRCode Or BarcodeEncoding.Code128,
	.CropArea = New System.Drawing.Rectangle(100, 200, 300, 400)
}

Private result As BarcodeResults = BarcodeReader.Read("QuickStart.jpg", myOptionsExample)
If result IsNot Nothing Then
	Console.WriteLine(result.First().Text)
End If
$vbLabelText   $csharpLabel

Można również ustawić ScanMode na OnlyBasicScan, aby zoptymalizować proces czytania.

:path=/static-assets/barcode/content-code-examples/get-started/get-started-3.cs
using IronBarCode;

BarcodeResults results = BarcodeReader.Read("MultipleBarcodes.png");

// Loop through the results
foreach (BarcodeResult result in results)
{
    string value = result.Value;
    Bitmap img = result.BarcodeImage;
    BarcodeEncoding barcodeType = result.BarcodeType;
    byte[] binary = result.BinaryValue;
    Console.WriteLine(result.Value);
}
Imports IronBarCode

Private results As BarcodeResults = BarcodeReader.Read("MultipleBarcodes.png")

' Loop through the results
For Each result As BarcodeResult In results
	Dim value As String = result.Value
	Dim img As Bitmap = result.BarcodeImage
	Dim barcodeType As BarcodeEncoding = result.BarcodeType
	Dim binary() As Byte = result.BinaryValue
	Console.WriteLine(result.Value)
Next result
$vbLabelText   $csharpLabel

Inne konfiguracje obejmuja okreslenie formatow kodow kreskowych do skanowania, co moze pomoc w przyspieszeniu przetwarzania poprzez zmniejszenie niepotrzebnych skanow.

:path=/static-assets/barcode/content-code-examples/get-started/get-started-4.cs
using IronBarCode;

BarcodeResults pagedResults = BarcodeReader.Read("MultipleBarcodes.pdf");

// Loop through the results
foreach (BarcodeResult result in pagedResults)
{
    int pageNumber = result.PageNumber;
    string value = result.Value;
    Bitmap img = result.BarcodeImage;
    BarcodeEncoding barcodeType = result.BarcodeType;
    byte[] binary = result.BinaryValue;
    Console.WriteLine(result.Value);
}

// or from a multi-page  TIFF scan with image correction:
BarcodeResults multiFrameResults = BarcodeReader.Read(inputImage: "Multiframe.tiff", new BarcodeReaderOptions
{
    Speed = ReadingSpeed.Detailed,
    ExpectMultipleBarcodes = true,
    ExpectBarcodeTypes = BarcodeEncoding.Code128,
    Multithreaded = false,
    RemoveFalsePositive = false,
    ImageFilters = null
});
Imports IronBarCode

Private pagedResults As BarcodeResults = BarcodeReader.Read("MultipleBarcodes.pdf")

' Loop through the results
For Each result As BarcodeResult In pagedResults
	Dim pageNumber As Integer = result.PageNumber
	Dim value As String = result.Value
	Dim img As Bitmap = result.BarcodeImage
	Dim barcodeType As BarcodeEncoding = result.BarcodeType
	Dim binary() As Byte = result.BinaryValue
	Console.WriteLine(result.Value)
Next result

' or from a multi-page  TIFF scan with image correction:
Dim multiFrameResults As BarcodeResults = BarcodeReader.Read(inputImage:= "Multiframe.tiff", New BarcodeReaderOptions With {
	.Speed = ReadingSpeed.Detailed,
	.ExpectMultipleBarcodes = True,
	.ExpectBarcodeTypes = BarcodeEncoding.Code128,
	.Multithreaded = False,
	.RemoveFalsePositive = False,
	.ImageFilters = Nothing
})
$vbLabelText   $csharpLabel

Pisanie kodow kreskowych

Aby zapisać kody kreskowe za pomocą IronBarcode, używamy klasy BarcodeWriter.

:path=/static-assets/barcode/content-code-examples/get-started/get-started-5.cs
using IronBarCode;

GeneratedBarcode myBarcode = BarcodeWriter.CreateBarcode("https://ironsoftware.com/csharp/barcode", BarcodeEncoding.Code128);
myBarcode.SaveAsImage("myBarcode.png");
Imports IronBarCode

Private myBarcode As GeneratedBarcode = BarcodeWriter.CreateBarcode("https://ironsoftware.com/csharp/barcode", BarcodeEncoding.Code128)
myBarcode.SaveAsImage("myBarcode.png")
$vbLabelText   $csharpLabel

Stylizowanie kodow kreskowych

IronBarcode oferuje kilka opcji manipulacji wizualnym wygladem kodu kreskowego.

:path=/static-assets/barcode/content-code-examples/get-started/get-started-7.cs
using IronBarCode;

GeneratedBarcode myBarcode = BarcodeWriter.CreateBarcode("https://ironsoftware.com/csharp/barcode", BarcodeEncoding.Code128);
myBarcode.AddAnnotationTextAboveBarcode("Product URL:");
myBarcode.AddBarcodeValueTextBelowBarcode();
myBarcode.SetMargins(100);
myBarcode.ChangeBarCodeColor(IronSoftware.Drawing.Color.Purple);

// All major image formats supported as well as PDF and HTML
myBarcode.SaveAsPng("myBarcode.png");
Imports IronBarCode

Private myBarcode As GeneratedBarcode = BarcodeWriter.CreateBarcode("https://ironsoftware.com/csharp/barcode", BarcodeEncoding.Code128)
myBarcode.AddAnnotationTextAboveBarcode("Product URL:")
myBarcode.AddBarcodeValueTextBelowBarcode()
myBarcode.SetMargins(100)
myBarcode.ChangeBarCodeColor(IronSoftware.Drawing.Color.Purple)

' All major image formats supported as well as PDF and HTML
myBarcode.SaveAsPng("myBarcode.png")
$vbLabelText   $csharpLabel

Eksport kodow kreskowych jako HTML

IronBarcode moze eksportowac kody kreskowe jako dokumenty HTML lub jako czesc tresci HTML.

:path=/static-assets/barcode/content-code-examples/get-started/get-started-8.cs
using IronBarCode;

QRCodeWriter.CreateQrCode("https://ironsoftware.com", 500, QRCodeWriter.QrErrorCorrectionLevel.Medium).SaveAsPdf("MyQR.pdf");
Imports IronBarCode

QRCodeWriter.CreateQrCode("https://ironsoftware.com", 500, QRCodeWriter.QrErrorCorrectionLevel.Medium).SaveAsPdf("MyQR.pdf")
$vbLabelText   $csharpLabel

Generowanie kodow QR

W przypadku kodów QR należy użyć klasy QRCodeWriter, która zapewnia dodatkową konfigurację funkcji specyficznych dla kodów QR, takich jak korekcja błędów.

:path=/static-assets/barcode/content-code-examples/get-started/get-started-9.cs
using IronBarCode;
using IronSoftware.Drawing;

QRCodeLogo qrCodeLogo = new QRCodeLogo("visual-studio-logo.png");
GeneratedBarcode myQRCodeWithLogo = QRCodeWriter.CreateQrCodeWithLogo("https://ironsoftware.com/csharp/barcode/", qrCodeLogo);
myQRCodeWithLogo.ChangeBarCodeColor(Color.DarkGreen).SaveAsPdf("MyQRWithLogo.pdf");
Imports IronBarCode
Imports IronSoftware.Drawing

Private qrCodeLogo As New QRCodeLogo("visual-studio-logo.png")
Private myQRCodeWithLogo As GeneratedBarcode = QRCodeWriter.CreateQrCodeWithLogo("https://ironsoftware.com/csharp/barcode/", qrCodeLogo)
myQRCodeWithLogo.ChangeBarCodeColor(Color.DarkGreen).SaveAsPdf("MyQRWithLogo.pdf")
$vbLabelText   $csharpLabel

Obslugiwane formaty kodow kreskowych

IronBarcode obsluguje szeroka game powszechnie uzywanych formatow kodow kreskowych do odczytu i pisania:

  • QR, Micro QR i Rectangular Micro QR (rMQR) kody.
  • Inne dwuwymiarowe kody kreskowe, takie jak Aztec, Data Matrix, MaxiCode i PDF417.
  • Stosowane liniowe kody kreskowe, takie jak Databar.
  • Konwencjonalne jednowymiarowe formaty kodow kreskowych, takie jak UPC-A, UPC-E, EAN-8, EAN-13, Codabar, ITF, MSI i Plessey.

Dłączego warto wybrać IronBarcode?

IronBarcode oferuje przyjazne, latwe w uzyciu API dla deweloperow pozwalajace na odczyt i zapis kodow kreskowych dla .NET, ktore optymalizuje sie pod katem dokladnosci, precyzji i szybkiej obslugi w rzeczywistych sytuacjach.

Na przykład klasa BarcodeWriter automatycznie weryfikuje i koryguje "sumy kontrolne" w BARCODES-ach UPCA i UPCE oraz obsługuje ograniczenia dotyczące formatów liczbowych. IronBarcode pomaga deweloperom wybrac najodpowiedniejszy format kodu kreskowego dla ich danych.

Biblioteka jest solidna, z technikami wstepnego przetwarzania obrazow, takimi jak automatyczna rotacja i redukcja szumow na obrazach, aby zmaksymalizowac sukces wykrywania kodow kreskowych.

Ruszając naprzód

Aby w pelni korzystac z IronBarcode, zachecamy do przeczytania samouczkow w tej sekcji dokumentacji i odwiedzenia nas na GitHub.

Curtis Chau
Autor tekstów technicznych

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podrę...

Czytaj więcej
Gotowy, aby rozpocząć?
Nuget Pliki do pobrania 2,240,258 | Wersja: 2026.5 just released
Still Scrolling Icon

Wciąż przewijasz?

Czy chcesz szybko dowodu? PM > Install-Package BarCode
uruchom przykład zobacz, jak twoje ciągi zamieniają się w kody kreskowe.