>

Пакеты Conan>

qr-code-generator

qr-code-generator

Многоязычная библиотека для создания QR-кодов. Она предоставляет чистую и корректную реализацию генерации QR-кодов в соответствии со стандартом ISO/IEC 18004. Библиотека доступна на нескольких языках программирования с единообразным API и ориентирована на гибкость, точность и компактность реализации.

Особенности

  • поддержка всех 40 версий и всех 4 уровней коррекции ошибок согласно стандарту QR Code Model 2;
  • доступна на 6 языках программирования с практически идентичной функциональностью: Java, TypeScript/JavaScript, Python, Rust, C++, C;
  • возможность повышения уровня коррекции ошибок без увеличения версии;
  • поддержка числового и буквенно-цифрового режимов для более компактного кодирования.

Основные компоненты

Библиотека предоставляет высокоуровневый API для кодирования текстовых и бинарных данных, а также низкоуровневый для ручного управления сегментами (подробнее с документацией можно ознакомиться здесь).

Кодирование текстовых и бинарных данных

Основной способ создания QR-кода — использование функций высокого уровня, которые принимают строку или бинарные данные и возвращают готовый QR-код с автоматически подобранными параметрами.

Основные функции:

  • encodeText() / encode_text() — создание QR-кода из текстовой строки;
  • encodeBinary() / encode_binary() — создание QR-кода из бинарных данных;
  • автоматический выбор минимальной версии, вмещающей данные;
  • возможность повышения уровня коррекции ошибок без увеличения версии.

Ручное управление сегментами

Для более тонкого контроля над процессом кодирования библиотека предоставляет API для создания последовательности сегментов данных с возможностью переключения между режимами.

Основные возможности:

  • makeSegments() / make_segments() — создание сегментов из текста с автоматическим выбором оптимального режима для каждой части;
  • encodeSegments() / encode_segments() — создание QR-кода из заранее подготовленных сегментов;
  • поддержка ECI сегментов для указания кодировки (во всех языках кроме C);
  • возможность задания минимальной и максимальной версии, маски и флага повышения уровня коррекции.

Работа с модулями QR-кода

Сгенерированный QR-код предоставляет методы для доступа к его параметрам и отдельным модулям (пикселям), что позволяет визуализировать его любым способом.

Основные методы:

  • getSize() / get_size() — получение размера QR-кода в модулях (от 21 до 177);
  • getModule(x, y) / get_module(x, y) — получение цвета модуля (true — тёмный, false — светлый);
  • toSvgString() / to_svg_str() — генерация SVG-представления (доступно во всех языках, кроме C).

C/C++ API

Реализация на C и C++ имеет ряд особенностей, связанных с работой без динамического выделения памяти.

Особенности C/C++ API:

  • C++: классы QrCode и QrSegment с методами encodeText(), encodeBinary(), encodeSegments();
  • C: функции с префиксом qrcodegen_, работающие с предоставленными пользователем буферами фиксированного размера;
  • полное отсутствие аллокации в куче (malloc), все структуры размещаются в стеке или в буферах, переданных вызывающим кодом;
  • предопределённые константы: qrcodegen_BUFFER_LEN_FOR_VERSION(n) и qrcodegen_BUFFER_LEN_MAX для расчёта размера буферов.

Дополнительные возможности (Java)

В Java-версии доступны расширенные функции:

  • кодирование японского текста в режиме Kanji для значительной экономии места по сравнению с UTF-8;
  • вычисление оптимального переключения режимов для текста, содержащего смесь чисел, буквенно-цифровых символов и общих данных;
  • генерация растрового изображения (BufferedImage) непосредственно из QR-кода.

Использование в проекте

Документация по использованию Conan-пакетов для разработки приложений для ОС Аврора.

На сервере Conan библиотеки заранее собраны и размещены под различные версии ОС Аврора 4 и ОC Аврора 5. Для данных версий представлены архитектуры armv7hl, aarch64 и x84_64.

Библиотеку можно использовать в проекте с помощью данного conanfile.py

from conan import ConanFile

class Application(ConanFile):
    settings = "os", "compiler", "arch", "build_type"
    generators = "PkgConfigDeps"

    requires = (
        "qr-code-generator/1.8.0@aurora",
    )    

Процесс локальной сборки описан в документации.

qr-code-generator

High-quality QR Code generator library
Лицензия
MIT
Версия
Автор
Daniil Markevich <d.markevich@omp.ru>
Скачать
armv7
29.37 Kb
MD5: e68cda1f59eede78ec6cdb5def5a36b7
Updated: 03.09.2025, 17:39:01
armv8
32.8 Kb
MD5: f96ce654f7fe88ca9cd4cd6c59e7e641
Updated: 03.09.2025, 17:38:47
x86_64
34.22 Kb
MD5: c7b28ed6a5d7c1e97da2a2b7e89d3762
Updated: 03.09.2025, 17:39:03
Использование в проекте

Мы используем cookies для персонализации сайта и его более удобного использования. Вы можете запретить cookies в настройках браузера.

Пожалуйста ознакомьтесь с политикой использования cookies.