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


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

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

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

Интерфейс GDI+ позволяет отображать метафайлы, сохраненные в одном из перечисленных ниже форматов.

  • WMF (Windows Metafile — метафайл Windows)

  • 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 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

public void Example_DisplayMetafile(PaintEventArgs e)
{
    Graphics myGraphics = e.Graphics;
    Metafile myMetafile = new Metafile("SampleMetafile.emf");
    myGraphics.DrawImage(myMetafile, 100, 100);
}

См. также

Другие ресурсы

Работа с растровыми и векторными изображениями с использованием классов Image, Bitmap и Metafile