O
VintaSoft Barcode .NET SDK é um SDK multiplataforma profissional para Windows, Linux e macOS, que permite reconhecer e gerar códigos de barras Aztec Code em .NET, WPF, Web e MAUI. O
VintaSoft Barcode .NET SDK permite incorporar a funcionalidade de reconhecimento e geração de códigos de barras Aztec Code com apenas algumas linhas de código.
O que é um código de barras Aztec?
O código de barras Aztec é o código de barras matricial bidimensional mais compacto. Ele ocupa menos espaço do que outros códigos de barras matriciais devido à ausência de uma zona livre e a um padrão de busca compacto. Uma característica distintiva do código de barras Aztec Code é o padrão de busca quadrado exclusivo, o "olho de boi", localizado no centro do código de barras:
Características do código de barras Aztec Code
O código de barras Aztec Code é definido pela norma ISO/IEC 24778 de 2008. O código de barras Aztec Code pode armazenar dados mistos de diferentes tipos em três modos de codificação:
- Alfanumérico (até 3067 caracteres)
- Byte (até 1914 bytes)
- Numérico (até 3822 dígitos)
O código de barras Aztec 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, o usuário pode especificar a porcentagem da área de dados que será usada pelas palavras-código de correção de erros.
O suporte ao padrão GS1 permite que você codifique dados no formato GS1 (
BarcodeSymbologySubsets.GS1Aztec).
O código de barras Aztec Code pode codificar os seguintes caracteres especiais:
O que é um código de barras "Aztec Rune"?
Existe uma versão especial do código de barras Aztec Code – Aztec Rune, que pode codificar apenas um número no intervalo de 0 a 255 (um byte):
O código de barras Aztec Rune tem um tamanho compacto de 11x11 módulos e pode ser usado como um rótulo na produção, por exemplo, para controlar a orientação da embalagem ou para controlar a integridade das mercadorias. Esta etiqueta também pode ser usada para criar um ponto de referência orientado na imagem, para isso
VintaSoft Barcode .NET SDK fornece as coordenadas exatas do centro do padrão de busca do código de barras reconhecido:
AztecInfo.BulleyeCenter.
Este recurso também pode ser usado em formulários OMR para reconhecimento automático rápido de formulários OMR. Mais informações sobre alinhamento automático de imagem usando o código de barras Aztec Rune podem ser encontradas no artigo
Use 2D barcodes for aligning image in .NET/C#.
A estrutura da matriz do código de barras Aztec
A matriz do código de barras Aztec Code possui duas versões: tamanho normal e compacta. A versão compacta pode ter até 4 camadas de dados (a versão completa tem até 32 camadas) e se distingue por um padrão de busca reduzido e pela ausência de padrões de temporização:
- Padrão de busca
- Informações de formato
- Padrões de temporização
- Padrões de orientação
- Camada de dados e correção de erros
O que é um código de barras "GS1 Aztec"?
"O código de barras "GS1 Aztec" é um código de barras Aztec que armazena valores no formato de dados do sistema GS1. O VintaSoft Barcode .NET SDK pode gerar e reconhecer códigos de barras "GS1 Aztec".
Aqui está uma imagem do código de barras "GS1 Aztec":
O que é um código de barras "XFA Compressed Aztec"?
O código de barras "XFA Compressed Aztec" é um código de barras Aztec 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 Aztec".
Aqui está uma imagem do código de barras "XFA Compressed Aztec":
O que é o código de barras "HIBC LIC Aztec"?
O código de barras "HIBC LIC Aztec" é um subconjunto do código de barras Aztec usado para rotulagem de produtos de saúde para fins de identificação. O VintaSoft Barcode .NET SDK pode gerar e reconhecer códigos de barras "HIBC LIC Aztec".
Aqui está uma imagem do código de barras "HIBC LIC Aztec":
O código de barras Aztec Code pode ser mais do que apenas um quadrado graças ao símbolo especial "Anexo de Estrutura".
O código de barras Aztec Code suporta um símbolo especial "Anexo de Estrutura", que permite que os dados sejam divididos em vários códigos de barras Aztec Code. O símbolo "Anexo de Estrutura" é codificado no código de barras e permite que o número de partes do código de barras e sua ordem sejam determinados exclusivamente.
Como o código de barras Aztec Code não possui zona livre, é possível criar códigos de barras Aztec Code retangulares para marcar uma área alongada.
VintaSoft Barcode .NET SDK contém um algoritmo para recuperar dados de um conjunto de partes de código de barras Aztec Code separadas usando o símbolo "Structure Append".
Quais códigos de barras Aztec o VintaSoft Barcode .NET SDK reconhece?
VintaSoft Barcode .NET SDK reconhece todos os tipos de códigos de barras Aztec Code e Aztec Rune. Algoritmos exclusivos são usados para o reconhecimento, permitindo reconhecer 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 astecas em uma imagem capturada por uma câmera:
/// <summary>
/// Reads Aztec Code barcodes from a <see cref="System.Drawing.Bitmap"/>.
/// </summary>
/// <param name="bitmap">A bitmap with barcodes.</param>
public static void ReadAztecCodeBarcodesFromBitmap(System.Drawing.Bitmap bitmap)
{
// create barcode reader
using (Vintasoft.Barcode.BarcodeReader reader = new Vintasoft.Barcode.BarcodeReader())
{
// specify that reader must search for Aztec barcodes
reader.Settings.ScanBarcodeTypes = Vintasoft.Barcode.BarcodeType.Aztec;
// 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 astecas o VintaSoft Barcode .NET SDK pode gerar?
O VintaSoft Barcode .NET SDK gera todos os tipos de códigos de barras de código asteca e runas astecas.
Aqui está um código C# que demonstra como gerar uma imagem raster de um código de barras Aztec Code:
/// <summary>
/// Returns the Aztec 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 GetAztecCodeBarcodeAsBitmap(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.Aztec;
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 Aztec Code:
/// <summary>
/// Returns the Aztec Code barcode in vector form as a SVG string.
/// </summary>
/// <param name="barcodeValue">Barcode value.</param>
public static void GetAztecCodeBarcodeAsSvgString(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.Aztec;
barcodeWriter.Settings.Value = barcodeValue;
// generate Aztec Code barcode as a SVG string
return barcodeWriter.GetBarcodeAsSvgFile();
}
}