GDI+ でのメタファイル

GDI+ には、メタファイルを記録して表示できる Metafile クラスが用意されています。 メタファイルはベクター画像とも呼ばれ、一連の描画コマンドと設定として格納される画像です。 Metafile オブジェクトに記録されたコマンドと設定は、メモリに格納することも、ファイルまたはストリームに保存することもできます。

メタファイル形式

GDI+ では、次の形式で格納されたメタファイルを表示できます。

  • Windows メタファイル (WMF)

  • 拡張メタファイル (EMF)

  • EMF+

GDI+ では、EMF および EMF+ 形式でメタファイルを記録できますが、WMF 形式では記録できません。

EMF+ は、GDI+ レコードを格納できる EMF の拡張機能です。 EMF+ 形式には、EMF+ Only と EMF+ Dual の 2 種類があります。 EMF+ Only メタファイルには GDI+ レコードのみが含まれます。 このようなメタファイルは GDI+ によって表示できますが、GDI では表示できません。 EMF+ Dual メタファイルには、GDI+ と GDI のレコードが含まれます。 EMF+ Dual メタファイル内の各 GDI+ レコードは、代替 GDI レコードとペアになっています。 このようなメタファイルは GDI+ でも GDI でも表示できます。

次の例では、以前にファイルとして保存されたメタファイルを表示します。 メタファイルは、左上隅が (100, 100) の位置になるように表示されます。

public void Example_DisplayMetafile(PaintEventArgs e)
{
    Graphics myGraphics = e.Graphics;
    Metafile myMetafile = new Metafile("SampleMetafile.emf");
    myGraphics.DrawImage(myMetafile, 100, 100);
}
Public Sub Example_DisplayMetafile(ByVal e As PaintEventArgs)
    Dim myGraphics As Graphics = e.Graphics
    Dim myMetafile As New Metafile("SampleMetafile.emf")
    myGraphics.DrawImage(myMetafile, 100, 100)
End Sub

関連項目