Interested Article - Windows Metafile

Enhanced Metafile
Расширение .emf, .emz
MIME -тип image/x-emf
Разработчик Microsoft
Тип формата векторная графика
Расширен из WMF
Сайт

WMF ( англ. Windows MetaFile ) — универсальный формат векторных графических файлов для Windows -приложений. Используется для хранения коллекции графических изображений . Формат разработан Microsoft и является неотъемлемой частью Windows, так как сохраняет последовательность аппаратно-независимых функций GDI (Graphical Device Interface), непосредственно выводящих изображение в заданный контекст графического устройства (на экран, на принтер и т.п.). Очень часто WMF неявно используется для сохранения образа окна вывода программы и его последующего восстановления, а также при переносе информации через буфер обмена (clipboard). Из MS Windows запись и чтение в файл этого формата осуществляются чрезвычайно просто и быстро. Файл этого формата может быть открыт с помощью кроссплатформенных программ GIMP (с предварительной растеризацией) и Inkscape . На платформе Macintosh аналогичную роль играет формат .

Как формат векторной графики WMF в той или иной степени поддерживается многими мощными приложениями — AutoCAD , OpenOffice.org , Adobe Illustrator , и может использоваться для обмена данными между ними.

Структура файла

Файлы WMF и EMF состоят из списка записей, каждая из которых представляет собой определённую команду с набором аргументов. Форматы записей WMF и EMF похожи, однако есть следующие основные различия:

  • В EMF добавились новые коды функций
  • В EMF коды функций изменились по сравнению с WMF
  • Аргументы, бывшие в WMF 16-битными, стали 32-битными в EMF
  • В некоторых функциях в EMF добавились новые аргументы

Список типов записей WMF и EMF

WMF-запись Код WMF-записи EMF-запись Код EMF-записи Описание
0x00000001 Заголовок
0x00000002
0x00000055
0x0324 0x00000003 Нарисовать замкнутую ломаную линию
0x00000056
0x0325 0x00000004
0x00000057
0x00000005
0x00000058
0x0538 0x00000008
0x0000005B
0x020C 0x00000009 Установить размеры окна (ширину и высоту)
0x020B 0x0000000A Установить позицию левого верхнего угла окна (x и y)
0x020E 0x0000000B Установить размеры устройства вывода (ширину и высоту)
0x020D 0x0000000C Установить позицию левого верхнего угла устройства вывода (x и y)
0x0000000D
0x0000 0x0000000E Конец файла
0x0000000F
0x0231 0x00000010
0x0103 0x00000011 Задаёт режим преобразования логических единиц измерения окна в единицы измерения устройства вывода
0x0102 0x00000012 Установить режим заливки (0 - заливка выключена, 1 - заливка включена)
0x0106 0x00000013
0x0104 0x00000014 Установить логическую операцию при рисовании (для накладывания прозрачного/инвертирующего изображения и т.п.)
0x0107 0x00000015
0x012E 0x00000016 Установить горизонтальное и вертикальное выравнивание (задаётся при помощи флагов, объединённых через логическое ИЛИ)
0x00000017
0x0209 0x00000018 Установить цвет текста (32-битный RGB0)
0x0201 0x00000019 Установить цвет заливки (32-битный RGB0)
0x0220 0x0000001A
0x0214 0x0000001B
0x0415 0x0000001D
0x0416 0x0000001E
0x0412 0x0000001F Растянуть устройство вывода по горизонтали и вертикали (указывается два дробных множителя, по x и по y, каждый в виде двух целых чисел - числителя и знаменателя дроби)
0x0410 0x00000020 Растянуть окно по горизонтали и вертикали (указывается два дробных множителя, по x и по y, каждый в виде двух целых чисел - числителя и знаменателя дроби)
0x0127 0x00000022 Восстановить состояние устройства вывода в заранее сохранённое командой SAVEDC
0x012D 0x00000025
0x02FC 0x00000027
0x01f0 0x00000028
0x00000029
0x0418 0x0000002A
0x041B 0x0000002B
0x061C 0x0000002C
0x0817 0x0000002D
0x0830 0x0000002E
0x081A 0x0000002F
0x0234 0x00000030
0x00f7 0x00000031
0x0037 0x00000032 Установить палитру
0x0139 0x00000033
0x0548 0x00000035
0x0213 0x00000036
0x00000037
0x00000039
0x0000003A
0x00000040
0x00000046
0x0228 0x00000047
0x012A 0x00000049 Обратить цвета в регионе, заданном объединением множества прямоугольников
0x012B 0x0000004A
0x012C 0x0000004B
0x0922 0x0000004C
0x0B23 0x0000004D
0x0d33 0x00000050
0x0b41 0x00000051
0x02FB 0x00000052
0x02FA 0x0000005F
0x00000062
0x00000063
0x00000064
0x00000065
0x00000066
0x00000067
0x00000068
0x0000006D
0x0000006F
0x00000070
0x00000071
0x0149 0x00000073 Задаёт направление вывода текста и изображений - слева направо или справа налево (в последнем случае можно указать, требуется ли выводить изображения отражёнными слева направо)
0x00000076
0x00000077
0x020A 0x00000078
0x0035
0x0105
0x0108
0x0142
0x0211
0x020F
0x0419
0x0429
0x0436
0x0521
0x041F
0x061D
0x001E Сохранить состояние устройства вывода
0x0626
0x0940
0x0a32
0x0f43
0x01F9
0x06FF

Ссылки

  • (англ.)
  • (англ.)
Источник —

Same as Windows Metafile