最近のSVG事情

iEditSVG 機能を強化したきっかけは、FirefoxChromeSVG 対応しており手軽に SVG 表示できることを知ったからでした。
これまでは生成する SVG ファイルにSVG名前空間(xmlns)を埋め込んでいなかったので、Adobe SVG Viewerでしか表示できてませんでした。encoding も UTF-8 に変えました。

ノードのラベルが折り返しで複数行になっている場合、Windows GDI や XAML (WPF/Silverlight) では文字の流し込みがサポートされているので実装が簡単なのですが、SVGには流し込み機能がなく、ノードの幅に合わせて文字列を分割して表示する必要がありましす。そんなわけで? 今回のリリースでは折り返し時のワードラップ処理は実装していません。

テキストのアンダーライン、取消線などの文字飾り(text-decoration 属性)は、Firefoxでは表示されず、WebKit 系(Safari/Chrome)でもフォントによっては再現されなかったり、Bold とか Italicを設定していると再現されなかったりしました。

IE では、Windows 7 Beta に付属する IE 8 beta でも SVG のネイティブレンダリングには対応していませんでした。Adobe SVG Viewer はバージョンアップ止まってるので IE の対応が一番遅れています。さらに Adobe SVG Viewer にはメイリオフォントに非対応という問題もあります。

IEベクターグラフィックスだとやはり XAML ですよね。XAMLアセンブリ(.NET の実行モジュール)に埋め込んで配布されるのが普通なのですが、Loose XAML という XML 形式の XAMLもあり、.NET Framework が導入されているマシンでは、IE は Loose XAMLレンダリングすることができます。 Web でのベクターグラフィックスは、SVGXAML の戦いというか混在状態が当面続くのでしょう。Java 陣営の RIA 技術である JavaFX では SVG が標準サポートされているようです。 VML とかはどうなったんでしょう?

SVGXAML の機能は拮抗しており、相互変換は比較的簡単と思われます。ちょっと調べたらオープンソースのグラフィックツール InkscapeXAML に対応していました。そこで、SVGXAML 変換を試してみたのですが、ブラウザーの表示ではエラーになってしまいました。現時点ではまだうまく変換してくれないようです。

Ubuntu のデスクトップ(というか GNOME)では SVG が標準サポートされていて、Windows で EMF(Enhanced Metafile) を扱うような感じでアイコンでのイメージプレビューやビューアーが提供されています。