VintaSoft Barcode .NET SDK è un SDK multipiattaforma professionale per Windows, Linux, macOS, Android, che consente di riconoscere e generare codici a barre Aztec Code in .NET, WPF, Web, MAUI.
VintaSoft Barcode .NET SDK consente di incorporare le funzionalità di riconoscimento e generazione di codici a barre Aztec Code utilizzando solo poche righe di codice.
Cos'è il codice a barre Aztec Code?
Il codice a barre Aztec Code è il codice a barre a matrice bidimensionale più compatto. Occupa meno spazio rispetto ad altri codici a barre a matrice grazie all'assenza di una zona libera e a un modello di ricerca compatto. Una caratteristica distintiva del codice a barre Aztec Code è l'esclusivo modello di ricerca quadrato "bullseye" situato al centro del codice a barre:
Caratteristiche del codice a barre Aztec Code
Il codice a barre Aztec Code è definito dallo standard ISO/IEC 24778 del 2008. Il codice a barre Aztec Code può memorizzare dati misti di tipi diversi in tre modalità di codifica:
- Alfanumerico (fino a 3067 caratteri)
- Byte (fino a 1914 byte)
- Numerico (fino a 3822 cifre)
Il codice a barre Aztec Code utilizza l'algoritmo di correzione degli errori Reed-Solomon, che gli consente di riconoscere i codici a barre danneggiati. Durante la creazione di un codice a barre, l'utente può specificare la percentuale dell'area dati che verrà utilizzata dalle parole del codice di correzione degli errori.
Il supporto per lo standard GS1 consente di codificare i dati nel formato GS1 (
BarcodeSymbologySubsets.GS1Aztec).
Il codice a barre Aztec Code può codificare i seguenti caratteri speciali:
Codice a barre Aztec Rune – quando è necessaria un'etichetta semplice
Esiste una versione speciale del codice a barre del Codice Azteco: Runa Azteca,che può codificare solo un numero nell'intervallo da 0 a 255 (un byte):
Il codice a barre Aztec Rune ha una dimensione compatta di 11x11 moduli e può essere utilizzato come etichetta in produzione, ad esempio per controllare l'orientamento della confezione o per controllare la completezza delle merci. Questa etichetta può essere utilizzata anche per creare un punto di riferimento orientato sull'immagine; a questo scopo,
VintaSoft Barcode .NET SDK fornisce le coordinate esatte del centro del pattern di ricerca del codice a barre riconosciuto:
AztecInfo.BulleyeCenter.
Questa funzionalità può essere utilizzata anche nei moduli OMR per un rapido riconoscimento automatico dei moduli OMR. Ulteriori informazioni sull'allineamento automatico delle immagini utilizzando il codice a barre Aztec Rune sono disponibili nell'articolo
Utilizza codici a barre 2D per allineare immagini in .NET/C#.
La struttura della matrice del codice a barre Aztec
La matrice di codici a barre Aztec Code è disponibile in due versioni: full-size e compatta. La versione compatta può avere fino a 4 livelli di dati (quella full-size ne ha fino a 32) e si distingue per un pattern di ricerca ridotto e l'assenza di pattern temporali:
- Modello di ricerca
- Informazioni sul formato
- Modelli di temporizzazione
- Modelli di orientamento
- Livello di correzione dati ed errori
Il codice a barre Aztec Code può essere più di un semplice quadrato grazie allo speciale simbolo "Structure Append"
Il codice a barre Aztec Code supporta uno speciale simbolo "Structure Append", che consente di suddividere i dati in più codici a barre Aztec Code. Il simbolo "Structure Append" è codificato nel codice a barre e consente di determinare in modo univoco il numero di parti del codice a barre e il loro ordine.
Poiché il codice a barre Aztec Code non ha zone libere, è possibile creare codici a barre Aztec Code rettangolari per contrassegnare un'area allungata:
VintaSoft Barcode .NET SDK contiene un algoritmo per recuperare i dati da un set di parti del codice a barre Aztec Code separate utilizzando il simbolo "Structure Append".
Quali codici a barre Aztec può riconoscere VintaSoft Barcode .NET SDK?
VintaSoft Barcode .NET SDK riconosce tutti i tipi di codici a barre Aztec Code e Aztec Rune. Per il riconoscimento vengono utilizzati algoritmi unici che consentono di riconoscere rapidamente codici a barre che presentano vari problemi:
- matrice danneggiata
- basso contrasto
- bassa modulazione
- illuminazione non uniforme
- compressione su un lato
- distorsioni spaziali
- codice a barre stampato su una superficie distorta
- numero elevato di codici a barre in un'unica immagine
Ecco un codice C# che mostra come riconoscere i codici a barre Aztec in un'immagine acquisita da una fotocamera:
/// <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();
}
}
}
}
Quali codici a barre Aztec può generare VintaSoft Barcode .NET SDK?
VintaSoft Barcode .NET SDK genera tutti i tipi di codici a barre Aztec Code e Aztec Rune.
Ecco un codice C# che mostra come generare un'immagine raster del codice a barre 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);
}
}
Ecco un codice C# che mostra come generare un'immagine vettoriale (SVG) del codice a barre 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();
}
}