SVGに挑むTinyVG
(zig.news)-
Zig言語向けのSVGライブラリを作るうちに、独自のベクターフォーマットを作ることになった
-
現在のベクターグラフィックスでは、ほとんどがSVGを使用している
→ しかし新しいSVGライブラリの実装は難しい
⇨ XML/CSS/ECMAScriptなどを基盤として作られているため
⇨ さらにSVG自体も複雑すぎて、実装ごとに画像の見え方が異なる
→ 特にを含む場合はシステムによって異なる
⇨ そのため最近では、TextをすべてPathに変換する回避策が使われている
- TinyVGは、SVGで本当に必要な95%の機能を備えている
→ アニメーション、スクリプティング、外部リソース、階層的な文書構造などは除外
- 設計目標
→ コンパクトなバイナリエンコーディング(SVGより小さい)
→ 複数プラットフォームをサポート可能に:GPU(ゲーム)、CPU(デスクトップアプリ)、Web、組み込み
→ SVGのサブセット
→ 多様な用途に利用可能:アプリ/ツールバーのアイコン、グラフやダイアグラム、漫画/イラストなど
→ シンプルな実装
- 最適化されたSVG比で40%のサイズを達成
3件のコメント
うーん、それでもテキストエンコーディングであってほしいですね。
Tizenで使われているThorVGもあります(略称がかぶりますね w)
https://github.com/Samsung/thorvg
でも、肝心のメインサイトである https://tinyvg.tech/ はダウンしている状態ですね。
SVGが複雑だというのは広く知られている事実で、さまざまな代替案も出てきています。
GoogleのIconVG https://github.com/google/iconvg
アニメーション向けベクターグラフィックスのLottie http://airbnb.io/lottie/