Об этом проекте
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.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.