Об этом проекте

LunaSVG — это библиотека на C++ для рендеринга и обработки файлов масштабируемой векторной графики (SVG), разработанная как легковесная и переносимая. Она ориентирована на статический рендеринг и поддерживает практически все графические возможности спецификаций SVG 1.1 и SVG 1.2 Tiny, за заметными исключениями анимации, фильтров и скриптов. Добавление анимации маловероятно, поскольку библиотека ориентирована на статический вывод, хотя поддержка фильтров может быть добавлена позже. Основные возможности: - Загрузка SVG-документов из файлов или данных в памяти и их рендеринг в растровые изображения с экспортом в PNG. - Применение внешних CSS-таблиц стилей во время выполнения для изменения стиля документа перед рендерингом, что позволяет создавать варианты, например сезонные темы, из одного источника SVG. - Проверка попадания с помощью elementFromPoint(x, y), которая возвращает элемент под указанной координатой; затем атрибуты, такие как stroke, stroke-width и transform, могут быть изменены и повторно отрендерены. - Широкая поддержка элементов, включая a, circle, clipPath, defs, ellipse, g, image, line, linearGradient, marker, mask, path, pattern, polygon, polyline, radialGradient, rect, stop, style, svg, symbol, text, tspan и use. Установка и интеграция: - Сборка с помощью CMake или Meson. Пользователи CMake могут установить и использовать библиотеку через find_package(lunasvg) и линковку lunasvg::lunasvg, либо подключить через FetchContent. Пользователи Meson могут использовать dependency('lunasvg') или wrap-файл. - Опция сборки USE_SYSTEM_PLUTOVG (по умолчанию OFF) позволяет линковать системный plutovg 1.0.0+ вместо встроенного подмодуля с откатом к подмодулю при отсутствии. Инструменты: - Утилита командной строки svg2png преобразует файлы SVG в PNG, принимая необязательное разрешение (например, 512x512) и цвет фона (например, 0xff00ffff). Внедрение: В README перечислены проекты, использующие LunaSVG, включая OpenSiv3D, PICsimLab, MoneyManagerEx, RmlUi, EKA2L1, ObEngine, OTTO, EmulationStation-DE, Dear ImGui, Multi Theft Auto: San Andreas, CARLA Simulator, AUI Framework, node-canvas и pillow-lunasvg. Лицензия: MIT.