VintaSoft Barcode .NET SDK это профессиональный кросс-платформенный SDK для Windows, Linux, macOS, Android, который позволяет распознавать и генерировать штрих-коды Aztec Code в .NET, WPF, Веб, MAUI. VintaSoft Barcode .NET SDK позволяет встраивать функциональность распознавания и генерации штрих-кодов Aztec Code, используя всего несколько строк кода.
Что такое штрих-код Aztec Code?
Штрих-код Aztec Code - это самый компактный двумерный матричный штрих-код. Он занимает меньше места, чем другие матричные штрих-коды, из-за отсутствия свободной зоны и компактного поискового паттерна. Отличительной особенностью штрих-кода Aztec Code является уникальный квадратный поисковый паттерн "bullseye" расположенный в центре штрих-кода:
Особенности штрих-кода Aztec Code
Штрих-код Aztec Code определяется стандартом ISO/IEC 24778 от 2008 года. Штрих-код Aztec Code может хранить смешанные данные различного типа в трех режимах кодирования:
- Alphanumeric (до 3067 символов)
- Byte (до 1914 байт)
- Numeric (до 3822 цифр)
Штрих-код Aztec Code использует алгоритм коррекции ошибок Reed-Solomon, что позволяет распознавать поврежденные штрих-коды. При создании штрих-кода пользователь может указать процент области данных, который будет использоваться кодовыми словами исправления ошибок.
Поддержка стандарта GS1 позволяет кодировать данные в формате GS1 (
BarcodeSymbologySubsets.GS1Aztec).
Штрих-код Aztec Code может кодировать следующие специальные символы:
Штрих-код Aztec Rune – когда нужна простая метка
Существует специальная версия штрих-кода Aztec Code – Aztec Rune, которая может кодировать только одно число в диапазоне от 0 до 255 (один байт):
Штрих-код Aztec Rune имеет компактный размер – 11х11 модулей и может быть использован в качестве метки на производстве, например, для контроля ориентации упаковки, либо для контроля комплектации товара. Также данную метку можно использовать для создания ориентированной опорной точки на изображении, для этого
VintaSoft Barcode .NET SDK предоставляет точные координаты центра поискового паттерна распознанного штрих-кода:
AztecInfo.BulleyeCenter.
Данная возможность также может быть использована в бланках OMR для быстрого автоматического распознавания OMR форм. Подробнее о автоматическом выравнивании изображений используя штрих-код Aztec Rune можно прочитать в статье
Использование 2D штрих-кодов для выравнивания изображений в .NET/C#.
Структура матрицы
Матрица штрих-кода Aztec Code имеет две версии - полноразмерная и компактная. Компактная версия может иметь до 4 слоев данных (полноразмерная имеет до 32 слоев) и отличается уменьшенным посковым паттерном и отсутствием тайминг паттернов:
- Поисковый паттерн
- Информация о формате
- Тайминг паттерны
- Паттерны ориентации
- Слой данных и коррекции ошибок
Штрих-код Aztec Code может быть не только квадратным благодаря специальному символу "Structure Append"
Штрих-код Aztec Code поддерживает специальный символ "Structure Append", который позволяет разделить данные на несколько штрих-кодов Aztec Code. "Structure Append" cимвол кодируется в штрих-коде и позволяет однозначно определить количество штрих-кодов-частей и их порядок.
Благодаря тому, что штрих-код Aztec Code не имеет свободной зоны можно создавать прямоугольные штрих-коды Aztec Code для маркировки вытянутой области:
VintaSoft Barcode .NET SDK содержит алгоритм восстановления данных из набора штрих-кодов-частей Aztec Code, которые были разделены используя символ "Structure Append".
Какие штрих-коды Aztec может распознавать VintaSoft Barcode .NET SDK?
VintaSoft Barcode .NET SDK распознает все типы штрих-кодов Aztec Code и Aztec Rune. При распознавании применяются уникальные алгоритмы позволяющие быстро распознавать штрих-коды, которые имеют различные проблемы:
- поврежденная матрица
- низкая контрастность
- низкая модуляция
- неравномерное освещение
- сжатие по одной из строн
- пространственные искажения
- напечатанные на искаженных поверхностях
- большое количество штрих-кодов на одном изображении
Вот C# код, который демонстрирует как распознать штрих-коды Aztec Code в изображении, которое получено с камеры:
/// <summary>
/// Reads Aztec Code barcodes from a <see cref="System.Drawing.Bitmap"/>.
/// </summary>
/// <param name="bitmap">A bitmap with barcodes.</param>
public static void ReadAztecCodeBarcodesFromBitmap(System.Drawing.Bitmap bitmap)
{
// create barcode reader
using (Vintasoft.Barcode.BarcodeReader reader = new Vintasoft.Barcode.BarcodeReader())
{
// specify that reader must search for Aztec barcodes
reader.Settings.ScanBarcodeTypes = Vintasoft.Barcode.BarcodeType.Aztec;
// 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();
}
}
}
}
Какие штрих-коды Aztec может генерировать VintaSoft Barcode .NET SDK?
VintaSoft Barcode .NET SDK генерирует все типы штрих-кодов Aztec Code и Aztec Rune.
Вот C# код, который демонстрирует как сгенерировать растровое изображение штрих-кода Aztec Code:
/// <summary>
/// Returns the Aztec Code 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 GetAztecCodeBarcodeAsBitmap(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.Aztec;
barcodeWriter.Settings.Value = value;
// get a barcode image as System.Drawing.Bitmap
return Vintasoft.Barcode.GdiExtensions.GetBarcodeAsBitmap(barcodeWriter);
}
}
Вот C# код, который демонстрирует как сгенерировать векторное (SVG) изображение штрих-кода Aztec Code:
/// <summary>
/// Returns the Aztec Code barcode in vector form as a SVG string.
/// </summary>
/// <param name="barcodeValue">Barcode value.</param>
public static void GetAztecCodeBarcodeAsSvgString(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.Aztec;
barcodeWriter.Settings.Value = barcodeValue;
// generate Aztec Code barcode as a SVG string
return barcodeWriter.GetBarcodeAsSvgFile();
}
}