Распознавание и генерация штрих-кодов DotCode используя VintaSoft Barcode .NET SDK

Категория: Штрих-коды.NET

10 июля 2025

VintaSoft Barcode .NET SDK это профессиональный кросс-платформенный SDK для Windows, Linux, macOS, Android, который позволяет распознавать и генерировать штрих-коды DotCode в .NET, WPF, Веб, MAUI. Нужно всего несколько строчек кода чтобы добавить возможность распознавания и генерации штрих-кодов DotCode в .NET приложение.


Что такое штрих-код DotCode?

DotCode это двумерный матричный штрихкод, разработанный для надежного считывания при печати с помощью высокоскоростных струйных или лазерных точечных технологий. Используя этот штрих-код динамические данные (дата производства, срок годности, серйный номер, …) могут быть нанесены на продукцию на скоростях производственной линии. Отличительной особенностью штрих-кода DotCode является отсутствие каких либо видимых фиксированных паттернов, а также точки матрицы расположенные в "шахматном" порядке:


Особенности штрих-кода DotCode

Штрих-код DotCode определяется стандартом AIM от 2019 года, который описывает современную версию DotCode Rev 4.

Штрих-код DotCode может хранить неограниченный объем смешанных данных в трех режимах кодирования:

Поддержка стандарта GS1 позволяет кодировать данные в формате GS1 (BarcodeSymbologySubsets.GS1DotCode).

Штрих-код DotCode использует алгоритм коррекции ошибок Reed-Solomon, что позволяет распознавать поврежденные штрих-коды.

Штрих-код DotCode может кодировать следующие специальные символы:


Структура матрицы

Матрица DotCode может иметь квадратную или прямоугольную форму, что позволяет гибко настраивать соотношение сторон для различных применений. Минимальный размер символа может быть очень маленьким (до 3х3 мм), что делает его идеальным для маркировки компактных изделий, таких как сигаретные пачки или фармацевтическая продукция.



VintaSoft Barcode .NET SDK может генерировать штрихкод DotCode в виде растрового, либо векторного изображения, а также в виде структуры MatrixBarcodeStructure, что позволяет организовать высокоскоростную печать штрихкода.


Какие DotCode может распозновать VintaSoft Barcode .NET SDK?

VintaSoft Barcode .NET SDK при распознавании штрих-кодов DotCode применяет уникальные алгоритмы, которые позволяют быстро распознавать штрих-коды, которые имеют различные проблемы:



Вот C# код, который демонстрирует как распознать штрих-коды DotCode в изображении, которое получено с камеры:
/// <summary>
/// Reads DotCode barcodes from a <see cref="System.Drawing.Bitmap"/>.
/// </summary>
/// <param name="bitmap">A bitmap with barcodes.</param>
public static void ReadDotCodeBarcodesFromBitmap(System.Drawing.Bitmap bitmap)
{
    // create barcode reader
    using (Vintasoft.Barcode.BarcodeReader reader = new Vintasoft.Barcode.BarcodeReader())
    {
        // specify that reader must search for DotCode barcodes
        reader.Settings.ScanBarcodeTypes = Vintasoft.Barcode.BarcodeType.DotCode;

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


Какие штрих-коды DotCode может генерировать VintaSoft Barcode .NET SDK?

VintaSoft Barcode .NET SDK генерирует все типы штрих-кодов DotCode.

Вот C# код, который демонстрирует как сгенерировать растровое изображение штрих-кода DotCode:
/// <summary>
/// Returns the DotCode 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 GetDotCodeBarcodeAsBitmap(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.DotCode;
        barcodeWriter.Settings.Value = value;

        // get a barcode image as System.Drawing.Bitmap
        return Vintasoft.Barcode.GdiExtensions.GetBarcodeAsBitmap(barcodeWriter);
    }
}


Вот C# код, который демонстрирует как сгенерировать векторное (SVG) изображение штрих-кода DotCode:
/// <summary>
/// Returns the DotCode barcode in vector form as a SVG string.
/// </summary>
/// <param name="barcodeValue">Barcode value.</param>
public static void GetDotCodeBarcodeAsSvgString(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.DotCode;
        barcodeWriter.Settings.Value = barcodeValue;

        // generate DotCode barcode as a SVG string
        return barcodeWriter.GetBarcodeAsSvgFile();
    }
}