Write QR Codes in C
Wprowadzenie
Dzięki IronQR programiści mogą tworzyć kody QR dla popularnych formatów obrazów i dostosowywać je poprzez dodawanie kolorów tła, marginesów, logotypów, a także umieszczanie ich w plikach PDF. Dla bardziej zaawansowanego użytku oferuje również kontrolę nad korekcją błędów i wersjami.
Ten artykuł omówi kluczowe funkcje IronQR z przykładami, pomagając Ci zrozumieć, jak używać go do tworzenia kodów QR w C# i efektywnie stosować w swoich projektach.
Spis treści
- Dane wejściowe
- Eksportowanie kodów QR
- Opcje kodów QR
- Stylizacja kodów QR
Rozpocznij używanie IronQR w swoim projekcie już dziś dzięki darmowej wersji próbnej.
Dane wejściowe
Tekst, URL-e, liczby
IronQR może konwertować szeroki zakres typów danych, w tym tekst, URL-e i liczby, na kody QR. Niezależnie od tego, czy tworzysz kody QR do linków lub tekstów w celach marketingowych i komunikacyjnych, kody numeryczne do zarządzania inwentarzem, czy kodowanie danych binarnych lub strumieni do czytelnych kodów QR, IronQR zapewnia wszystkie potrzebne wsparcie.
Dodatkowo, API jest proste w użyciu. Klasa QrWriter oferuje kilka przeciążeń, umożliwiając różne typy danych jako wejście, co redukuje złożoność i usprawnia proces.
:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-writing-1.cs
using IronQr;
using IronSoftware.Drawing;
string text = "Hello, World!";
string url = "https://ironsoftware.com/csharp/qr/";
string alphanumeric = "WATERSKU-12356";
// Create QR code
QrCode textQr = QrWriter.Write(text);
// Save QR code as a bitmap
AnyBitmap textQrImage = textQr.Save();
// Save QR code as file
textQrImage.SaveAs("textQr.png");
QrCode urlQr = QrWriter.Write(url);
AnyBitmap urlQrImage = urlQr.Save();
urlQrImage.SaveAs("urlQr.png");
QrCode alphanumericQr = QrWriter.Write(alphanumeric);
AnyBitmap alphanumericQrImage = alphanumericQr.Save();
alphanumericQrImage.SaveAs("alphanumericQr.png");
Imports IronQr
Imports IronSoftware.Drawing
Private text As String = "Hello, World!"
Private url As String = "https://ironsoftware.com/csharp/qr/"
Private alphanumeric As String = "WATERSKU-12356"
' Create QR code
Private textQr As QrCode = QrWriter.Write(text)
' Save QR code as a bitmap
Private textQrImage As AnyBitmap = textQr.Save()
' Save QR code as file
textQrImage.SaveAs("textQr.png")
Dim urlQr As QrCode = QrWriter.Write(url)
Dim urlQrImage As AnyBitmap = urlQr.Save()
urlQrImage.SaveAs("urlQr.png")
Dim alphanumericQr As QrCode = QrWriter.Write(alphanumeric)
Dim alphanumericQrImage As AnyBitmap = alphanumericQr.Save()
alphanumericQrImage.SaveAs("alphanumericQr.png")
Dane binarne i strumienie
Podobnie, możemy konwertować dane binarne i strumienie na kody QR, używając tej samej metody Write, jak wspomniano wcześniej.
:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-writing-2.cs
using IronQr;
using IronSoftware.Drawing;
using System.Text;
byte[] bytes = Encoding.UTF8.GetBytes("https://ironsoftware.com/csharp/qr/");
// Create QR code
QrCode bytesQr = QrWriter.Write(bytes);
// Save QR code as a bitmap
AnyBitmap qrImage = bytesQr.Save();
// Save QR code bitmap to file
qrImage.SaveAs("bytesQr.png");
Imports IronQr
Imports IronSoftware.Drawing
Imports System.Text
Private bytes() As Byte = Encoding.UTF8.GetBytes("https://ironsoftware.com/csharp/qr/")
' Create QR code
Private bytesQr As QrCode = QrWriter.Write(bytes)
' Save QR code as a bitmap
Private qrImage As AnyBitmap = bytesQr.Save()
' Save QR code bitmap to file
qrImage.SaveAs("bytesQr.png")
class Program
{
static void Main()
{
// Stwórz instance zapisywacza kodów QR
QrWriter writer = QrWriter.CreateQrCode();
// Przykładowe dane binarne
byte[] data = { 0x01, 0x02, 0x03, 0x04 };
// Zapisz dane binarne do kodu QR
writer.Write(data)
.SaveAs("binary-qr.png");
// Przykład użycia strumienia pamięci
using (MemoryStream stream = new MemoryStream(data))
{
writer.Write(stream)
.SaveAs("stream-qr.png");
}
}
}
Metoda Write ma przeciążenia, które przyjmują zarówno tablice bajtów, jak i strumienie jako dane wejściowe. Dla strumieni możemy stworzyć MemoryStream z tablicy bajtów, a następnie przekonwertować go na kod QR. Jest to przydatne, gdy użytkownicy potrzebują bardziej precyzyjnej kontroli nad kawałkami danych, ponieważ strumienie mogą być bardziej oszczędne pamięciowo.
:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-writing-3.cs
using IronQr;
using IronSoftware.Drawing;
using System.IO;
using System.Text;
MemoryStream stream = new MemoryStream(Encoding.UTF8.GetBytes("https://ironsoftware.com/csharp/qr/"));
// Create QR code
QrCode streamQr = QrWriter.Write(stream);
// Save QR code as a bitmap
AnyBitmap streamQrImage = streamQr.Save();
// Save QR code bitmap as file
streamQrImage.SaveAs("streamQr.png");
Imports IronQr
Imports IronSoftware.Drawing
Imports System.IO
Imports System.Text
Private stream As New MemoryStream(Encoding.UTF8.GetBytes("https://ironsoftware.com/csharp/qr/"))
' Create QR code
Private streamQr As QrCode = QrWriter.Write(stream)
' Save QR code as a bitmap
Private streamQrImage As AnyBitmap = streamQr.Save()
' Save QR code bitmap as file
streamQrImage.SaveAs("streamQr.png")
Eksportowanie kodów QR
IronQR jest elastyczny i dostosowuje się do różnych przypadków użycia wymagających różnych formatów plików. Możesz zapisać kody QR w wielu formatach, takich jak JPG, PNG, GIF, i TIFF, używając metody SaveAs.
Zapisz jako obraz
Metoda SaveAs z AnyBitmap automatycznie wykrywa format pliku na podstawie podanej ścieżki do pliku. W tym przykładzie określiłem ścieżkę do pliku kończącą się na .png.
SaveAs, pamiętaj, że nie ma domyślnego formatu obrazu. Jeśli wpiszesz nieznane rozszerzenie lub zrobisz literówkę w ścieżce do pliku, obraz zostanie zapisany z niepoprawnym rozszerzeniem.:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-writing-4.cs
using IronQr;
using IronSoftware.Drawing;
// Create a QR code object
QrCode qr = QrWriter.Write("hello world");
// Save QR code as a bitmap
AnyBitmap qrImage = qr.Save();
// Save QR code bitmap as file
qrImage.SaveAs("qr.png");
Imports IronQr
Imports IronSoftware.Drawing
' Create a QR code object
Private qr As QrCode = QrWriter.Write("hello world")
' Save QR code as a bitmap
Private qrImage As AnyBitmap = qr.Save()
' Save QR code bitmap as file
qrImage.SaveAs("qr.png")
System.Drawing.Images
Konwertowanie obrazów na obiekt System.Drawing.Images z Microsoft pozwala używać klasy Bitmap do zapisywania kodu QR do ścieżki do pliku. W tym przykładzie metoda Save zapisuje kod QR jako plik PNG na ścieżkę qrBitmap.png.
System.Drawing.Common jest wspierany tylko na platformie Windows.
:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-writing-5.cs
using IronQr;
using System.Drawing;
// Create a QR code object
QrCode qr = QrWriter.Write("hello world");
// Save QR code as a bitmap
Bitmap qrImage = qr.Save();
// Save QR code bitmap as file
qrImage.Save("qrBitmap.png");
Imports IronQr
Imports System.Drawing
' Create a QR code object
Private qr As QrCode = QrWriter.Write("hello world")
' Save QR code as a bitmap
Private qrImage As Bitmap = qr.Save()
' Save QR code bitmap as file
qrImage.Save("qrBitmap.png")
IronSoftware.Drawing
Ze względu na brak kompatybilności międzyplatformowej System.Drawing.Common, programiści mogą napotkać problemy podczas utrzymywania aplikacji międzyplatformowych. IronQR może wykorzystać zarówno System.Drawing.Common, jak i IronSoftware.Drawing.
IronQR używa klasy AnyBitmap z IronSoftware.Drawing, uniwersalnie kompatybilnej klasy Bitmap, która jest automatycznie rzutowana to:
System.Drawing.BitmapSystem.Drawing.ImageSkiaSharp.SKBitmapSixLabors.ImageSharpMicrosoft.Maui.Graphics.Platform.PlatformImage
Dzięki tej potężnej open-source'owej bibliotece, IronQR osiąga wsparcie międzyplatformowe i kompatybilność z .NET 8, .NET 7, .NET 6, .NET 5, .NET Core, .NET Standard, i .NET Framework 4.6.2+. Aby uzyskać więcej informacji na temat biblioteki, zapoznaj się z witryną IronSoftware.Drawing.
Dodaj na PDF
IronQR pozwala programistom dodawać kody QR do istniejących dokumentów PDF, ułatwiając innym szybki dostęp do linków lub dodatkowych zasobów. Obsługiwane jest dodawanie kodów QR zarówno na pojedynczych stronach, jak i na wielu stronach.
Dodaj do pojedynczej strony
Po stworzeniu kodu QR, wywołaj metodę StampToExistingPdfPage z obiektu QrCode. Metoda ta wymaga podania ścieżki do pliku, współrzędnych (x i y), numeru strony i opcjonalnego hasła, jeśli PDF jest zabezpieczony hasłem. Po podaniu argumentów metoda dodaje kod QR i zapisuje PDF.
:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-writing-6.cs
using IronQr;
// Create a QR code object
QrCode qr = QrWriter.Write("hello world");
string filepath = "example.pdf";
int x = 100;
int y = 150;
int page = 1;
// Stamp QR code to (100, 150) of the pdf on page 1
qr.StampToExistingPdfPage(filepath, x, y, page);
Imports IronQr
' Create a QR code object
Private qr As QrCode = QrWriter.Write("hello world")
Private filepath As String = "example.pdf"
Private x As Integer = 100
Private y As Integer = 150
Private page As Integer = 1
' Stamp QR code to (100, 150) of the pdf on page 1
qr.StampToExistingPdfPage(filepath, x, y, page)
Dodaj do wielu stron
Podobnie jak w powyższym przykładzie, główna różnica polega na tym, że metoda StampToExistingPdfPages przyjmuje listę numerów stron zamiast tylko jednej.
:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-writing-7.cs
using IronQr;
using System.Collections.Generic;
// Create a QR code object
QrCode qr = QrWriter.Write("hello world");
string filepath = "example.pdf";
int x = 100;
int y = 150;
List<int> pages = new List<int>();
pages.Add(1);
pages.Add(2);
pages.Add(3);
pages.Add(4);
// Stamp QR code to (100, 150) of the pdf on pages 1-4
qr.StampToExistingPdfPages(filepath, x, y, pages);
Imports IronQr
Imports System.Collections.Generic
' Create a QR code object
Private qr As QrCode = QrWriter.Write("hello world")
Private filepath As String = "example.pdf"
Private x As Integer = 100
Private y As Integer = 150
Private pages As New List(Of Integer)()
pages.Add(1)
pages.Add(2)
pages.Add(3)
pages.Add(4)
' Stamp QR code to (100, 150) of the pdf on pages 1-4
qr.StampToExistingPdfPages(filepath, x, y, pages)
Wyjście z obu przykładów

Opcje kodów QR
IronQR oferuje szerokie opcje dostosowywania w celu precyzyjnego dostrojenia działania i funkcjonalności kodów QR. Klasa QrOptions dostarcza kilka parametrów, takich jak kontrola wersji, typ kodowania, kodowanie znaków i poziomy korekcji błędów. Przyjrzyjmy się bliżej tym opcjom.
Kodowanie
IronQR obsługuje wiele typów kodów QR zarówno do tworzenia, jak i czytania. Poniżej wymienione są obsługiwane typy:
QRCode: Jest to standardowy kod QR, powszechnie używany obecnie. Może przechowywać do 7 089 znaków numerycznych lub 4 296 znaków alfanumerycznych.MicroQRCode: Mniejsza wersja standardowego kodu QR, może przechowywać do 35 znaków numerycznych lub 21 alfanumerycznych.RMQRCode: Prostokątny Mikro Kod QR jest kompaktową wersją kodu QR, oferując elastyczność w jego stosunku wymiarowym.
:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-writing-8.cs
using IronQr;
using IronSoftware.Drawing;
QrOptions options = new QrOptions
{
// Change encoding to micro QR code
Encoding = IronQr.Enum.QrEncoding.MicroQRCode,
};
// Create QR code
QrCode qr = QrWriter.Write("1234", options);
// Save QR code as a bitmap
AnyBitmap qrImage = qr.Save();
// Save QR code bitmap as file
qrImage.SaveAs("qrImage.png");
Imports IronQr
Imports IronSoftware.Drawing
Private options As New QrOptions With {.Encoding = IronQr.Enum.QrEncoding.MicroQRCode}
' Create QR code
Private qr As QrCode = QrWriter.Write("1234", options)
' Save QR code as a bitmap
Private qrImage As AnyBitmap = qr.Save()
' Save QR code bitmap as file
qrImage.SaveAs("qrImage.png")
Korekcja błędów
IronQR używa standardowej korekcji błędów QR, aby zapewnić, że wszystkie generowane kody QR są odporne na błędy i niezawodne, nawet w trudnych warunkach. Dodatkowo, IronQR pozwala na pełną kontrolę nad poziomem korekcji błędów w celu dalszego dostrojenia.
Dostępne są cztery poziomy korekcji błędów, zapewniane przez QrErrorCorrectionLevel:
Highest: 30% korekcji błędówHigh: 25% korekcji błędówMedium: 15% korekcji błędówLow: 7% korekcji błędów
:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-writing-9.cs
using IronQr;
using IronSoftware.Drawing;
QrOptions options = new QrOptions
{
// Change error correction level to medium
ErrorCorrectionLevel = QrErrorCorrectionLevel.Medium,
};
// Create QR code
QrCode qr = QrWriter.Write("1234", options);
// Save QR code as a bitmap
AnyBitmap qrImage = qr.Save();
// Save QR code bitmap as file
qrImage.SaveAs("qrImage.png");
Imports IronQr
Imports IronSoftware.Drawing
Private options As New QrOptions With {.ErrorCorrectionLevel = QrErrorCorrectionLevel.Medium}
' Create QR code
Private qr As QrCode = QrWriter.Write("1234", options)
' Save QR code as a bitmap
Private qrImage As AnyBitmap = qr.Save()
' Save QR code bitmap as file
qrImage.SaveAs("qrImage.png")
Wyższa korekcja błędów zapewnia większą odporność na błędy podczas czytania kodu QR, co zwiększa prawdopodobieństwo jego zeskanowania w niższych rozdzielczościach w porównaniu z kodem o niskiej korekcji błędów. Możesz przetestować różne opcje w zależności od swoich potrzeb.

Wersja kodu QR
Możesz dostosować wersję kodu QR, aby przechowywać więcej danych. Wyższe wersje są idealne do inwentaryzacji lub logistyki, podczas gdy niższe wersje dobrze sprawdzają się dla mniejszych danych, takich jak krótkie URL-e. Wystarczy zmienić właściwość Version w obiekcie QrOptions i przekazać ją do metody Write, aby wygenerować kod QR zgodnie z potrzebami.
:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-writing-10.cs
using IronQr;
using IronSoftware.Drawing;
QrOptions options = new QrOptions
{
// Change QR code version to 40
Version = 40,
};
// Create QR code
QrCode qr = QrWriter.Write("1234", options);
// Save QR code as a bitmap
AnyBitmap qrImage = qr.Save();
// Save QR code bitmap as file
qrImage.SaveAs("qrImage.png");
Imports IronQr
Imports IronSoftware.Drawing
Private options As New QrOptions With {.Version = 40}
' Create QR code
Private qr As QrCode = QrWriter.Write("1234", options)
' Save QR code as a bitmap
Private qrImage As AnyBitmap = qr.Save()
' Save QR code bitmap as file
qrImage.SaveAs("qrImage.png")

Jak widać na wyjściu, wersja 40 kodu QR jest znacznie bardziej skomplikowana i gęsta w porównaniu z wersją 5.
Niższe wersje wymagają bardziej precyzyjnego skanowania i mogą być trudne do zeskanowania bez skanerów o wyższej rozdzielczości. Jednak wyższe wersje są łatwiejsze do skanowania, nawet przy użyciu kamer o niskiej rozdzielczości. Aby uzyskać bardziej szczegółowy przewodnik po wyborze wersji QR na podstawie pojemności, zapoznaj się z listą wersji QR.
Kodowanie znaków
Ta opcja określa, jak kod QR jest kodowany. W naszym przykładzie zmieniliśmy go na "UTF-32", podczas gdy domyślnym kodowaniem znaków jest "ISO-8859-1".
:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-writing-11.cs
using IronQr;
using IronSoftware.Drawing;
QrOptions options = new QrOptions
{
// Change character encoding to UTF-32
CharacterEncoding = "UTF-32"
};
// Create QR code
QrCode qr = QrWriter.Write("1234", options);
// Save QR code as a bitmap
AnyBitmap qrImage = qr.Save();
// Save QR code bitmap as file
qrImage.SaveAs("qrImage.png");
Imports IronQr
Imports IronSoftware.Drawing
Private options As New QrOptions With {.CharacterEncoding = "UTF-32"}
' Create QR code
Private qr As QrCode = QrWriter.Write("1234", options)
' Save QR code as a bitmap
Private qrImage As AnyBitmap = qr.Save()
' Save QR code bitmap as file
qrImage.SaveAs("qrImage.png")
Stylizacja kodów QR
Oprócz łatwych w użyciu metod i elastyczności w obsłudze danych wejściowych, IronQR oferuje wiele opcji dla dostosowywania i stylizacji kodów QR, aby były one unikalne. Klasa QrStyleOptions dostarcza różnych parametrów do dostosowywania wszystkich aspektów kodu QR. Przyjrzyjmy się dostępnym opcjom.
Zmiana rozmiaru
Aby zmienić rozmiar kodu QR, możesz ustawić właściwość Dimensions obiektu QrStyleOptions, a następnie przekazać go do metody Save. Domyślnie kod QR jest zapisany z rozdzielczością 300px. W tym przykładzie zapisaliśmy kod QR z rozdzielczością 600px zamiast 300px.
:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-writing-12.cs
using IronQr;
using IronSoftware.Drawing;
QrStyleOptions styleOptions = new QrStyleOptions()
{
// Change the dimensions to 600px
Dimensions = 600,
};
string url = "https://ironsoftware.com/csharp/qr/";
// Create QR code
QrCode qr = QrWriter.Write(url);
// Save QR code as a bitmap
AnyBitmap qrImage = qr.Save(styleOptions);
// Save QR code bitmap as file
qrImage.SaveAs("qrURLResized.png");
Imports IronQr
Imports IronSoftware.Drawing
Private styleOptions As New QrStyleOptions() With {.Dimensions = 600}
Private url As String = "https://ironsoftware.com/csharp/qr/"
' Create QR code
Private qr As QrCode = QrWriter.Write(url)
' Save QR code as a bitmap
Private qrImage As AnyBitmap = qr.Save(styleOptions)
' Save QR code bitmap as file
qrImage.SaveAs("qrURLResized.png")

Marginesy i obramowanie
Aby dostosować marginesy i obramowania, możemy użyć właściwości Margins klasy QrStyleOptions. Ta właściwość kontroluje marginesy kodu QR ze wszystkich stron, z domyślną wartością 10px. W naszym przykładzie ustawiliśmy margines na 20px.
:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-writing-13.cs
using IronQr;
using IronSoftware.Drawing;
QrStyleOptions styleOptions = new QrStyleOptions()
{
// Change margins to 20px
Margins = 20
};
string url = "https://ironsoftware.com/csharp/qr/";
// Create QR code
QrCode qr = QrWriter.Write(url);
// Save QR code as a bitmap
AnyBitmap qrImage = qr.Save(styleOptions);
// Save QR code bitmap as file
qrImage.SaveAs("qrURLMarginMultiple.png");
Imports IronQr
Imports IronSoftware.Drawing
Private styleOptions As New QrStyleOptions() With {.Margins = 20}
Private url As String = "https://ironsoftware.com/csharp/qr/"
' Create QR code
Private qr As QrCode = QrWriter.Write(url)
' Save QR code as a bitmap
Private qrImage As AnyBitmap = qr.Save(styleOptions)
' Save QR code bitmap as file
qrImage.SaveAs("qrURLMarginMultiple.png")

Zmień marginesy dla każdej strony
IronQR pozwala również użytkownikom określić różne marginesy dla każdej strony, oferując bardziej precyzyjną kontrolę.
:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-writing-14.cs
using IronQr;
using IronSoftware.Drawing;
QrStyleOptions styleOptions = new QrStyleOptions()
{
// Change margins
MarginBottom = 30,
MarginTop = 100,
MarginRight = 40,
MarginLeft = 20,
};
string url = "https://ironsoftware.com/csharp/qr/";
// Create QR code
QrCode qr = QrWriter.Write(url);
// Save QR code as a bitmap
AnyBitmap qrImage = qr.Save(styleOptions);
// Save QR code bitmap as file
qrImage.SaveAs("qrURLMarginMultiple.png");
Imports IronQr
Imports IronSoftware.Drawing
Private styleOptions As New QrStyleOptions() With {
.MarginBottom = 30,
.MarginTop = 100,
.MarginRight = 40,
.MarginLeft = 20
}
Private url As String = "https://ironsoftware.com/csharp/qr/"
' Create QR code
Private qr As QrCode = QrWriter.Write(url)
' Save QR code as a bitmap
Private qrImage As AnyBitmap = qr.Save(styleOptions)
' Save QR code bitmap as file
qrImage.SaveAs("qrURLMarginMultiple.png")
Zmiana kolorów
Możemy dodać kolory do kodu QR i jego tła, używając klasy QrStyleOptions. Dostosowywanie kolorów sprawia, że kod QR staje się bardziej unikalny i przyciągający wzrok. Możesz zmienić kolor używając właściwości Color i BackgroundColor. Upewnij się, że zaimportujesz IronSoftware.Drawing, aby uzyskać listę dostępnych kolorów do przypisania.
:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-writing-15.cs
using IronQr;
using IronSoftware.Drawing;
// Load new logo image
AnyBitmap logo = AnyBitmap.FromFile("sample.png");
// Add new logo to QR code style options
QrStyleOptions styleOptions = new QrStyleOptions()
{
Logo = new QrLogo(logo, 50, 50, 10),
};
string url = "https://ironsoftware.com/csharp/qr/";
// Create QR code
QrCode qr = QrWriter.Write(url);
// Save QR code as a bitmap
AnyBitmap qrImage = qr.Save(styleOptions);
// Save QR code bitmap as file
qrImage.SaveAs("qrURLColored.png");
Imports IronQr
Imports IronSoftware.Drawing
' Load new logo image
Dim logo As AnyBitmap = AnyBitmap.FromFile("sample.png")
' Add new logo to QR code style options
Dim styleOptions As New QrStyleOptions() With {
.Logo = New QrLogo(logo, 50, 50, 10)
}
Dim url As String = "https://ironsoftware.com/csharp/qr/"
' Create QR code
Dim qr As QrCode = QrWriter.Write(url)
' Save QR code as a bitmap
Dim qrImage As AnyBitmap = qr.Save(styleOptions)
' Save QR code bitmap as file
qrImage.SaveAs("qrURLColored.png")

Dodaj logo
Oprócz kolorów i wymiarów, możesz również dodać logo swojej firmy do kodu QR. Pomaga to użytkownikom natychmiast rozpoznać i powiązać kod QR z Twoją marką. Właściwość Logo ułatwia dostosowanie kodu QR poprzez dodanie logo Twojej firmy.
:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-writing-15.cs
using IronQr;
using IronSoftware.Drawing;
// Load new logo image
AnyBitmap logo = AnyBitmap.FromFile("sample.png");
// Add new logo to QR code style options
QrStyleOptions styleOptions = new QrStyleOptions()
{
Logo = new QrLogo(logo, 50, 50, 10),
};
string url = "https://ironsoftware.com/csharp/qr/";
// Create QR code
QrCode qr = QrWriter.Write(url);
// Save QR code as a bitmap
AnyBitmap qrImage = qr.Save(styleOptions);
// Save QR code bitmap as file
qrImage.SaveAs("qrURLColored.png");
Imports IronQr
Imports IronSoftware.Drawing
' Load new logo image
Dim logo As AnyBitmap = AnyBitmap.FromFile("sample.png")
' Add new logo to QR code style options
Dim styleOptions As New QrStyleOptions() With {
.Logo = New QrLogo(logo, 50, 50, 10)
}
Dim url As String = "https://ironsoftware.com/csharp/qr/"
' Create QR code
Dim qr As QrCode = QrWriter.Write(url)
' Save QR code as a bitmap
Dim qrImage As AnyBitmap = qr.Save(styleOptions)
' Save QR code bitmap as file
qrImage.SaveAs("qrURLColored.png")

Dostosuj logo
Klasa QrLogo umożliwia dalsze dostosowywanie wyglądu logo. Poniżej znajdują się dostępne właściwości:
Bitmap: Reprezentuje obraz, który chcesz użyć jako logo.Width: Reprezentuje szerokość logo. Domyślną wartością jest 0.Height: Reprezentuje wysokość logo. Domyślną wartością jest 0.CornerRadius: Reprezentuje promień zaokrąglenia narożników logo. Domyślnie ustawiony jest na 0, co oznacza, że logo będzie miało kwadratowe narożniki.
using IronQRCode;
using IronSoftware.Drawing;
class Program
{
static void Main()
{
`QrStyleOptions` styleOptions = new `QrStyleOptions`
{
`Logo` = new `QrLogo`
{
`Bitmap` = `AnyBitmap.FromBitmap`("path/to/logo.png"),
`Width` = 50,
`Height` = 50,
`CornerRadius` = 5
}
};
`QrCode` qr = `QrWriter.CreateQrCode`()
.Write("Customized Logo Example");
qr.SaveAs("example-customized-logo-qr.png", styleOptions);
}
}
using IronQRCode;
using IronSoftware.Drawing;
class Program
{
static void Main()
{
`QrStyleOptions` styleOptions = new `QrStyleOptions`
{
`Logo` = new `QrLogo`
{
`Bitmap` = `AnyBitmap.FromBitmap`("path/to/logo.png"),
`Width` = 50,
`Height` = 50,
`CornerRadius` = 5
}
};
`QrCode` qr = `QrWriter.CreateQrCode`()
.Write("Customized Logo Example");
qr.SaveAs("example-customized-logo-qr.png", styleOptions);
}
}
Imports IronQRCode
Imports IronSoftware.Drawing
Class Program
Shared Sub Main()
Dim styleOptions As New QrStyleOptions With {
.Logo = New QrLogo With {
.Bitmap = AnyBitmap.FromBitmap("path/to/logo.png"),
.Width = 50,
.Height = 50,
.CornerRadius = 5
}
}
Dim qr As QrCode = QrWriter.CreateQrCode().Write("Customized Logo Example")
qr.SaveAs("example-customized-logo-qr.png", styleOptions)
End Sub
End Class
Sprawdzanie tolerancji błędów
Oprócz szerokiej elastyczności w formatach plików i dostosowaniach, elastyczność dotyczy także aspektów debugowania i obsługi błędów. IronQR zapewnia różnorodne narzędzia dla programistów do obsługi wyjątków i pisania testów jednostkowych w celu weryfikacji aplikacji.
Kontrolne sumy
Kody QR czasami mogą ulec uszkodzeniu, ale IronQR zawiera wbudowane sumy kontrolne i korekcję danych, aby utrzymać ich funkcjonalność. Używa algorytmu korekcji błędów Reed-Solomon, zapewniając, że kody QR pozostają odporne na błędy.
Szczegółowe komunikaty o błędach
IronQR zapewnia szczegółowe komunikaty o błędach, które pomagają użytkownikom szybko zidentyfikować problemy. Te komunikaty zawierają listę specyficznych wyjątków, ułatwiając debugowanie i rozwiązywanie problemów. Poniżej znajduje się lista IronQrException używanych przez bibliotekę.
IronQrEncodingException: PodklasaIronQrException, występuje, gdy występuje problem z zapisaniem kodu QR. Na przykład pojawi się, jeśli użytkownik spróbuje stworzyć kod QR z pustego ciągu.

-
IronQrFileException: PodklasaIronQrException, występuje, gdy pojawia się problem związany z plikiem. IronQrPdfPasswordExcception: PodklasaIronQrException, występuje, gdy PDF, który użytkownik próbuje ostemplować, jest zabezpieczony hasłem i nie podano hasła lub podano nieprawidłowe hasło. Obejmuje również inne błędy związane z PDF, takie jak gdy nie można otworzyć PDF, jak pokazano w przykładzie.

Wnioski
IronQR zapewnia kompleksowy zestaw metod do generowania i dostosowywania kodów QR w aplikacjach .NET. Dzięki swoim solidnym funkcjom, programiści mogą łatwo tworzyć kody QR z różnymi kodowaniami danych, stylami wizualnymi i poziomami korekcji błędów. Wsparcie biblioteki dla różnorodnych formatów wyjściowych i bezproblemowa integracja z istniejącymi dokumentami sprawiają, że jest to wszechstronne narzędzie dla każdego projektu kodów QR. Niezależnie od tego, czy potrzebujesz podstawowych kodów QR, czy zaawansowanych, markowych rozwiązań, IronQR oferuje elastyczność i funkcjonalność, aby efektywnie spełniać Twoje potrzeby.
Aby dowiedzieć się więcej, sprawdź dokumentację IronQR, zacznij eksplorację z bezpłatną wersją próbną i przejrzyj opcje licencjonowania, aby zobaczyć, która plan najlepiej odpowiada Twoim potrzebom.
Często Zadawane Pytania
Jak wygenerować kod QR w języku C#?
Kod QR można wygenerować w języku C# za pomocą klasy QrWriter dostępnej w bibliotece IronQR. Klasa ta umożliwia zapisanie danych w kodzie QR i zapisanie go w różnych formatach obrazu. Wystarczy użyć metody Write do zakodowania danych oraz SaveAs do wygenerowania kodu QR.
Jakie rodzaje dostosowań mogę zastosować do kodów QR?
IronQR pozwala dostosowywać kody QR poprzez zmianę ich kolorów, dodawanie logo, zmianę rozmiaru i dostosowywanie marginesów. Aby zastosować te dostosowania, należy użyć klasy QrStyleOptions.
Czy mogę osadzić kod QR w pliku PDF za pomocą języka C#?
Tak, można osadzić kod QR w pliku PDF za pomocą IronQR, korzystając z metod StampToExistingPdfPage lub StampToExistingPdfPages. Pozwala to określić lokalizację i strony, na których ma się pojawić kod QR.
Jak radzić sobie z błędami podczas tworzenia kodów QR?
IronQR posiada solidne funkcje obsługi błędów, wyświetlając komunikaty o błędach, takie jak IronQrEncodingException, IronQrFileException i IronQrPdfPasswordException, aby pomóc w debugowaniu i rozwiązywaniu problemów.
Do jakich formatów mogę eksportować kody QR?
Za pomocą IronQR można eksportować kody QR do różnych formatów, w tym JPG, PNG, GIF i TIFF. Metoda SaveAs pozwala określić żądany format wyjściowy kodu QR.
Czy ta biblioteka obsługuje tworzenie oprogramowania wieloplatformowego?
Tak, IronQR obsługuje tworzenie oprogramowania wieloplatformowego za pośrednictwem biblioteki IronSoftware.Drawing, dzięki czemu jest kompatybilny z różnymi wersjami .NET i platformami.
Czy można dodać logo do kodu QR w celu budowania marki?
Możesz dodać logo do kodu QR za pomocą IronQR, ustawiając właściwość Logo w klasie QrStyleOptions, co pozwala na tworzenie markowych kodów QR z dostosowanym wyglądem logo.
Jaki jest cel korekcji błędów w kodach QR?
Korekcja błędów w kodach QR, obsługiwana przez IronQR, zapewnia, że kody QR pozostają czytelne nawet w przypadku częściowego uszkodzenia. Funkcja ta oferuje cztery poziomy korekcji: najwyższy, wysoki, średni i niski, dostosowane do różnych zastosowań.
Jakie typy danych można zakodować w kodach QR?
IronQR może kodować różne typy danych w kody QR, w tym tekst, adresy URL, liczby, dane binarne i strumienie, zapewniając elastyczność w zakresie danych, które można przedstawić.
Jak utworzyć kod QR z adresem URL w języku C#?
Aby utworzyć kod QR z adresem URL w języku C#, należy użyć klasy QrWriter w bibliotece IronQR. Należy użyć metody Write do zakodowania adresu URL oraz metody SaveAs do zapisania kodu QR jako obrazu.

