À propos du projet
LunaSVG est une bibliothèque C++ pour le rendu et la manipulation de fichiers Scalable Vector Graphics (SVG), conçue pour être légère et portable. Elle cible le rendu statique et prend en charge presque toutes les fonctionnalités graphiques des spécifications SVG 1.1 et SVG 1.2 Tiny, à l'exception notable de l'animation, des filtres et des scripts. L'animation n'est probablement pas près d'être ajoutée, car la bibliothèque se concentre sur la sortie statique, bien que la prise en charge des filtres puisse arriver plus tard.
Capacités principales :
- Charger des documents SVG depuis des fichiers ou des données en mémoire et les rendre en bitmaps, avec export PNG.
- Appliquer des feuilles de style CSS externes à l'exécution pour restyler un document avant le rendu, permettant des variantes telles que des thèmes saisonniers à partir d'une seule source SVG.
- Hit testing via elementFromPoint(x, y), qui renvoie l'élément sous une coordonnée ; des attributs tels que stroke, stroke-width et transform peuvent ensuite être modifiés et re-rendus.
- Large couverture d'éléments incluant a, circle, clipPath, defs, ellipse, g, image, line, linearGradient, marker, mask, path, pattern, polygon, polyline, radialGradient, rect, stop, style, svg, symbol, text, tspan et use.
Installation et intégration :
- Compilation avec CMake ou Meson. Les utilisateurs de CMake peuvent l'installer et l'utiliser via find_package(lunasvg) et lier lunasvg::lunasvg, ou l'intégrer avec FetchContent. Les utilisateurs de Meson peuvent utiliser dependency('lunasvg') ou un fichier wrap.
- Une option de compilation USE_SYSTEM_PLUTOVG (par défaut OFF) permet de lier contre un plutovg système 1.0.0+ au lieu du sous-module intégré, avec repli sur le sous-module s'il n'est pas trouvé.
Outillage :
- Un utilitaire en ligne de commande svg2png convertit les fichiers SVG en PNG, acceptant une résolution optionnelle (par ex. 512x512) et une couleur d'arrière-plan (par ex. 0xff00ffff).
Adoption :
Le README liste les projets utilisant LunaSVG, notamment OpenSiv3D, PICsimLab, MoneyManagerEx, RmlUi, EKA2L1, ObEngine, OTTO, EmulationStation-DE, Dear ImGui, Multi Theft Auto: San Andreas, CARLA Simulator, AUI Framework, node-canvas et pillow-lunasvg.
Licence : MIT.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.