2010年7月19日月曜日

SVG ConverterでarcWidthが展開されない

こちらに書かれたSVGの仕様によると、ryとrxが同じ場合は一方を省略できるらしい。だがSVG Converterは、ryしか書かれていない場合、arcHeightしか展開しない。が、JavaFX(javafx.scene.shape.Rectangle)はSVGがry=rxとおくように、arcWidthをarcHeightとして描画してはくれず、結果として角丸は無視され、角の尖った矩形になってしまう。

また、手入力でarcWidthを追加しても、rの具合がブラウザでsvgを表示したときより、随分小さく描画されてしまう。元のsvgはinkscapeで作った物だが、inkscapeの表示とブラウザ(firefox,chrome,safari)の表示はほぼ同じだけに、JavaFX側の問題ではないかと思えるが、fxzの仕様がよくわからないので何とも言えない。

余談だが、JavaFXがSVGをそのままレンダリングできてもいいのに、と思う。production suiteにしても、いっそイラレやフォトショのデータをそのままレンダリングできたほうがいいのに。そもそもブラウザで主要なファイルフォーマットの描画はサポートすべきではないだろうか。Office製品を含め。PDFでさえほぼAdobe頼みな状況で、オープンスタンダードなんて認めていて良いのだろうか。理由は色々あるだろうが。

表示って、ただ書くだけのような気がするけど、そんなに簡単じゃないんだね。

さらに余談だが、MediaとImageを分けるのはやめてほしい。と思ったら、Textだって分けるの止めてほしいということになり・・・つづきはあっちで。

4 件のコメント:

  1. SVGがそのままレンダリングできるといいですよね。Production Suitesを取り込めばできるはずですし。

    ついでですが、MediaとImageは作っている会社が違うので、統一できないんです ^ ^;;

    返信削除
  2. skrbさんコメントありがとうございます。

    コメントが書き込まれた通知がいつのまにかOFFになっていて、全然気がつきませんでした。申し訳ありません。

    MediaとImageの統一にはそういう事情があったんですか。そんなこと思いもしませんでした。すごく詳しく聞きたいです。

    返信削除
  3. 当時のSunにはmedia系のライブラリがなかったので、On2と契約して作ったのが Meida 関連のクラスです。イメージは Sun が作ってました。

    返信削除
  4. なるほどそういう系ですか。今となってはGoogleなのがタブロイドに面白そう。なんて、うまく行ってくれないと困りますが。

    返信削除