mieki256's diary



2018/09/05(水) [n年前の日記]

#2 [cg_tools] wmf と emf を LibreOffice Draw から出力して確認

Drawgraphic 3 Pro で出力した wmf や emf はなんだかアレ、ということが分かったけれど。LibreOffice Drawあたりで wmf や emf を出力した場合はどうなるのか気になってきたわけで。ちょっと実験して確認してみようかなと。

wmfの場合。 :

まず、前提として…。Drawgraphic 3 で出力した wmf は以下のようになっている。

wmf_by_dg3_ss.png

  • 元の図形が曲線を含んでいると、細かい直線で分割されてしまう。
  • 更に、各直線は、ただの直線のように見えても、実際には3〜4つの要素で作られてる。

LibreOffice Draw で同じことをするとどうなるだろう。こうなった。

wmf_by_lodraw_ss01.png

見るからに、こちらも、曲線を細かい線で分割して近似している模様。

ただ、分割された細かい線の形状が違う。

wmf_by_lodraw_ss02.png

  • 細かい線は、Drawgraphic 3 のように単なる直線ではなく、曲線に見える形で作られている。
  • ただし、それら曲線も、結局は直線で近似してある。
  • Drawgraphic 3 のように、謎のストロークや、線の端を示す面などは作られていない。
  • 線は無くて、全てが面で構成されている。
  • 一つ一つの面が持ってる頂点数は多いけれど、その代わり、面の数は少な目なデータになっている。

曲線を多数の直線で近似すると言っても、異なる分割の仕方があるのだなと…。

emfの場合。 :

emfを出力した場合は、少し違いが出てくる。

Drawgraphic 3 は、wmf で出力しても、emf で出力しても、結果はほとんど違ってこない。おそらく、wmf 用のデータを内部で作ってから、それをそのまま emf に変換して出力しているのではないかと。

LibreOffice Draw の場合は、結果が違ってくる。

emf_by_lodraw_ss01.png

曲線を、多数の線に分割するあたりは、wmf と同じだけれど…。

emf_by_lodraw_ss02.png

曲線はベジェ曲線として持っているようで。制御点の数が最低限の個数で済む。

また、細かく分割されたそれぞれの線も、一つ一つがベジェ曲線で表現されている。

emf_by_lodraw_ss03.png

wmfとemfの違い。 :

調べてみたところ、wmf は、そもそも曲線を持てないフォーマットだそうで。

_WMF(Windows Metafile) - 限られた空間の中何を残せるだろう...
機能的には若干貧弱らしい
ベジェ曲線や非直交楕円などのどちらかというと基本的なグラフィック素子がいくつか欠けている

WMF(Windows Metafile) - 限られた空間の中何を残せるだろう... より


_ASCII.jp:仕事に使えるグラフィックス入門
WMF(左)とEMF(右)の違いは、曲線のオブジェクトを保存したときに現われる。EMFのほうがアンカーポイントが少なく、きれいな曲線で保存できるのだ。図形を拡大すると、この違いが顕著になる。

ASCII.jp:仕事に使えるグラフィックス入門 より


だから、Drawgraphic、LibreOffice Draw、どちらで wmf を出力しても、曲線を直線で近似しているのだろう。良かれと思ってやっているわけではなく、単に wmf の制限で、そうする以外になかったのだな…。

しかし emf は、wmf と違って、曲線を持てるフォーマット。

Drawgraphic の場合は、せっかくの emf の強みをガン無視して、wmf とほぼ同じデータを出力してしまうけど。LibreOffice Draw は、「せっかく曲線を持てるフォーマットなのだから、曲線データを入れるべき」的に、ベジェ曲線を活用して少ない制御点でデータを出力する、といったことをやっているみたいだなと。

そこだけ見ると、有償ソフトの Drawgraphic は、無料で使える LibreOffice Draw より劣ってませんか、という話になるけれど。しかし、LibreOffice Draw は、何か図形を描くたびに選択ツールにリセットされちゃうし、曲線を操るのもなかなか面倒臭くて。操作性の面では Drawgraphic のほうが、はるかに使い易いのだよな…。と、一応フォロー。

svgの場合。 :

ついでに、LibreOffice Draw から svg で出力して Inkscape に読み込んでみた。

svg_by_lodraw_ss.png

  • 面(フィル)、線(ストローク)で構成されてる。
  • それぞれ、ベジェ曲線で表現されてる。
  • 深い階層のコンテナの中に入ってる。

「wmf や emf なんて今時使うもんじゃねえよ。svg でやり取りしたほうがいいよ」という話をあちこちで見かけたけど、こういうことなんだろうなと。最小の制御点の個数で、形状を十分表現できるというか…。emf では無駄なデータが増えるし、wmf なんてもはや編集不可能なデータになっちゃうけれど、svg なら見た目良し、かつ、編集可能なデータとして扱える、みたいな。

以上です。

過去ログ表示

Prev - 2018/09 - Next
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project