VintaSoft Barcode .NET SDK è un SDK professionale multipiattaforma per Windows, Linux, macOS, Android, che consente di riconoscere e generare codici a barre Data Matrix in .NET, WPF, Web, MAUI. VintaSoft Barcode .NET SDK consente di integrare la funzionalità di riconoscimento e generazione di codici a barre Data Matrix utilizzando solo poche righe di codice.
Cos'è un codice a barre Data Matrix?
Data Matrix è un codice a barre a matrice bidimensionale che si è diffuso nell'industria, nella produzione e nell'etichettatura dei prodotti. Una caratteristica distintiva del codice a barre Data Matrix è il modello di ricerca "L" sotto forma di una linea continua su entrambi i lati del codice a barre:
Caratteristiche del codice a barre Data Matrix
La moderna versione del codice a barre Data Matrix ECC200 è definita dallo standard ISO/IEC 16022 del 2006. Lo standard descrive anche le versioni precedenti da ECC000 a ECC140, il cui utilizzo non è consigliato.
Il codice a barre Data Matrix può memorizzare dati misti di diverso tipo in tre modalità di codifica:
- Alfanumerico (fino a 2235 simboli)
- Byte (fino a 1555 byte)
- Numerico (fino a 3116 cifre)
Il codice a barre Data Matrix utilizza l'algoritmo di correzione degli errori Reed-Solomon, che consente di riconoscere i codici a barre danneggiati.
Il supporto per lo standard GS1 consente di codificare i dati nel formato GS1 (
BarcodeSymbologySubsets.GS1DataMatrix).
Il codice a barre Data Matrix può codificare i seguenti simboli speciali:
Codice a barre Data Matrix rettangolare - quando l'area di marcatura non è quadrata
Esistono 6 versioni speciali del codice a barre Data Matrix rettangolare:
Questi codici a barre vengono utilizzati su articoli di piccole dimensioni quando lo spazio disponibile non consente un codice a barre quadrato.
Struttura del codice a barre Data Matrix
La versione ECC200 della matrice di codici a barre Data Matrix è disponibile in 24 versioni quadrate con dimensioni che vanno da 10x10 a 144x144 moduli, oltre a versioni rettangolari: 8x18, 8x32, 12x26, 12x36, 16x36 e 16x48 moduli. L'orientamento del codice a barre è determinato dal modello di ricerca "L", il cui centro si trova nell'angolo inferiore sinistro del codice a barre.
- Modello di ricerca
- Modelli di temporizzazione
- Livello di correzione dati ed errori
È facile distinguere la versione moderna di Data Matrix ECC200 dalla versione obsoleta ECC000-ECC140: nella versione ECC200 la dimensione della matrice è sempre pari, mentre in ECC000-140 è sempre dispari, quindi nella versione ECC200 c'è sempre un modulo bianco nell'angolo in alto a destra, mentre nella versione obsoleta c'è sempre un modulo nero.
Se è necessario codificare una grande quantità di dati, è necessario un simbolo speciale "Struttura aggiunta"
Il codice a barre Data Matrix supporta un simbolo speciale "Struttura aggiunta", che consente di suddividere i dati in più codici a barre Data Matrix. Il simbolo "Structure Append" è codificato nel codice a barre e consente di determinare con certezza il numero di parti del codice a barre e il loro ordine:
VintaSoft Barcode .NET SDK contiene un algoritmo per il recupero dei dati da un set di codici a barre, parti del Data Matrix che sono state separate utilizzando il simbolo "Structure Append".
Quali codici a barre Data Matrix può riconoscere VintaSoft Barcode .NET SDK?
VintaSoft Barcode .NET SDK riconosce tutti i tipi di codici a barre Data Matrix versione ECC200. Durante il riconoscimento, vengono utilizzati algoritmi unici che consentono di riconoscere rapidamente i codici a barre che presentano vari problemi:
- matrice danneggiata
- basso contrasto
- bassa modulazione
- illuminazione non uniforme
- compressione su un lato
- distorsioni spaziali
- stampati su superfici distorte
- numero elevato di codici a barre in un'unica immagine
Ecco un codice C# che mostra come riconoscere i codici a barre Data Matrix in un'immagine acquisita da una fotocamera:
/// <summary>
/// Reads Data Matrix barcodes from a <see cref="System.Drawing.Bitmap"/>.
/// </summary>
/// <param name="bitmap">A bitmap with barcodes.</param>
public static void ReadDataMatrixBarcodesFromBitmap(System.Drawing.Bitmap bitmap)
{
// create barcode reader
using (Vintasoft.Barcode.BarcodeReader reader = new Vintasoft.Barcode.BarcodeReader())
{
// specify that reader must search for Data Matrix barcodes
reader.Settings.ScanBarcodeTypes = Vintasoft.Barcode.BarcodeType.DataMatrix;
// 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 Data Matrix può generare VintaSoft Barcode .NET SDK?
VintaSoft Barcode .NET SDK genera tutti i tipi di codici a barre Data Matrix.
Ecco il codice C# che mostra come generare una bitmap di un codice a barre Data Matrix:
/// <summary>
/// Returns the Data Matrix 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 GetDataMatrixBarcodeAsBitmap(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.DataMatrix;
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 Data Matrix:
/// <summary>
/// Returns the Data Matrix barcode in vector form as a SVG string.
/// </summary>
/// <param name="barcodeValue">Barcode value.</param>
public static void GetDataMatrixBarcodeAsSvgString(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.DataMatrix;
barcodeWriter.Settings.Value = barcodeValue;
// generate Data Matrix barcode as a SVG string
return barcodeWriter.GetBarcodeAsSvgFile();
}
}