O
VintaSoft Barcode .NET SDK é um SDK multiplataforma profissional para Windows, Linux e macOS, que permite reconhecer e gerar códigos de barras QR Code em .NET, WPF, Web e MAUI. Você só precisa de algumas linhas de código para adicionar a capacidade de reconhecer e gerar códigos de barras QR Code ao seu aplicativo .NET.
O que é um código de barras QR Code?
O QR Code é um código de barras matricial bidimensional, sendo o código de barras bidimensional mais utilizado no mundo. O nome deste código de barras reflete a ideia por trás de seu desenvolvimento: "Resposta Rápida", reconhecimento rápido em qualquer ângulo de inclinação. Uma característica distintiva do código de barras QR Code são os padrões de busca claramente identificáveis - quadrados pretos nos cantos do código de barras:
Características do código de barras QR Code
Todos os fabricantes modernos utilizam códigos de barras QR Code, que são descritos na norma ISO/IEC 18004. A norma AIM ITS/97-001 descreve o QR Code Modelo 1, uma versão desatualizada do código de barras, cujo uso não é recomendado.
O código de barras QR Code pode armazenar dados mistos de vários tipos em quatro modos de codificação:
- Alfanumérico (até 4296 símbolos)
- Byte (até 2953 bytes)
- Numérico (até 7089 dígitos)
- Kanji (até 1817 símbolos)
O código de barras QR Code utiliza o algoritmo de correção de erros Reed-Solomon, que permite o reconhecimento de códigos de barras danificados. Ao criar um código de barras, um dos 4 níveis de correção de erros é selecionado dependendo das condições de uso esperadas: quanto maior o nível de correção de erros, menos dados podem ser colocados no código de barras.
A estrutura da matriz do código de barras
As matrizes de código de barras QR e Micro QR têm a seguinte estrutura:
- Zona de silêncio
- Padrões de pesquisa
- Informações sobre o formato
- Padrões de temporização
- Padrões de alinhamento
- Camada de dados e correção de erros
O que é um código de barras Micro QR?
O código de barras Micro QR é uma versão compacta do código de barras QR Code. O código de barras Micro QR é geralmente usado para marcar embalagens pequenas:
O código de barras Micro QR possui apenas um padrão de pesquisa. A quantidade de dados neste código de barras é muito limitada:
- Alfanumérico (até 21 símbolos)
- Byte (até 15 bytes)
- Numérico (até 35 dígitos)
- Kanji (até 9 símbolos)
O que é um código de barras "GS1 QR"?
"O código de barras "GS1 QR" é um código de barras QR que armazena valores no formato de dados do sistema GS1.
O VintaSoft Barcode .NET SDK pode gerar e reconhecer códigos de barras "GS1 QR".
Aqui está uma imagem do código de barras "GS1 QR":
O que é um código de barras "GS1 Digital Link QR"?
"O código de barras "GS1 Digital Link QR" é um código de barras QR que armazena valores no formato GS1 Digital Link.
O VintaSoft Barcode .NET SDK pode gerar e reconhecer códigos de barras "GS1 Digital Link QR".
Aqui está uma imagem do código de barras "GS1 Digital Link QR":
O que é um código de barras "XFA Compressed QR"?
O código de barras "XFA Compressed QR" é um código de barras QR que armazena dados comprimidos de acordo com a especificação Adobe XFA.
O VintaSoft Barcode .NET SDK pode gerar e reconhecer códigos de barras "XFA Compressed QR".
Aqui está uma imagem do código de barras "XFA Compressed QR":
O que é um código de barras "Swiss QR Code"?
O código de barras "Swiss QR Code" é um subconjunto do código de barras QR usado em faturas na Suíça e em Liechtenstein desde 1º de outubro de 2022.
O VintaSoft Barcode .NET SDK pode gerar e reconhecer códigos de barras "Swiss QR Code"..
Aqui está uma imagem do código de barras "Swiss QR Code":
O que é o código de barras "HIBC LIC QR Code"?
O código de barras "HIBC LIC QR Code" é um subconjunto do código de barras QR Code usado para conformidade com o UDI de dispositivos médicos, identificando fabricantes, produtos e lotes. O VintaSoft Barcode .NET SDK pode gerar e reconhecer códigos de barras "HIBC LIC QR Code".
Aqui está uma imagem do código de barras "HIBC LIC QR Code":
Símbolo especial "Anexo de estrutura"
O código de barras QR Code suporta um símbolo especial chamado
"Anexo de estrutura", que permite dividir os dados em vários códigos de barras QR Code. O símbolo é codificado no código de barras e permite determinar claramente o número de partes do código de barras e sua ordem. Esse recurso pode ser usado para marcar uma área alongada ou para inserir uma grande quantidade de dados.
O VintaSoft Barcode .NET SDK permite dividir dados e gerar vários códigos de barras QR Code vinculados pelo símbolo "Anexar estrutura". O SDK também contém um algoritmo para restaurar dados de um conjunto de códigos de barras QR Code divididos usando o símbolo "Anexar estrutura".
Quais códigos de barras QR Code o VintaSoft Barcode .NET SDK reconhece?
O VintaSoft Barcode .NET SDK reconhece todos os tipos de códigos de barras QR e Micro QR. Algoritmos exclusivos são usados para o reconhecimento, permitindo identificar rapidamente códigos de barras com diversos problemas:
- matriz danificada
- baixo contraste
- baixa modulação
- iluminação irregular
- compressão em um dos lados
- distorções espaciais
- código de barras impresso em uma superfície distorcida
- grande número de códigos de barras em uma imagem
Aqui está um código C# que demonstra como reconhecer códigos de barras QR Code em uma imagem capturada por uma câmera:
/// <summary>
/// Reads QR Code barcodes from a <see cref="System.Drawing.Bitmap"/>.
/// </summary>
/// <param name="bitmap">A bitmap with barcodes.</param>
public static void ReadQRCodeBarcodesFromBitmap(System.Drawing.Bitmap bitmap)
{
// create barcode reader
using (Vintasoft.Barcode.BarcodeReader reader = new Vintasoft.Barcode.BarcodeReader())
{
// specify that reader must search for QR Code barcodes
reader.Settings.ScanBarcodeTypes = Vintasoft.Barcode.BarcodeType.QR;
// read barcodes from image
Vintasoft.Barcode.IBarcodeInfo[] infos = Vintasoft.Barcode.GdiExtensions.ReadBarcodes(reader, bitmap);
// if barcodes are not detected
if (infos.Length == 0)
{
System.Console.WriteLine("No barcodes found.");
}
// if barcodes are detected
else
{
// get information about extracted barcodes
System.Console.WriteLine(string.Format("{0} barcodes found:", infos.Length));
System.Console.WriteLine();
for (int i = 0; i < infos.Length; i++)
{
Vintasoft.Barcode.IBarcodeInfo info = infos[i];
System.Console.WriteLine(string.Format("[{0}:{1}]", i + 1, info.BarcodeType));
System.Console.WriteLine(string.Format("Value: {0}", info.Value));
System.Console.WriteLine(string.Format("Region: {0}", info.Region));
System.Console.WriteLine();
}
}
}
}
Quais códigos de barras QR Code o VintaSoft Barcode .NET SDK pode gerar?
O VintaSoft Barcode .NET SDK gera todos os tipos de códigos de barras QR e Micro QR.
Aqui está um código C# que demonstra como gerar uma imagem raster de um código de barras QR:
/// <summary>
/// Returns the QR Code barcode as <see cref="System.Drawing.Bitmap"/>.
/// </summary>
/// <param name="value">The barcode value.</param>
/// <returns>A <see cref="System.Drawing.Bitmap"/> object.</returns>
public static System.Drawing.Bitmap GetQRCodeBarcodeAsBitmap(string value)
{
// create the barcode writer
using (Vintasoft.Barcode.BarcodeWriter barcodeWriter = new Vintasoft.Barcode.BarcodeWriter())
{
// set barcode writer settings
barcodeWriter.Settings.Barcode = Vintasoft.Barcode.BarcodeType.QR;
barcodeWriter.Settings.Value = value;
// get a barcode image as System.Drawing.Bitmap
return Vintasoft.Barcode.GdiExtensions.GetBarcodeAsBitmap(barcodeWriter);
}
}
Aqui está um código C# que demonstra como gerar uma imagem raster de um código de barras Micro QR:
/// <summary>
/// Returns the Micro QR barcode as <see cref="System.Drawing.Bitmap"/>.
/// </summary>
/// <param name="value">The barcode value.</param>
/// <returns>A <see cref="System.Drawing.Bitmap"/> object.</returns>
public static System.Drawing.Bitmap GetMicroQRBarcodeAsBitmap(string value)
{
// create the barcode writer
using (Vintasoft.Barcode.BarcodeWriter barcodeWriter = new Vintasoft.Barcode.BarcodeWriter())
{
// set barcode writer settings
barcodeWriter.Settings.Barcode = Vintasoft.Barcode.BarcodeType.MicroQR;
barcodeWriter.Settings.Value = value;
// get a barcode image as System.Drawing.Bitmap
return Vintasoft.Barcode.GdiExtensions.GetBarcodeAsBitmap(barcodeWriter);
}
}
Aqui está um código C# que demonstra como gerar uma imagem vetorial (SVG) de um código de barras QR:
/// <summary>
/// Returns the QR Code barcode in vector form as a SVG string.
/// </summary>
/// <param name="barcodeValue">Barcode value.</param>
public static void GetQrCodeBarcodeAsSvgString(string barcodeValue)
{
// create the barcode writer
using (Vintasoft.Barcode.BarcodeWriter barcodeWriter = new Vintasoft.Barcode.BarcodeWriter())
{
// set barcode writer settings
barcodeWriter.Settings.Barcode = Vintasoft.Barcode.BarcodeType.QR;
barcodeWriter.Settings.Value = barcodeValue;
// generate QR Code barcode as a SVG string
return barcodeWriter.GetBarcodeAsSvgFile();
}
}