Dynamic Draw/Thought Tickler ユーザーズガイド

Windowsメタファイル/拡張メタファイル

Dynamic Draw のようなドローツールは、絵のデータをベクター形式で保持しています。
ベクター形式とは、絵のデータを描画手順と座標値で表す形式です。
つまり、以下の形式です。
----------------------
LINE (10,10)-(50,10)
CIRCLE (30,40)-(70,90)
----------------------
Windows には、描画の為のベクター形式として、
Windowsメタファイル形式
拡張メタファイル形式
の二つが用意されています。

Windowsメタファイル形式は、Windows の初期の頃から使われている古い形式、拡張メタファイル形式は、Windows95 以後追加された、比較的新しい形式です。

Windowsメタファイル形式がサポートする描画命令の種類は少ないです。例えばペンで指定できるのは、ベタ塗潰し、線の太さ、線ののみ。
図形の種類は、多角形、矩形、円弧、程度です。

一方、拡張メタファイル形式がサポートする描画命令の種類は豊富です。
ペンには、点線、破線等、塗潰しパターンの指定などが追加されています。
図形の種類も、ベジエ曲線が追加されています。

アプリ間で、図形をコピー&ペーストする場合は、Windowsメタファイル形式か拡張メタファイル形式で図形を受け渡しします。

本来、Windowsメタファイル形式では、Dynamic Draw の作成する図形を完全に表現することは出来ません。
例えば、破線や点線の指定、ペンの塗潰しパターンの指定、ベジエ曲線などWindowsメタファイル形式がサポートしていない描画命令を使っているからです。

ならば、Windowsメタファイル形式はサポートせず、拡張メタファイル形式だけでコピー&ペーストすればよい、と思われるでしょう。
ところが、以下のような要因から、そう簡単には行かないのです。

  • Windowsメタファイル形式のみをサポートしたアプリが数多く出回っているので、そのアプリとのコピー&ペーストでは、Windowsメタファイル形式を標準にせざるを得ません。
  • Windows の基本機能は、拡張メタファイル形式を正常に処理できず、Windowsメタファイル形式を使わないといけない場合があります。

こうした理由から、Dynamic Draw では、Windowsメタファイル形式でも正常な図形が受け渡しできるように、いろいろと工夫をしています。
例えば点線や鎖線ですが、短い直線をたくさんつなぐことで、点線や鎖線をWindowsメタファイルの描画命令だけで表現しています。
ベジエ曲線は、細かい多角形に変換しています。

いろいろ工夫しても、どうしても表現しきれないものもあります。
図形中に張り込んだイメージの描画、ペンのエッジ処理などです。

こういった理由で、他のアプリにDynamic Draw の図をコピーする場合は、相手先のアプリが拡張メタファイル形式をサポートしているのであれば、拡張メタファイル形式で貼り付けた方が、きれいな図をコピーできるのです。

参照: 用語索引 / 図形のコピーと貼り付け / 他アプリケーションデータの貼り付け / [選択部品の画像をエクスポート]ダイアログ / プラグイン / 背景図
キーワード: Windowsメタファイル/拡張メタファイル / メタファイル / Windowsメタファイル / 拡張メタファイル / Windows Metafile / Enhanced Metafile