2018/09/05(水) [n年前の日記]
#1 [cg_tools] まだDrawgraphic 3 Proを触ってる
まだ Drawgraphic 3 Pro を触りつつ、出力結果について調べていたり。
◎ 出力した wmf を Inkscape で読み込んでみた。 :
wmf と emf について調べていたら、wmf と emf はサイズの扱い方が違う場合がある、という話を見かけて。
_Enhanced Metafile (EMF) の描画について
となると…。Drawgraphic 3 から出力した emf を Inkscape 0.92.3 にD&Dすると、異様に小さい表示になってしまうけど。ひょっとして、emf ではなく wmf をD&Dしたら、違う結果になるのでは。
試してみた。それらしいサイズで表示された。
つまり、Drawgraphic 3 からベクターデータを出力して、他のソフトに渡したい場合は、emf より wmf にしたほうが良い、と言えるのかもしれないなと。
ただ、図形が、曲線を含んでいる場合は、ちょっとよろしくない結果になるようで。曲線を含んだ図形を Inkscape にD&Dして、グループ解除してみたら、フリーズしたのかと思えたぐらいに、体感で4〜5分待たされた…。
どうやら、Drawgraphic 3 は、wmf / emf で出力する際、曲線を、多数の直線で近似した状態で出力する模様。例えば、以下のように、簡単な曲線でも、膨大な本数の、短い直線になってしまう…。
しかも、それぞれの短い直線は、一本の直線のように見えても、実際には、面 + 面を取り囲む線 + 接続部分のように見せる面 ―― 3つの要素で構成されているので…。
これほど膨大な要素数を相手にすると、グループ解除等、一つ一つの構成要素に対して処理をしようとした場合に、とんでもない処理時間がかかってしまうのだろう…。
_Enhanced Metafile (EMF) の描画について
となると…。Drawgraphic 3 から出力した emf を Inkscape 0.92.3 にD&Dすると、異様に小さい表示になってしまうけど。ひょっとして、emf ではなく wmf をD&Dしたら、違う結果になるのでは。
試してみた。それらしいサイズで表示された。
つまり、Drawgraphic 3 からベクターデータを出力して、他のソフトに渡したい場合は、emf より wmf にしたほうが良い、と言えるのかもしれないなと。
ただ、図形が、曲線を含んでいる場合は、ちょっとよろしくない結果になるようで。曲線を含んだ図形を Inkscape にD&Dして、グループ解除してみたら、フリーズしたのかと思えたぐらいに、体感で4〜5分待たされた…。
どうやら、Drawgraphic 3 は、wmf / emf で出力する際、曲線を、多数の直線で近似した状態で出力する模様。例えば、以下のように、簡単な曲線でも、膨大な本数の、短い直線になってしまう…。
しかも、それぞれの短い直線は、一本の直線のように見えても、実際には、面 + 面を取り囲む線 + 接続部分のように見せる面 ―― 3つの要素で構成されているので…。
これほど膨大な要素数を相手にすると、グループ解除等、一つ一つの構成要素に対して処理をしようとした場合に、とんでもない処理時間がかかってしまうのだろう…。
◎ 出力した pdf を Inkscape で読み込んでみた。 :
考えてみたら、ベクターデータとしては、wmf / emf の他に pdf もあるのではないかと思いついた。pdf で出力して、他のソフトに持っていけないか…。
試してみた。Drawgraphic 3 で pdf出力して、Inkscape に D&Dして、グループ解除。
こちらの場合は、数分待たされることはなかった。グループ解除後の見た目からして、曲線を含んだ各図形は、それぞれが一つの図形として pdf に内包されているようで。
そして、各図形は、シンプルに、面の色、線の色、線幅の情報を持った一つの図形になっていた。
ただ、曲線を、最低限の制御点で表しているわけではないようで…。相変わらず、曲線を、膨大な数の短い線で近似している模様。
しかも、それぞれの短い線は、曲線ではなく、只の直線…。だから、元図形の制御点が少ないと、分割の間隔が広くなるので、出力された図形の輪郭は、妙にガクガクしている。
曲線を短い直線で近似するあたりは Inkscape が行っているのではないかと疑問が湧いたけど。Drawgraphic 3 の、ファイル → 環境設定 → 一般 → スムージングの数を変更して pdf出力してみたところ、曲線の分割数が変わった状態になった。
つまり、曲線を直線で近似するあたりは、やはり Drawgraphic 3 がファイル出力時に行っているらしい。Inkscape は悪くない。たぶん。
もちろん、Drawgraphic 3 のスムージングの値を増やすと、曲線の分割数が増える=制御点の数が増えるので、より重いデータになってしまうはず。
試してみた。Drawgraphic 3 で pdf出力して、Inkscape に D&Dして、グループ解除。
こちらの場合は、数分待たされることはなかった。グループ解除後の見た目からして、曲線を含んだ各図形は、それぞれが一つの図形として pdf に内包されているようで。
そして、各図形は、シンプルに、面の色、線の色、線幅の情報を持った一つの図形になっていた。
ただ、曲線を、最低限の制御点で表しているわけではないようで…。相変わらず、曲線を、膨大な数の短い線で近似している模様。
しかも、それぞれの短い線は、曲線ではなく、只の直線…。だから、元図形の制御点が少ないと、分割の間隔が広くなるので、出力された図形の輪郭は、妙にガクガクしている。
曲線を短い直線で近似するあたりは Inkscape が行っているのではないかと疑問が湧いたけど。Drawgraphic 3 の、ファイル → 環境設定 → 一般 → スムージングの数を変更して pdf出力してみたところ、曲線の分割数が変わった状態になった。
つまり、曲線を直線で近似するあたりは、やはり Drawgraphic 3 がファイル出力時に行っているらしい。Inkscape は悪くない。たぶん。
もちろん、Drawgraphic 3 のスムージングの値を増やすと、曲線の分割数が増える=制御点の数が増えるので、より重いデータになってしまうはず。
◎ やはり他のソフトと連携することは考えないほうがいいのかもしれず。 :
結局のところ、Drawgraphic で出力したファイルを他のソフトにインポートして、なんてことは考えちゃいけないのかもしれない。
Drawgraphic で作業を始めたら、最終結果のビットマップデータを得られるまで、Drawgraphic上で全ての作業を完結させる ―― ぐらいの覚悟が必要なのではないか…。
でもまあ、年賀状作成ソフトあたりはそういうノリだし。一般的なPC利用であれば、最初から最後まで一つのソフトを使って作業を完結させるのって、別におかしい話じゃないよなと。
Drawgraphic で作業を始めたら、最終結果のビットマップデータを得られるまで、Drawgraphic上で全ての作業を完結させる ―― ぐらいの覚悟が必要なのではないか…。
でもまあ、年賀状作成ソフトあたりはそういうノリだし。一般的なPC利用であれば、最初から最後まで一つのソフトを使って作業を完結させるのって、別におかしい話じゃないよなと。
[ ツッコむ ]
#2 [cg_tools] wmf と emf を LibreOffice Draw から出力して確認
Drawgraphic 3 Pro で出力した wmf や emf はなんだかアレ、ということが分かったけれど。LibreOffice Drawあたりで wmf や emf を出力した場合はどうなるのか気になってきたわけで。ちょっと実験して確認してみようかなと。
◎ wmfの場合。 :
まず、前提として…。Drawgraphic 3 で出力した wmf は以下のようになっている。
LibreOffice Draw で同じことをするとどうなるだろう。こうなった。
見るからに、こちらも、曲線を細かい線で分割して近似している模様。
ただ、分割された細かい線の形状が違う。
曲線を多数の直線で近似すると言っても、異なる分割の仕方があるのだなと…。
- 元の図形が曲線を含んでいると、細かい直線で分割されてしまう。
- 更に、各直線は、ただの直線のように見えても、実際には3〜4つの要素で作られてる。
LibreOffice Draw で同じことをするとどうなるだろう。こうなった。
見るからに、こちらも、曲線を細かい線で分割して近似している模様。
ただ、分割された細かい線の形状が違う。
- 細かい線は、Drawgraphic 3 のように単なる直線ではなく、曲線に見える形で作られている。
- ただし、それら曲線も、結局は直線で近似してある。
- Drawgraphic 3 のように、謎のストロークや、線の端を示す面などは作られていない。
- 線は無くて、全てが面で構成されている。
- 一つ一つの面が持ってる頂点数は多いけれど、その代わり、面の数は少な目なデータになっている。
曲線を多数の直線で近似すると言っても、異なる分割の仕方があるのだなと…。
◎ emfの場合。 :
emfを出力した場合は、少し違いが出てくる。
Drawgraphic 3 は、wmf で出力しても、emf で出力しても、結果はほとんど違ってこない。おそらく、wmf 用のデータを内部で作ってから、それをそのまま emf に変換して出力しているのではないかと。
LibreOffice Draw の場合は、結果が違ってくる。
曲線を、多数の線に分割するあたりは、wmf と同じだけれど…。
曲線はベジェ曲線として持っているようで。制御点の数が最低限の個数で済む。
また、細かく分割されたそれぞれの線も、一つ一つがベジェ曲線で表現されている。
Drawgraphic 3 は、wmf で出力しても、emf で出力しても、結果はほとんど違ってこない。おそらく、wmf 用のデータを内部で作ってから、それをそのまま emf に変換して出力しているのではないかと。
LibreOffice Draw の場合は、結果が違ってくる。
曲線を、多数の線に分割するあたりは、wmf と同じだけれど…。
曲線はベジェ曲線として持っているようで。制御点の数が最低限の個数で済む。
また、細かく分割されたそれぞれの線も、一つ一つがベジェ曲線で表現されている。
◎ wmfとemfの違い。 :
調べてみたところ、wmf は、そもそも曲線を持てないフォーマットだそうで。
_WMF(Windows Metafile) - 限られた空間の中何を残せるだろう...
_ASCII.jp:仕事に使えるグラフィックス入門
だから、Drawgraphic、LibreOffice Draw、どちらで wmf を出力しても、曲線を直線で近似しているのだろう。良かれと思ってやっているわけではなく、単に wmf の制限で、そうする以外になかったのだな…。
しかし emf は、wmf と違って、曲線を持てるフォーマット。
Drawgraphic の場合は、せっかくの emf の強みをガン無視して、wmf とほぼ同じデータを出力してしまうけど。LibreOffice Draw は、「せっかく曲線を持てるフォーマットなのだから、曲線データを入れるべき」的に、ベジェ曲線を活用して少ない制御点でデータを出力する、といったことをやっているみたいだなと。
そこだけ見ると、有償ソフトの Drawgraphic は、無料で使える LibreOffice Draw より劣ってませんか、という話になるけれど。しかし、LibreOffice Draw は、何か図形を描くたびに選択ツールにリセットされちゃうし、曲線を操るのもなかなか面倒臭くて。操作性の面では Drawgraphic のほうが、はるかに使い易いのだよな…。と、一応フォロー。
_WMF(Windows Metafile) - 限られた空間の中何を残せるだろう...
機能的には若干貧弱らしい
ベジェ曲線や非直交楕円などのどちらかというと基本的なグラフィック素子がいくつか欠けている
_ASCII.jp:仕事に使えるグラフィックス入門
WMF(左)とEMF(右)の違いは、曲線のオブジェクトを保存したときに現われる。EMFのほうがアンカーポイントが少なく、きれいな曲線で保存できるのだ。図形を拡大すると、この違いが顕著になる。
だから、Drawgraphic、LibreOffice Draw、どちらで wmf を出力しても、曲線を直線で近似しているのだろう。良かれと思ってやっているわけではなく、単に wmf の制限で、そうする以外になかったのだな…。
しかし emf は、wmf と違って、曲線を持てるフォーマット。
Drawgraphic の場合は、せっかくの emf の強みをガン無視して、wmf とほぼ同じデータを出力してしまうけど。LibreOffice Draw は、「せっかく曲線を持てるフォーマットなのだから、曲線データを入れるべき」的に、ベジェ曲線を活用して少ない制御点でデータを出力する、といったことをやっているみたいだなと。
そこだけ見ると、有償ソフトの Drawgraphic は、無料で使える LibreOffice Draw より劣ってませんか、という話になるけれど。しかし、LibreOffice Draw は、何か図形を描くたびに選択ツールにリセットされちゃうし、曲線を操るのもなかなか面倒臭くて。操作性の面では Drawgraphic のほうが、はるかに使い易いのだよな…。と、一応フォロー。
◎ svgの場合。 :
[ ツッコむ ]
以上、1 日分です。