VintaSoft Barcode .NET SDK를 사용하여 Data Matrix 바코드를 인식하고 생성합니다.

블로그 카테고리: 바코드.NET

2025/08/19

VintaSoft Barcode .NET SDK는 Windows, Linux, macOS용 전문 크로스 플랫폼 SDK로, .NET, WPF, 웹, MAUI에서 Data Matrix 바코드를 인식하고 생성할 수 있습니다. VintaSoft Barcode .NET SDK를 사용하면 단 몇 줄의 코드로 데이터 매트릭스 바코드 인식 및 생성 기능을 내장할 수 있습니다.


데이터 매트릭스 바코드란 무엇인가요?

데이터 매트릭스는 산업, 생산 및 제품 라벨링에 널리 사용되는 2차원 매트릭스 바코드입니다. 데이터 매트릭스 바코드의 특징은 바코드 양쪽에 실선 형태의 "L" 검색 패턴이 있다는 것입니다.



데이터 매트릭스 바코드의 특징

최신 데이터 매트릭스 바코드 버전인 ECC200은 2006년 ISO/IEC 16022 표준에 정의되어 있습니다. 이 표준은 ECC000부터 ECC140까지의 이전 버전도 설명하지만, 이러한 버전은 사용을 권장하지 않습니다.

데이터 매트릭스 바코드는 세 가지 인코딩 모드로 다양한 유형의 데이터를 혼합하여 저장할 수 있습니다.

데이터 매트릭스 바코드는 리드-솔로몬 오류 수정 알고리즘을 사용하여 손상된 바코드도 인식할 수 있습니다.

GS1 표준 지원을 통해 데이터를 GS1 형식(BarcodeSymbologySubsets.GS1DataMatrix)으로 인코딩할 수 있습니다.

데이터 매트릭스 바코드는 다음과 같은 특수 기호를 인코딩할 수 있습니다.


직사각형 데이터 매트릭스 바코드 - 마킹 영역이 정사각형이 아닌 경우

직사각형 데이터 매트릭스 바코드에는 6가지 특수 버전이 있습니다.


이 바코드는 사용 가능한 영역이 정사각형 바코드를 허용하지 않는 소형 품목에 사용됩니다.


데이터 매트릭스 바코드 구조

Data Matrix ECC200 바코드 매트릭스 버전은 10x10부터 144x144 모듈까지 24가지 정사각형 버전과 8x18, 8x32, 12x26, 12x36, 16x36, 16x48 모듈의 직사각형 버전을 제공합니다. 바코드의 방향은 바코드의 왼쪽 하단에 위치한 "L" 검색 패턴의 중심을 통해 결정됩니다.



최신 버전의 Data Matrix ECC200은 구형 버전인 ECC000-ECC140과 쉽게 구분할 수 있습니다. ECC200 버전에서는 매트릭스 크기가 항상 짝수이고, ECC000-ECC140에서는 항상 홀수입니다.따라서 ECC200 버전에서는 항상 오른쪽 상단에 흰색 모듈이 있고, 이전 버전에서는 항상 검은색 모듈이 있습니다.


"GS1 DataMatrix" 바코드란 무엇입니까?

""GS1 DataMatrix" 바코드는 GS1 시스템 데이터 형식으로 값을 저장하는 DataMatrix 바코드입니다. VintaSoft Barcode .NET SDK는 "GS1 DataMatrix" 바코드를 생성하고 인식할 수 있습니다.
다음은 "GS1 DataMatrix" 바코드 이미지입니다.


"GS1 Digital Link DataMatrix" 바코드란 무엇입니까?

"GS1 디지털 링크 데이터매트릭스" 바코드는 "GS1 디지털 링크" 형식으로 값을 저장하는 데이터매트릭스 바코드입니다. VintaSoft Barcode .NET SDK는 "GS1 디지털 링크 데이터매트릭스" 바코드를 생성하고 인식할 수 있습니다.
다음은 "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 압축 DataMatrix" 바코드란 무엇입니까?

"XFA 압축 DataMatrix" 바코드는 Adobe XFA 사양에 따라 압축된 데이터를 저장하는 DataMatrix 바코드입니다. VintaSoft Barcode .NET SDK는 "XFA 압축 데이터 매트릭스" 바코드를 생성하고 인식할 수 있습니다.
다음은 "XFA 압축 DataMatrix" 바코드 이미지입니다.


"ISBT 128 DataMatrix" 바코드란 무엇입니까?

"ISBT 128 DataMatrix" 바코드는 수혈 및 이식에 필요한 정보를 포함하는 DataMatrix 바코드의 하위 집합입니다. VintaSoft Barcode .NET SDK는 "ISBT 128 DataMatrix" 바코드를 생성하고 인식할 수 있습니다.
다음은 "ISBT 128 DataMatrix" 바코드 이미지입니다.


"HIBC LIC DataMatrix" 바코드란 무엇입니까?

"HIBC LIC DataMatrix" 바코드는 의료기기 UDI 규정 준수를 위해 제조업체, 제품 및 배치를 식별하는 데 사용되는 DataMatrix 바코드의 하위 집합입니다. VintaSoft Barcode .NET SDK는 "HIBC LIC DataMatrix" 바코드를 생성하고 인식할 수 있습니다.
다음은 "HIBC LIC DataMatrix" 바코드 이미지입니다.


대량의 데이터를 인코딩해야 하는 경우 특수 기호인 "구조 추가(Structure Append)"를 사용할 수 있습니다.

DataMatrix 바코드는 데이터를 여러 DataMatrix 바코드로 분할할 수 있는 특수 기호 "구조 추가(Structure Append)"를 지원합니다. "구조 추가" 기호는 바코드에 인코딩되어 있으며 바코드 부분의 개수와 순서를 확실하게 확인할 수 있도록 합니다.

VintaSoft Barcode .NET SDK에는 "구조 추가" 기호를 사용하여 분리된 데이터 매트릭스의 바코드 부분 집합에서 데이터를 복구하는 알고리즘이 포함되어 있습니다.


VintaSoft Barcode .NET SDK는 어떤 데이터 매트릭스 바코드를 인식할 수 있습니까?

VintaSoft Barcode .NET SDK는 모든 유형의 ECC200 버전 Data Matrix 바코드를 인식합니다. 인식 과정에서 고유한 알고리즘을 사용하여 다양한 문제가 있는 바코드를 신속하게 인식합니다.



다음은 카메라로 캡처한 이미지에서 Data Matrix 바코드를 인식하는 방법을 보여주는 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는 어떤 Data Matrix 바코드를 생성할 수 있습니까?

VintaSoft Barcode .NET SDK는 모든 유형의 Data Matrix 바코드를 생성합니다.

다음은 Data Matrix 바코드 비트맵을 생성하는 방법을 보여주는 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);
    }
}


다음은 Data Matrix 바코드의 벡터(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();
    }
}