Поделиться через


Метафайлы в GDI+

GDI+ предоставляет класс Metafile, позволяющий записывать и отображать метафайлы. Метафайл, также называемый векторным изображением, представляет собой изображение, которое хранится в виде последовательности команд рисования и параметров. Команды и параметры, записанные в объект Metafile, могут храниться в памяти или сохраняться в файл или поток.

Форматы метафайлов

GDI+ может отображать метафайлы, хранящиеся в следующих форматах:

  • Метафайл Windows (WMF)

  • EMF (Enhanced Metafile —расширенный метафайл)

  • EMF+

GDI+ может записывать метафайлы в форматах EMF и EMF+, но не в формате WMF.

EMF+ — это расширение для EMF, позволяющее хранить записи GDI+. Существует два варианта формата EMF+: EMF+ Only и EMF+ Dual. Метафайлы EMF+ Only содержат только записи GDI+. Такие метафайлы можно отобразить в GDI+, но не в GDI. Метафайлы EMF+ Dual содержат записи GDI+ и GDI. Каждая запись GDI+ в метафайле EMF+ Dual связана с альтернативной записью 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

См. также