SVG編集のためのJavaライブラリをつくりかけている
SVG形式データを作成・編集するためのライブラリSvn-utilをJavaで書き始めた。
▲サンプルプログラムで描画したSVG
理由はもちろんSVG画像編集をJavaコードから行いたい事情があったから。当初、ApacheのBatikで大方のことはできると考えていたのだけれど、これが大いに外れた。
BatikはSVGからPNG等へのラスタライズやAWT/Swingの画面コンポーネントとの橋渡しが主目的らしく、SVG標準に基づくおびただしい数のDOMオブジェクトの実装を用意していながら、それらを直接操作するAPIに関して何も説明がない(残念なことである)。
SVGGraphics2DというSVGデータ生成用のAPIがおそらく私の求めていたものに近しいのだけれど、これもAWT/Swingとの互換性やDOM標準準拠の要請に基づいてデザインされているせいか、どうにも求めていた抽象度に見合わなかった。
そんなこんなでともかく自分自身の要求に合致したAPIをつくることにした次第。作成に当たってはSVG1.1仕様の日本語版に大変お世話になった。この仕様書もよくよく読むと曖昧だったり自分の知識では理解できない箇所があったりと大変ではあったけど。
そしてSVGドキュメントの生成に焦点を絞っているにもかかわらず、まだこの仕様書に記載されていることのたぶん一割も実装できていない・・・(SVG1.1は最新の仕様に比べればまだコンパクトなようである)。