Escribir códigos QR en C

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

Introducción

Con IronQR, los desarrolladores pueden crear códigos QR para formatos de imagen populares y personalizarlos con colores de fondo, márgenes, logotipos e incluso agregarlos a archivos PDF. Para un uso avanzado, también ofrece control sobre la corrección de errores y las versiones.

Este artículo explorará las características clave de IronQR con ejemplos, ayudándote a comprender cómo usarlo para escribir códigos QR en C# y aplicarlo efectivamente en tus proyectos.

Tabla de contenido

Comience a usar IronQR en su proyecto hoy con una prueba gratuita.

Primer Paso:
green arrow pointer

Datos de entrada

Texto, URL, números

IronQR puede convertir una amplia gama de tipos de datos, incluidos texto, URLs y números, en códigos QR. Ya sea que estés creando enlaces de códigos QR o texto para marketing y comunicación, códigos numéricos para gestión de inventario, o codificando datos binarios o streams en códigos QR legibles, IronQR proporciona todo el soporte que necesitas.

Además, la API es sencilla. La clase QrWriter ofrece varias sobrecargas, permitiendo diferentes tipos de datos como entrada, reduciendo la complejidad y simplificando el proceso.

: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")
$vbLabelText   $csharpLabel

Binario y flujos

De manera similar, podemos convertir datos binarios y streams en códigos QR usando el mismo método Write mencionado anteriormente.

: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")
$vbLabelText   $csharpLabel

class Program { static void Main() { // Crear una instancia de escritor de código QR QrWriter writer = QrWriter.CreateQrCode();

    // Datos binarios de ejemplo
    byte[] data = { 0x01, 0x02, 0x03, 0x04 };

    // Escribir datos binarios en código QR
    writer.Write(data)

.SaveAs("binary-qr.png");

    // Ejemplo usando un stream de memoria
    using (MemoryStream stream = new MemoryStream(data))
    {
        writer.Write(stream)

.SaveAs("stream-qr.png"); } } }


El método `Write` tiene sobrecargas que aceptan tanto arreglos de bytes como streams como entrada. Para streams, podemos crear un `MemoryStream` a partir del arreglo de bytes y luego convertirlo en un código QR. Esto es útil cuando los usuarios requieren un control más detallado sobre trozos de datos, ya que los streams pueden ser más eficientes en memoria.

```cs
:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-writing-3.cs

Exportar códigos QR

IronQR es flexible y adaptable a varios casos de uso que requieren diferentes formatos de archivo. Puedes guardar códigos QR en múltiples formatos como JPG, PNG, GIF y TIFF utilizando el método SaveAs.

Guardar como imagen

El método SaveAs de AnyBitmap detecta automáticamente el formato de archivo según la ruta de archivo proporcionada. En este ejemplo, especifiqué una ruta de archivo que termina con .png.

Por favor notaAl utilizar el método SaveAs , tenga en cuenta que no hay un formato de imagen predeterminado. Si ingresa una extensión no reconocida o comete un error tipográfico en la ruta del archivo, la imagen se guardará con la extensión incorrecta.

: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")
$vbLabelText   $csharpLabel

Sistema.Dibujo.Imágenes

Convertir imágenes al objeto System.Drawing.Images de Microsoft te permite usar la clase Bitmap para guardar el código QR en una ruta de archivo. En este ejemplo, el método Save guarda el código QR como un archivo PNG en la ruta qrBitmap.png.

Por favor nota System.Drawing.Common solo es compatible con la plataforma 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")
$vbLabelText   $csharpLabel

IronSoftware.Dibujo

Debido a la falta de compatibilidad multiplataforma de System.Drawing.Common, los desarrolladores pueden encontrar problemas al mantener aplicaciones multiplataforma. IronQR puede utilizar tanto System.Drawing.Common como Iron Software.Drawing.

IronQR usa la clase AnyBitmap de Iron Software.Drawing, una clase de Bitmap universalmente compatible que se convierte implícitamente en lo siguiente:

  • System.Drawing.Bitmap
  • System.Drawing.Image
  • SkiaSharp.SKBitmap
  • SixLabors.ImageSharp
  • Microsoft.Maui.Graphics.Platform.PlatformImage

Con esta poderosa biblioteca de código abierto, IronQR logra soporte multiplataforma y compatibilidad con .NET 8, .NET 7, .NET 6, .NET 5, .NET Core, .NET Standard y .NET Framework 4.6.2+. Para obtener más información sobre la biblioteca, consulta el sitio web de IronSoftware.Drawing.

Sello en PDF

IronQR permite a los desarrolladores estampar códigos QR en documentos PDF existentes, lo que facilita para otros el acceso rápido a enlaces o recursos adicionales. Se admite el estampado de códigos QR en páginas únicas y múltiples.

Sello en una sola página

Después de crear el código QR, llama al método StampToExistingPdfPage del objeto QrCode. Este método requiere la ruta del archivo, coordenadas (x e y), número de página y una contraseña opcional si el PDF está protegido por contraseña. Una vez proporcionados los argumentos, el método estampa el código QR y guarda el PDF.

Por favor notaEste método se basa en las páginas PDF, con numeración de páginas que comienza en 1 en lugar de 0.

: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)
$vbLabelText   $csharpLabel

Sello en varias páginas

Similar al ejemplo anterior, la principal diferencia es que el método StampToExistingPdfPages toma una lista de números de página en lugar de solo uno.

: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)
$vbLabelText   $csharpLabel

Resultado de ambos ejemplos

alt text


Opciones de código QR

IronQR ofrece amplias opciones de personalización para afinar el comportamiento y la funcionalidad del código QR. La clase QrOptions proporciona varios parámetros, como control de versión, tipo de codificación, codificación de caracteres y niveles de corrección de errores. Exploremos estas opciones con más detalle.

Codificación

IronQR admite múltiples tipos de códigos QR tanto para creación como para lectura. A continuación, se muestran los tipos admitidos:

  • QRCode: Este es el código QR estándar, comúnmente utilizado hoy en día. Puede almacenar hasta 7,089 caracteres numéricos o 4,296 caracteres alfanuméricos.
  • MicroQRCode: Una versión más pequeña del código QR estándar, puede almacenar hasta 35 caracteres numéricos o 21 caracteres alfanuméricos.
  • RMQRCode: El Código QR Micro Rectangular es una versión compacta del código QR, que ofrece flexibilidad en su relación de aspecto.
: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")
$vbLabelText   $csharpLabel

Corrección de errores

IronQR utiliza corrección de errores estándar del código QR para garantizar que todos los códigos QR producidos sean tolerantes a fallas y confiables, incluso en condiciones adversas. Además, IronQR te permite un control total sobre el nivel de corrección de errores para un ajuste más fino.

Hay cuatro niveles de corrección de errores disponibles, proporcionados por QrErrorCorrectionLevel:

  • Highest: 30% de corrección de errores
  • High: 25% de corrección de errores
  • Medium: 15% de corrección de errores
  • Low: 7% de corrección de errores
: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")
$vbLabelText   $csharpLabel

Una mayor corrección de errores proporciona una mayor tolerancia a fallos al leer el código QR, lo que facilita su escaneo a resoluciones más bajas en comparación con uno con baja corrección de errores. Puedes probar según tus casos de uso.

alt text

Versión del código QR

Puedes ajustar la versión del código QR para almacenar más datos. Las versiones más altas son ideales para inventario o logística, mientras que las versiones más bajas funcionan bien para datos más pequeños, como URLs cortas. Simplemente cambia la propiedad Version en el objeto QrOptions y pásala al método Write para generar el código QR según sea necesario.

: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")
$vbLabelText   $csharpLabel

alt text

Como puedes ver en la salida, la versión 40 del código QR es altamente compleja y densa en comparación con la versión 5.

Las versiones más bajas requieren un escaneo más preciso y pueden ser difíciles de escanear sin escáneres de mayor resolución. Sin embargo, las versiones más altas son más fáciles de escanear, incluso con cámaras de menor resolución. Para una guía más detallada sobre la elección de la versión de QR basada en la capacidad, consulta la lista de versiones QR.

Codificación de caracteres

Esta opción determina cómo se codifica el código QR. En nuestro ejemplo, lo cambiamos a 'UTF-32', mientras que la codificación de caracteres predeterminada es '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")
$vbLabelText   $csharpLabel

Estilo de código QR

Además de sus métodos fáciles de usar y flexibilidad al manejar datos de entrada, IronQR ofrece muchas opciones para personalizar y estilizar códigos QR para hacerlos únicos. La clase QrStyleOptions proporciona varios parámetros para personalizar todos los aspectos de un código QR. Exploremos las opciones disponibles.

Cambiar el tamaño

Para redimensionar el código QR, puedes establecer la propiedad Dimensions del objeto QrStyleOptions y luego pasarlo al método Save. Por defecto, el código QR se guarda a 300px. En este ejemplo, guardamos el código QR a 600px en lugar de 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")
$vbLabelText   $csharpLabel

alt text

Márgenes y bordes

Para ajustar los márgenes y bordes, podemos usar la propiedad Margins de la clase QrStyleOptions. Esta propiedad controla los márgenes del código QR en todos los lados, con un valor predeterminado de 10px. En nuestro ejemplo, establecimos el margen en 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")
$vbLabelText   $csharpLabel

alt text

Cambiar márgenes para cada lado

IronQR también permite a los usuarios especificar diferentes márgenes para cada lado, proporcionando un control más detallado.

: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")
$vbLabelText   $csharpLabel

Recolor

Podemos agregar colores al código QR y su fondo usando la clase QrStyleOptions. Personalizar los colores hace que el código QR sea más único y llamativo. Puedes cambiar el color usando las propiedades Color y BackgroundColor. Asegúrate de importar Iron Software.Drawing para una lista de colores disponibles para asignar.

: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");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

alt text

Agregar un logotipo

Además de los colores y dimensiones, también puedes aplicar el logo de tu empresa al código QR. Esto ayuda a los usuarios a reconocer y asociar inmediatamente el código QR con tu marca. La propiedad Logo facilita la personalización de un código QR al agregar el logo de tu empresa.

: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");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

alt text

Personaliza el logotipo

La clase QrLogo permite una mayor personalización de la apariencia del logo. Propiedades disponibles:

  • Bitmap: Representa la imagen que quieres usar como logo.
  • Width: Representa el ancho del logo. El valor predeterminado es 0.
  • Height: Representa la altura del logo. El valor predeterminado es 0.
  • CornerRadius: Representa el radio para redondear las esquinas del logo. Por defecto, está configurado en 0, lo que significa que el logo tendrá esquinas cuadradas.
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

Friend 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
$vbLabelText   $csharpLabel

Comprobación de la tolerancia a fallos

Junto con una flexibilidad extensa en formatos de archivo y personalizaciones, la flexibilidad se extiende a aspectos de depuración y manejo de errores. IronQR proporciona varias herramientas para que los desarrolladores manejen excepciones y escriban pruebas unitarias para verificar aplicaciones.

Sumas de comprobación

Los códigos QR a veces pueden dañarse, pero IronQR incluye checksums y corrección de datos integrados para mantenerlos funcionales. Utiliza el algoritmo de corrección de errores de Reed-Solomon, asegurando que los códigos QR sigan siendo tolerantes a fallos.

Mensajes de error detallados

IronQR proporciona mensajes de error detallados que ayudan a los usuarios a identificar rápidamente los problemas. Estos mensajes contienen una lista de excepciones específicas, lo que hace que la depuración y resolución de problemas sea más simple. A continuación se muestra una lista de IronQrException usada por la biblioteca.

  • IronQrEncodingException: Una subclase de IronQrException, este error ocurre cuando hay un problema al escribir el código QR. Por ejemplo, aparecerá si un usuario intenta crear un código QR a partir de una cadena vacía.

alt text

  • IronQrFileException: Una subclase de IronQrException, este error ocurre cuando surge un problema relacionado con archivos.

  • IronQrPdfPasswordExcception: Una subclase de IronQrException, este error ocurre cuando el PDF que un usuario está intentando estampar está protegido por contraseña y no se proporciona ninguna contraseña o se proporciona una incorrecta. También cubre otros errores relacionados con PDF, como cuando no se puede abrir el PDF, como se muestra en el ejemplo.

alt text

Conclusión

IronQR proporciona un conjunto completo de métodos para generar y personalizar códigos QR dentro de aplicaciones .NET. Con sus características robustas, los desarrolladores pueden crear fácilmente códigos QR con diversas codificaciones de datos, estilos visuales y niveles de corrección de errores. El soporte de la biblioteca para formatos de salida diversos e integración sin problemas en documentos existentes la convierte en una herramienta versátil para cualquier proyecto de códigos QR. Ya sea que necesites códigos QR básicos o soluciones avanzadas y de marca, IronQR ofrece la flexibilidad y funcionalidad para satisfacer tus necesidades de manera eficiente.

Para obtener más información, consulta la documentación de IronQR, empieza a explorar con una prueba gratuita, y revisa las opciones de licencia para ver qué plan se adapta mejor a tus necesidades.

Preguntas Frecuentes

¿Cómo genero un código QR en C#?

Puedes generar un código QR en C# usando la clase QrWriter disponible en IronQR. Esta clase te permite escribir datos en un código QR y guardarlo en varios formatos de imagen. Simplemente usa el método Write para codificar tus datos y SaveAs para obtener el código QR.

¿Qué tipos de personalización puedo aplicar a los códigos QR?

IronQR te permite personalizar códigos QR alterando sus colores, agregando logotipos, redimensionando y ajustando márgenes. Usa la clase QrStyleOptions para aplicar estas personalizaciones.

¿Puedo incrustar un código QR en un PDF usando C#?

Sí, puedes incrustar un código QR en un PDF usando IronQR al utilizar los métodos StampToExistingPdfPage o StampToExistingPdfPages. Esto te permite especificar la ubicación y las páginas donde debería aparecer el código QR.

¿Cómo puedo manejar errores al crear códigos QR?

IronQR tiene características robustas de manejo de errores, proporcionando mensajes de error como IronQrEncodingException, IronQrFileException, y IronQrPdfPasswordException para ayudar en la depuración y resolución de problemas.

¿A qué formatos puedo exportar los códigos QR?

Usando IronQR, puedes exportar códigos QR a varios formatos, incluyendo JPG, PNG, GIF y TIFF. El método SaveAs te permite especificar el formato deseado para tu código QR.

¿Esta biblioteca soporta el desarrollo multiplataforma?

Sí, IronQR soporta el desarrollo multiplataforma a través de la biblioteca Iron Software.Drawing, haciéndola compatible con diferentes versiones y plataformas de .NET.

¿Es posible agregar un logotipo a un código QR para la marca?

Puedes agregar un logotipo a un código QR usando IronQR al establecer la propiedad Logo en la clase QrStyleOptions, permitiendo códigos QR de marca con apariencias de logotipo personalizadas.

¿Cuál es el propósito de la corrección de errores en códigos QR?

La corrección de errores en códigos QR, apoyada por IronQR, asegura que los códigos QR sean legibles incluso si están parcialmente dañados. Esta característica ofrece cuatro niveles de corrección: Máximo, Alto, Medio y Bajo, para adaptarse a diferentes casos de uso.

¿Qué tipos de datos pueden codificarse en códigos QR?

IronQR puede codificar una variedad de tipos de datos en códigos QR, incluyendo texto, URLs, números, datos binarios y flujos de datos, proporcionando flexibilidad en los datos que puedes representar.

¿Cómo puedo crear un código QR con una URL en C#?

Para crear un código QR con una URL en C#, usa la clase QrWriter en IronQR. Utiliza el método Write para codificar la URL y SaveAs para almacenar el código QR como una imagen.

Curtis Chau
Escritor Técnico

Curtis Chau tiene una licenciatura en Ciencias de la Computación (Carleton University) y se especializa en el desarrollo front-end con experiencia en Node.js, TypeScript, JavaScript y React. Apasionado por crear interfaces de usuario intuitivas y estéticamente agradables, disfruta trabajando con frameworks modernos y creando manuales bien ...

Leer más
¿Listo para empezar?
Nuget Descargas 51,390 | Version: 2025.11 recién lanzado