Interested Article - Windows Metafile
- 2020-10-30
- 1
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 |
Ссылки
- (англ.)
- (англ.)
- 2020-10-30
- 1