ZBar — это свободная библиотека с открытым исходным кодом для обнаружения и декодирования штрих‑кодов и QR‑кодov из статических изображений и видеопотоков. Она реализована на языке C и предоставляет набор API и утилит для встраивания в настольные и встраиваемые приложения. Проект ориентирован на быструю обработку изображений, поддержку нескольких форматов кодирования и простую интеграцию с прикладными интерфейсами, включая биндинги для других языков программирования и графические виджеты.
Библиотека была разработана как решение для автоматического распознавания линейных и двумерных кодов в разнообразных условиях съёмки. В её состав входят движок обнаружения, алгоритмы декодирования и вспомогательные компоненты для захвата кадров с камер. Благодаря модульной архитектуре ZBar может использоваться как в консольных утилитах, так и внутри приложений на C++, Python, Perl и Ruby через соответствующие биндинги. Для настольных интерфейсов доступны виджеты под Qt и GTK, облегчающие интеграцию функций сканирования в графические программы.
- Поддерживаемые форматы: EAN‑13, EAN‑8, UPC‑A, UPC‑E, Code 128, Code 39, Interleaved 2 of 5, QR‑Code и другие распространённые символогии.
- Языки и биндинги: основной API на C с биндингами для C++, Python, Perl и Ruby.
- Видеопотоки и захват камер: поддержка захвата кадров с камер для реального времени и обработка последовательностей изображений.
- Интерфейсы GUI: предоставляются виджеты и примеры интеграции для сред Qt и GTK.
- Производительность: оптимизированные алгоритмы для быстрого обнаружения и декодирования в условиях ограниченных ресурсов.
- Платформенная совместимость: кроссплатформенная сборка, применимая на Unix‑подобных системах и в средах с поддержкой POSIX.
- Лицензирование: распространяется под свободной лицензией, что позволяет использовать библиотеку в открытых и закрытых проектах при соблюдении условий лицензии.
- Утилиты и примеры: пакет включает примерные приложения и утилиты командной строки для тестирования и демонстрации возможностей библиотеки.
- Архитектура: модульная структура, разделяющая захват, предобработку изображения, обнаружение контуров и собственно декодирование символогий.