VintaSoft Barcode .NET SDK ist ein professionelles, plattformübergreifendes SDK für Windows, Linux und macOS, mit dem Data-Matrix-Barcodes in .NET, WPF, Web und MAUI erkannt und generiert werden können. Mit dem VintaSoft Barcode .NET SDK lässt sich die Funktionalität zur Erkennung und Generierung von Data-Matrix-Barcodes mit nur wenigen Codezeilen einbetten.
Was ist ein Data-Matrix-Barcode?
Data Matrix ist ein zweidimensionaler Matrix-Barcode, der in Industrie, Produktion und Produktkennzeichnung weit verbreitet ist. Ein charakteristisches Merkmal des Data-Matrix-Barcodes ist das Suchmuster "L" in Form einer durchgezogenen Linie auf beiden Seiten des Barcodes:
Merkmale des Data-Matrix-Barcodes
Die moderne Data-Matrix-Barcode-Version ECC200 ist in der Norm ISO/IEC 16022 von 2006 definiert. Die Norm beschreibt auch ältere Versionen von ECC000 bis ECC140, deren Verwendung nicht empfohlen wird.
Der Data-Matrix-Barcode kann gemischte Daten verschiedener Typen in drei Kodierungsmodi speichern:
- Alphanumerisch (bis zu 2235 Symbole)
- Byte (bis zu 1555 Bytes)
- Numerisch (bis zu 3116 Ziffern)
Der Data-Matrix-Barcode verwendet den Reed-Solomon-Fehlerkorrekturalgorithmus, der die Erkennung beschädigter Barcodes ermöglicht.
Die Unterstützung des GS1-Standards ermöglicht die Kodierung von Daten im GS1-Format (
BarcodeSymbologySubsets.GS1DataMatrix).
Der Data-Matrix-Barcode kann die folgenden Sonderzeichen kodieren:
Rechteckiger Data-Matrix-Barcode - wenn der Markierungsbereich nicht quadratisch ist
Es gibt 6 spezielle Versionen des rechteckigen Data-Matrix-Barcodes:
Diese Barcodes werden auf kleinen Artikeln verwendet, wenn der verfügbare Platz keinen quadratischen Barcode zulässt.
Data-Matrix-Barcode-Struktur
Die Data-Matrix-Barcode-Matrixversion ECC200 hat 24 quadratische Versionen mit Größen von 10x10 bis 144x144 Modulen sowie rechteckige Versionen: 8x18, 8x32, 12x26, 12x36, 16x36 und 16x48 Module. Die Ausrichtung des Barcodes wird durch das Suchmuster "L" bestimmt, dessen Mittelpunkt sich in der unteren linken Ecke des Barcodes befindet.
- Suchmuster
- Timingmuster
- Daten- und Fehlerkorrekturschicht
Die moderne Version von Data Matrix ECC200 lässt sich leicht von der veralteten Version ECC000-ECC140 unterscheiden: Bei der ECC200-Version ist die Matrixgröße immer gerade, bei ECC000-140 hingegen immer ungerade. Daher befindet sich bei der ECC200-Version immer ein weißes Modul in der oberen rechten Ecke, bei der veralteten Version hingegen immer ein schwarzes.
Was ist ein "GS1 DataMatrix"-Barcode?
"Ein "GS1 DataMatrix"-Barcode ist ein DataMatrix-Barcode, der Werte im GS1-Systemdatenformat speichert. Das VintaSoft Barcode .NET SDK kann "GS1 DataMatrix"-Barcodes generieren und erkennen.
Hier ist ein Bild des "GS1 DataMatrix"-Barcodes:
Was ist ein "GS1 Digital Link DataMatrix"-Barcode?
Der "GS1 Digital Link DataMatrix"-Barcode ist ein DataMatrix-Barcode, der Werte im Format "GS1 Digital Link" speichert.
Das VintaSoft Barcode .NET SDK kann "GS1 Digital Link DataMatrix"-Barcodes generieren und erkennen.
Hier ist ein Bild des "GS1 Digital Link DataMatrix"-Barcodes:
Was ist ein PPN-Barcode?
PPN-Barcode ist ein DataMatrix-Barcode, der weltweit in der pharmazeutischen Industrie zur Verfolgung, Identifizierung und zum Schutz vor Produktfälschungen eingesetzt wird.
Das VintaSoft Barcode .NET SDK kann PPN-Barcodes generieren und erkennen.
Hier ist ein Bild des PPN-Barcodes:
Was ist ein "Royal Mail Mailmark CMDM"-Barcode?
"Der "Royal Mail Mailmark CMDM"-Barcode ist ein DataMatrix-Barcode, der zur Automatisierung der Sortierung und Verfolgung von britischen Postsendungen entwickelt wurde. Das VintaSoft Barcode .NET SDK kann "Royal Mail Mailmark CMDM"-Barcodes generieren und erkennen.
Hier sind Bilder der "Royal Mail Mailmark CMDM"-Barcodes:
Was ist ein "XFA Compressed DataMatrix"-Barcode?
Der "XFA Compressed DataMatrix"-Barcode ist ein DataMatrix-Barcode, der Daten gemäß der Adobe XFA-Spezifikation komprimiert speichert.
Das VintaSoft Barcode .NET SDK kann "XFA Compressed DataMatrix"-Barcodes generieren und erkennen.
Hier ist ein Bild des Barcodes "XFA Compressed DataMatrix":
Was ist der Barcode "ISBT 128 DataMatrix"?
Der Barcode "ISBT 128 DataMatrix" ist eine Untermenge des DataMatrix-Barcodes und enthält Informationen, die für Transfusionen und Transplantationen benötigt werden. Das VintaSoft Barcode .NET SDK kann "ISBT 128 DataMatrix"-Barcodes generieren und erkennen.
Hier ist ein Bild des Barcodes "ISBT 128 DataMatrix":
Was ist der Barcode "HIBC LIC DataMatrix"?
Der Barcode "HIBC LIC DataMatrix" ist eine Untermenge des DataMatrix-Barcodes und wird zur Einhaltung der UDI-Vorschriften für Medizinprodukte verwendet. Er dient der Identifizierung von Herstellern, Produkten und Chargen. Das VintaSoft Barcode .NET SDK kann "HIBC LIC DataMatrix"-Barcodes generieren und erkennen.
Hier ist ein Bild des "HIBC LIC DataMatrix"-Barcodes:
Wenn Sie eine große Datenmenge kodieren müssen, verwenden Sie das spezielle Symbol "Structure Append".
Der Data-Matrix-Barcode unterstützt das spezielle Symbol "Structure Append", mit dem Sie die Daten in mehrere Data-Matrix-Barcodes aufteilen können. Das Symbol "Structure Append" ist im Barcode kodiert und ermöglicht es Ihnen, die Anzahl der Barcode-Teile und deren Reihenfolge eindeutig zu bestimmen:
VintaSoft Barcode .NET SDK enthält einen Algorithmus zur Wiederherstellung von Daten aus einer Menge von Barcode-Teilen der Data Matrix, die mithilfe des Symbols "Structure Append" getrennt wurden.
Welche Data-Matrix-Barcodes kann das VintaSoft Barcode .NET SDK erkennen?
VintaSoft Barcode .NET SDK erkennt alle Arten von Data-Matrix-Barcodes der Version ECC200. Bei der Erkennung kommen spezielle Algorithmen zum Einsatz, die es ermöglichen, Barcodes mit verschiedenen Problemen schnell zu erkennen:
- Beschädigte Matrix
- Geringer Kontrast
- Geringe Modulation
- Ungleichmäßige Beleuchtung
- Einseitige Kompression
- Räumliche Verzerrungen
- gedruckt auf verzerrten Oberflächen
- Große Anzahl von Barcodes in einem Bild
Hier ist ein C#-Code, der zeigt, wie Data-Matrix-Barcodes in einem mit einer Kamera aufgenommenen Bild erkannt werden:
/// <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();
}
}
}
}
Welche Data-Matrix-Barcodes kann das VintaSoft Barcode .NET SDK generieren?
VintaSoft Barcode .NET SDK generiert alle Arten von Data-Matrix-Barcodes.
Hier ist der C#-Code, der zeigt, wie eine Data-Matrix-Barcode-Bitmap generiert wird:
/// <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);
}
}
Hier ist C#-Code, der zeigt, wie ein Vektorbild (SVG) eines Data-Matrix-Barcodes generiert wird:
/// <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();
}
}