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 может хранить неограниченный объем смешанных данных в трех режимах кодирования:
- ASCII (0..127)
- Extended ASCII (128..255)
- Byte
Поддержка стандарта 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();
}
}