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


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

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

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

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

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

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

  • EMF+

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

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

См. также