VintaSoft Barcode .NET SDK を使用して、データ マトリックス バーコードを認識および生成します。

ブログ カテゴリ: バーコード.NET

2025/08/19

VintaSoft Barcode .NET SDKは、Windows、Linux、macOSに対応したプロフェッショナルなクロスプラットフォームSDKで、.NET、WPF、Web、MAUIでデータマトリックスバーコードを認識・生成できます。VintaSoft Barcode .NET SDKを使用すると、わずか数行のコードでデータマトリックスバーコードの認識・生成機能を組み込むことができます。


データマトリックスバーコードとは?

データマトリックスは、産業、製造、製品ラベルの分野で広く普及している2次元マトリックスバーコードです。データマトリックスバーコードの特徴は、バーコードの両側に実線で「L」の検索パターンが描かれていることです。



データマトリックスバーコードの特徴

最新のデータマトリックスバーコードバージョンECC200は、2006年のISO/IEC 16022規格で定義されています。この規格では、ECC000からECC140までの旧バージョンについても規定されていますが、これらのバージョンは使用が推奨されていません。

データマトリックスバーコードは、3 つのエンコード モードで異なるタイプの混合データを保存できます。

データマトリックスバーコードは、破損したバーコードを認識できるリードソロモン誤り訂正アルゴリズムを使用します。

GS1規格のサポートにより、GS1形式(BarcodeSymbologySubsets.GS1DataMatrix)でデータをエンコードできます。

データ マトリックス バーコードは次の特殊シンボルをエンコードできます:


長方形のデータ マトリックス バーコード - マーキング領域が正方形でない場合

長方形のデータ マトリックス バーコードには 6 つの特殊バージョンがあります:


これらのバーコードは、使用可能な領域が正方形のバーコードを許可しない場合に、小さなアイテムに使用されます。


データ マトリックス バーコードの構造

データ マトリックス バーコード マトリックス バージョン ECC200 には、10x10 から 144x144 モジュールまでの 24 の正方形バージョンと、8x18、8x32、12x26、12x36、16x36、16x48 モジュールの長方形バージョンがあります。バーコードの方向は、バーコードの左下隅に中心がある検索パターン「L」によって決定されます。



最新バージョンのData Matrix ECC200と旧バージョンのECC000-ECC140は簡単に区別できます。ECC200バージョンではマトリックスサイズが常に偶数で、ECC000-140では常に奇数です。そのため、ECC200バージョンでは右上隅に常に白いモジュールがあり、旧バージョンでは常に黒いモジュールがあります。


「GS1 DataMatrix」バーコードとは何ですか?

"GS1 DataMatrix"バーコードは、GS1システムデータ形式で値を格納するDataMatrixバーコードです。VintaSoft Barcode .NET SDKは、「GS1 DataMatrix」バーコードを生成および認識できます。
「GS1 DataMatrix」バーコードの画像はこちらです:


「GS1 Digital Link DataMatrix」バーコードとは何ですか?

"GS1 Digital Link DataMatrix"バーコードは、「GS1 Digital Link」形式で値を保存するDataMatrixバーコードです。VintaSoft Barcode .NET SDKは、「GS1 Digital Link DataMatrix」バーコードを生成および認識できます。
「GS1 Digital Link DataMatrix」バーコードの画像はこちらです:


PPN バーコードとは何ですか?

PPN バーコードは、製薬業界で追跡、識別、偽造防止のために世界的に使用されている DataMatrix バーコードです。VintaSoft Barcode .NET SDK は PPN バーコードを生成および認識できます。
PPN バーコードの画像はこちらです:


「Royal Mail Mailmark CMDM」バーコードとは何ですか?

"Royal Mail Mailmark CMDM" バーコードは、英国の郵便物の仕分けと追跡を自動化するために設計された DataMatrix バーコードです。VintaSoft Barcode .NET SDK は、「Royal Mail Mailmark CMDM」バーコードを生成および認識できます。
「Royal Mail Mailmark CMDM」バーコードの画像は次のとおりです。


「XFA 圧縮データマトリックス」バーコードとは何ですか?

「XFA 圧縮 DataMatrix」バーコードは、Adobe XFA 仕様に従って圧縮されたデータを保存する DataMatrix バーコードです。VintaSoft Barcode .NET SDK は、「XFA 圧縮 DataMatrix」バーコードを生成および認識できます。
「XFA 圧縮データマトリックス」バーコードの画像は次のとおりです。


「ISBT 128 データマトリックス」バーコードとは何ですか?

「ISBT 128 データマトリックス」バーコードは、輸血や移植に必要な情報を含むデータマトリックスバーコードのサブセットです。VintaSoft Barcode .NET SDK は、「ISBT 128 データマトリックス」バーコードを生成および認識できます。
「ISBT 128 データマトリックス」バーコードの画像は次のとおりです。


「HIBC LIC データマトリックス」バーコードとは何ですか?

「HIBC LIC DataMatrix」バーコードは、医療機器の UDI 準拠、メーカー、製品、バッチの識別に使用される DataMatrix バーコードのサブセットです。VintaSoft Barcode .NET SDK は、「HIBC LIC DataMatrix」バーコードを生成および認識できます。
「HIBC LIC DataMatrix」バーコードの画像は次のとおりです。


大量のデータをエンコードする必要がある場合 - 特殊なシンボル構造追加

Data Matrix バーコードは、特殊なシンボル「構造追加」をサポートしており、これによりデータを複数の Data Matrix バーコードに分割できます。 「構造追加」シンボルはバーコードにエンコードされており、バーコード部分の数と順序を明確に特定できます。

VintaSoft Barcode .NET SDK には、「構造追加」シンボルを使用して分離されたデータ マトリックス部分のバーコード セットからデータを回復するためのアルゴリズムが含まれています。


VintaSoft Barcode .NET SDK はどのようなデータ マトリックス バーコードを認識できますか?

VintaSoft Barcode .NET SDK は、ECC200 バージョンのすべての種類のデータ マトリックス バーコードを認識します。認識時には、さまざまな問題のあるバーコードをすばやく認識できる独自のアルゴリズムが使用されます:



カメラでキャプチャした画像内のデータ マトリックス バーコードを認識する方法を示す C# コードは次のとおりです:
/// <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();
            }
        }
    }
}


VintaSoft Barcode .NET SDK はどのようなデータ マトリックス バーコードを生成できますか?

VintaSoft Barcode .NET SDK は、すべての種類のデータ マトリックス バーコードを生成します。

データ マトリックス バーコード ビットマップの生成方法を示す C# コードは次のとおりです。
/// <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);
    }
}


データ マトリックス バーコードのベクター (SVG) イメージの生成方法を示す C# コードは次のとおりです。
/// <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();
    }
}