Erkennen und Generieren von Data-Matrix-Barcodes mit dem VintaSoft Barcode .NET SDK.

Blog-Kategorie: Barcode.NET

19.08.2025

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:

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.



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:



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();
    }
}