このプロジェクトについて
LunaSVGは、Scalable Vector Graphics(SVG)ファイルをレンダリングおよび操作するためのC++ライブラリであり、軽量でポータブルになるように設計されています。静的レンダリングを対象としており、SVG 1.1およびSVG 1.2 Tiny仕様のほぼすべてのグラフィカル機能をサポートしていますが、アニメーション、フィルタ、スクリプトは対象外です。ライブラリは静的出力に焦点を当てているため、アニメーションが追加される可能性は低いですが、フィルタのサポートは後で追加されるかもしれません。
主な機能:
- ファイルまたはメモリ内データからSVGドキュメントを読み込み、ビットマップにレンダリングし、PNGとしてエクスポートできます。
- 実行時に外部CSSスタイルシートを適用して、レンダリング前にドキュメントのスタイルを変更でき、1つの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.