Метафайл Windows ( WMF ) - это формат файла изображения, изначально разработанный для Microsoft Windows в 1990-х годах. Исходный формат метафайла Windows не был независимым от устройства (хотя его можно было сделать еще лучше с помощью заголовков размещения) и мог содержать компоненты как векторной графики, так и растровые . Он действует аналогично файлам SVG . Файлы WMF позже были заменены расширенными метафайлами (файлы EMF), которые действительно обеспечивали независимость от устройств. Файлы EMF затем сами улучшались с помощью файлов EMF + .
По сути, метафайл хранит список записей, состоящий из команд рисования, определений свойств и графических объектов для отображения изображения на экране. [1] Используемые команды рисования тесно связаны с командами API интерфейса графического устройства (GDI), используемыми для рисования в Microsoft Windows.
Существует три основных типа метафайлов - WMF - это 16-разрядный формат, представленный в Windows 3.0 . Это собственный векторный формат для приложений Microsoft Office, таких как Word , PowerPoint и Publisher . Начиная с 2017 г. [Обновить]14 версия спецификации формата метафайлов Windows доступна для чтения в Интернете или для загрузки в формате PDF. [2] Файлы EMF, которые заменили файлы WMF, работают по тому же принципу, только это 32-битный формат файла, который также позволяет встраивать личные данные в записи «комментариев». [3]EMF + - это расширение для файлов EMF, встроенное в эти записи комментариев, позволяющее использовать для изображений и текста команды, объекты и свойства, аналогичные Windows GDI + . [4]
История [ править ]
Исходный 16-битный формат файла WMF был полностью определен в томе 4 документации Windows 3.1 SDK 1992 г. [5] (по крайней мере, в сочетании с описанием отдельных функций и структур в других томах), но эта спецификация была расплывчатой в отношении немного деталей. Эти руководства были опубликованы в виде печатных книг, доступных в книжных магазинах, без перехода по лицензионному соглашению с конечным пользователем или других необычных лицензионных ограничений (просто общее предупреждение о том, что в случае приобретения в составе пакета программного обеспечения, программное обеспечение будет подлежать такому).
Со временем о существовании этой исторической спецификации было в значительной степени забыто, и некоторые альтернативные реализации прибегли к обратному проектированию, чтобы выяснить формат файла из существующих файлов WMF, что было сложно и подвержено ошибкам. [6] В сентябре 2006 года Microsoft снова опубликовала спецификацию формата файлов WMF в более полной форме [7] в контексте Microsoft Open Specification Promise , пообещав не заявлять патентные права разработчикам форматов файлов. [8]
Позднее Microsoft отказалась от файлов WMF в пользу 32-разрядных файлов EMF, поскольку файлы WMF имели реальные проблемы с независимостью от устройства, несмотря на использование «размещаемого» заголовка файла, который обеспечивал базовую независимость устройства. Microsoft обнаружила, что разработчики, использующие этот формат, «[встраивали] приложение, расположение или масштабирование комментариев в метафайлы ... Другие добавляли в метафайл заголовки, которые предоставляли различную информацию о приложении», что приводило к серьезным проблемам совместимости. [9] Таким образом, в 1992 г. с Windows NT 3.1 Microsoft представила формат расширенного метафайла (EMF) [10] - формат, основанный на Win32 API и обеспечивающий независимость от устройств. [11] [9]- они также были известны как метафайлы NT. [12] С выпуском Windows XP и GDI + набор записей пришлось значительно увеличить, и поэтому Microsoft выпустила EMF + как расширение существующего формата файлов EMF. [10] [13]
Структура метафайла [ править ]
Файлы WMF, EMF и EMF + состоят из серии записей, которые воспроизводятся для создания графического вывода. Некоторые записи определяют объекты, которые могут определять графические объекты, используемые для определения того, как должна быть нарисована графика (например, перья определяют цвет и ширину линий). Каждый из этих объектов хранится в метафайлах и помещается в таблицу объектов, которая отслеживает использование графических объектов при обработке метафайла. Таблица объектов - это ассоциативный массив индексов структур графических объектов, определенных в метафайле.
Файлы WMF и EMF обрабатывают объекты иначе, чем записи EMF + в файлах EMF. В процессе обработки файлов WMF и EMF записи считываются в таблицу объектов после определения объекта. Если объект удален, объект удаляется из таблицы, и идентификатор можно использовать повторно. Примечательно, что объект не будет использоваться, пока он не будет специально выбран во время воспроизведения записи. [14] [15] Это отличается для файлов EMF +, которые также используют ассоциативный массив через хэш-карту.который записывает объект вместе с идентификатором объекта. Однако, в отличие от файлов WMF и EMF, которые могут удалять объект, когда создается новый объект, имеющий тот же индекс, что и существующий объект, запись в таблице заменяется новым объектом. EMF-файлу также не нужно специально выбирать объект перед его использованием. [16]
WMF [ править ]
Файлы WMF изначально не проектировались как независимые от устройств, что означает, что вы не могли воспроизводить файл на устройствах вывода, которые отличались от исходного устройства, на котором файл был записан. Частичное решение этой проблемы было изобретено корпорацией Aldus , которая добавила дополнительный «размещаемый» заголовок, названный «заголовком APM» [18], который добавил ограничивающий прямоугольник, версию метафайла, размер метафайла, количество объектов в метафайле. и размер самой большой отдельной записи в метафайле. [19] [20] Это было позже включено в формат WMF Microsoft, начиная с Windows 2000. [21]
Файлы WMF структурированы серией записей, начиная с нескольких управляющих записей: записи заголовка, [19] [22] вышеупомянутой необязательной размещаемой записи [23] и заканчивая записью конца файла . [19] [24]
Контрольные записи инкапсулируют записи, составляющие само изображение. Эти записи работают в так называемом контексте устройства воспроизведения , который представляет собой набор свойств и объектов, составляющих графическую среду устройства, когда метафайл «воспроизводится» на этом устройстве вывода. [25]
Записи, отличные от записей управления, можно в значительной степени сгруппировать в записи растровых изображений, записи чертежей, записи объектов, записи состояния и записи перехода.
Записи растровых изображений [ править ]
Записи Bitmap управляют и выводят растровые изображения .
Имя | Описание |
---|---|
META_BITBLT | Определяет, как выполнить передачу битового блока . Эти записи могут указывать растровое изображение для использования в качестве источника или региона. [26] |
META_DIBBITBLT | Определяет, как выполнить передачу битовых блоков независимого от устройства растрового изображения. Эти записи могут указывать растровое изображение для использования в качестве источника или региона. [27] |
META_DIBSTRETCHBITBLT | Определяет, как выполнить передачу битового блока независимого от устройства растрового изображения, но позволяет увеличивать или уменьшать изображение. Эти записи могут указывать растровое изображение для использования в качестве источника или региона. [28] |
META_SETDIBTODEV | Задает цвет для установки блока пикселей в независимом от устройства растровом изображении. Эти записи могут указывать растровое изображение для использования в качестве источника или региона. [29] |
META_STRETCHBLT | Определяет, как выполнять передачу битовых блоков, но допускает расширение или сжатие изображения. [30] |
META_STRETCHDIB | Определяет, как выполнить передачу битового блока независимого от устройства растрового изображения, но позволяет увеличивать или уменьшать изображение. Эти записи могут указывать растровое изображение для использования в качестве источника или региона. [31] |
Записи чертежей [ править ]
Записи чертежей производят вывод графики.
Имя | Описание |
---|---|
META_ARC | Рисует эллиптическую дугу . [32] |
META_CHORD | Рисует аккорд . [33] |
META_ELLIPSE | Рисует эллиптическую дугу . [34] |
META_EXTFLOODFILL | Заполняет область кистью. [35] |
META_EXTTEXTOUT | Нарисуйте текст со шрифтом, цветом фона и цветом текста в контексте устройства воспроизведения. [36] |
META_FILLREGION | Заполняет область указанной кистью. [37] |
META_FLOODFILL | Заполняет область кистью. [38] |
META_FRAMEREGION | Обводит кистью границу вокруг области страницы. [39] |
МЕТА_ИНВЕРТРЕГИОН | Закрашивает область изображения инвертированными цветами. [40] |
META_LINETO | Рисует полуоткрытую линию от позиции рисования, определенной в контексте устройства воспроизведения, до указанной точки. [41] |
META_PAINTREGION | Нарисуйте область текущей кистью, указанной в контексте устройства воспроизведения. [42] |
META_PATBLT | Нарисуйте область текущей кистью, указанной в контексте устройства воспроизведения, а затем объедините цвет кисти и цвет (а) поверхности с помощью растровой операции . [43] |
META_PIE | Нарисуйте клин в форме пирога, ограниченный пересечением эллипса и двух радиалов - линия задается пером, заданным через контекст устройства воспроизведения, а область, ограниченная формой пирога, заполняется текущей кистью устройства воспроизведения контекст. [44] |
МЕТА_POLYLINE | Рисует серию сегментов линий, соединяя точки в указанном массиве. [45] |
МЕТА_ПОЛИГОН | Рисует многоугольник, состоящий из двух или более вершин, соединенных прямыми линиями. Многоугольник обводится пером и заполняется с помощью кисти и режима заливки многоугольника, которые определены в контексте устройства воспроизведения. [46] |
МЕТА_POLYPOLYGON | Рисует серию замкнутых многоугольников, которые могут перекрываться. Каждый многоугольник очерчен с помощью пера и заполнен с помощью кисти и режима заливки многоугольника, которые определены в контексте устройства воспроизведения. [47] |
META_RECTANGLE | Закрашивает прямоугольник, который обводится пером, заполняется с помощью кисти и заполняется с помощью кисти, определенной в контексте устройства воспроизведения. [48] |
META_ROUNDRECT | Закрашивает прямоугольник со скругленными углами. Прямоугольник обводится пером, заполняется кистью и заполняется кистью, определенной в контексте устройства воспроизведения. [49] |
META_SETPIXEL | Устанавливает пиксель с указанными координатами на указанный цвет. [50] |
META_TEXTOUT | Выводит строку символов в указанном месте с использованием шрифта, цвета фона и цвета текста, которые определены в контексте устройства воспроизведения. [51] |
Записи объекта [ править ]
Записи объектов создают графические объекты и управляют ими. В файлах WMF есть две широкие категории объектов - графические объекты и объекты структуры. Объекты структуры не создаются и не удаляются в WMF явно, а вместо сложных структур. Например, BitmapCoreHeader содержит информацию о размерах и цветовом формате независимого от устройства растрового изображения [52], которое само является частью объекта DeviceIndependentBitmap. [53] Графический объект, однако, определяет параметры для вывода графики, а во время воспроизведения WMF он устанавливает контекст устройства воспроизведения. [54]
Графическими объектами могут быть кисти (определяет стиль, цвет и узор кисти, которые определяют, как рисовать область графики), шрифты (определяют свойства, влияющие на отображение текста), палитры (задают цвета как независимые от устройства значения, определяется приложением), перьями (задает графические атрибуты линии) и областями (которые определяют сегменты линии и кривой, определяющие форму). [54]
Имя | Описание |
---|---|
META_CREATEBRUSHINDIRECT | Создает объект кисти из объекта LogBrush (логическая кисть). [55] |
META_CREATEFONTINDIRECT | Создает объект кисти из объекта шрифта. [56] |
META_CREATEPALETTE | Создает объект палитры. |
META_CREATEPATTERNBRUSH [57] | Создает объект кисти из объекта LogBrush (логическая кисть). [58] |
META_CREATEPENINDIRECT | Создает объект пера. [59] |
META_CREATEREGION | Создает объект региона. [60] |
META_DELETEOBJECT | Удалить объект. [61] |
META_CREATEBRUSHINDIRECT | Создает объект кисти из объекта LogBrush (логическая кисть). [62] |
META_DIBCREATEPATTERNBRUSH | Создает объект кисти из независимого от устройства растрового изображения. [63] |
META_SELECTCLIPREGION | Определяет объект области, который будет текущей областью отсечения . [64] |
META_SELECTOBJECT | Выбирает объект, который будет текущим объектом для контекста устройства воспроизведения, который работает со всеми графическими объектами, кроме объектов палитры, которые должны быть установлены с помощью META_SELECTPALETTE. [65] |
META_SELECTPLAETTE | Выбирает логическую палитру для контекста устройства воспроизведения. [66] |
Записи состояния [ править ]
Записи состояния управляют графическими свойствами контекста устройства воспроизведения. [67]
Имя | Описание |
---|---|
META_ANIMATEPALETTE | Переопределяет записи в логической палитре, которая определяется в контексте устройства воспроизведения с помощью указанного объекта палитры. [68] |
META_EXCLUDECLIPRECT | Устанавливает область отсечения, которая определена в контексте устройства воспроизведения, равной существующей области отсечения за вычетом указанного прямоугольника. [69] |
META_INTERSECTCLIPRECT | Устанавливает область отсечения, которая определена в контексте устройства воспроизведения, на пересечение существующей области отсечения и указанного прямоугольника. [70] |
META_MOVETO | Устанавливает позицию вывода в контексте устройства воспроизведения в указанную точку. [71] |
META_OFFSETCLIPRGN | Перемещает область отсечения, определенную в контексте устройства воспроизведения, на указанные смещения. [72] |
META_OFFSETVIEWPORTORG | Перемещает начало координат области просмотра в контексте устройства воспроизведения на заданные горизонтальные и вертикальные смещения. [73] |
META_OFFSETWINDOWORG | Перемещает исходную точку окна вывода в контексте устройства воспроизведения на заданные горизонтальные и вертикальные смещения. [74] |
META_REALIZEPALETTE | Сопоставляет записи из логической палитры, определенной в контексте устройства воспроизведения, с системной палитрой. [75] |
META_RESIZEPALETTE | Повторно определяет размер логической палитры, определенной в контексте устройства воспроизведения. [76] |
META_RESTOREDC | Восстанавливает контекст устройства воспроизведения из ранее сохраненного контекста устройства. [77] |
META_SAVEDC | Сохраняет контекст устройства воспроизведения для последующего извлечения. [78] |
META_SCALEVIEWPORTEXT | Масштабирует горизонтальную и вертикальную границы области просмотра, которая определена в контексте устройства воспроизведения, используя отношения, сформированные указанными множителями и делителями. [79] |
META_SCALEWINDOWEXT | Масштабирует горизонтальные и вертикальные пределы окна вывода, которое определено в контексте устройства воспроизведения, с использованием соотношений, образованных указанными множителями и делителями. [80] |
META_SETBKCOLOR | Устанавливает заданный цвет фона в контексте устройства воспроизведения. [81] |
META_SETBKMODE | Устанавливает режим фонового микширования в контексте устройства воспроизведения. [82] |
META_SETLAYOUT | Определяет ориентацию макета в контексте устройства воспроизведения. [83] |
META_SETMAPMODE | Определяет режим сопоставления в контексте устройства воспроизведения. [84] |
META_SETMAPPERFLAGS | Определяет алгоритм, который использует средство сопоставления шрифтов при сопоставлении логических шрифтов с физическими шрифтами. [85] |
META_SETPALENTRIES | Определяет значения цвета RGB в диапазоне записей в логической палитре, которая определяется в контексте устройства воспроизведения. [86] |
META_SETPOLYFILLMODE | Определяет режим заливки многоугольника в контексте устройства воспроизведения для графических операций заливки многоугольников. [87] |
META_SETRELABS | Неиспользованная запись. [88] |
META_SETROP2 | Определяет режим смешивания работы с растром переднего плана в контексте устройства воспроизведения. [89] |
META_SETSTRETCHBLTMODE | Определяет режим растяжения растрового изображения в контексте устройства воспроизведения. [90] |
META_SETTEXTALIGN | Определяет значения выравнивания текста в контексте устройства воспроизведения. [91] |
META_SETTEXTCHAREXTRA | Определяет межсимвольный интервал для выравнивания текста в контексте устройства воспроизведения. [92] |
META_SETTEXTCOLOR | Определяет цвет переднего плана текста в контексте устройства воспроизведения. [93] |
META_SETTEXTJUSTIFICATION | Определяет количество места, которое нужно добавить для разрыва символов в строке выровненного текста. [94] |
META_SETVIEWPORTEXT | Определяет горизонтальную и вертикальную границы области просмотра в контексте устройства воспроизведения. [95] |
META_SETVIEWPORTORG | Определяет источник области просмотра в контексте устройства воспроизведения. [96] |
META_SETWINDOWEXT | Определяет размеры окна вывода по горизонтали и вертикали в контексте устройства воспроизведения. [97] |
META_SETWINDOWORG | Определяет источник окна вывода в контексте устройства воспроизведения. [98] |
Записи о побеге [ править ]
Escape-записи - это средство расширения функциональности метафайлов с помощью записей, которые иначе не определены как тип записи WMF. Каждая escape-запись содержит функцию записи, escape-функцию и потенциально управляющие данные.
Следующие escape-записи составляют файл WMF.
Имя | Описание |
---|---|
ABORTDOC | Останавливает обработку текущего документа. [99] |
BEGIN_PATH | Открывает путь. [100] |
CHECK_JPEGFORMAT | Определяет, может ли он обрабатывать данное изображение JPEG . [101] |
CHECK_PNGFORMAT | Определяет, может ли он обрабатывать данное изображение PNG . [102] |
CLIP_TO_PATH | Применяет функцию к текущему контуру обрезки PostScript . [103] |
CLOSE_CHANNEL | То же, что и ENDDOC. [104] |
DOWNLOAD_FACE | Устанавливает имя шрифта на устройстве вывода. [105] |
DOWNLOAD_HEADER | Загружает наборы процедур PostScript. [106] |
DRAW_PATTERNRECT | Рисует прямоугольник с заданным узором. [107] |
ENCAPSULATED_POSTSCRIPT | Отправляет произвольные инкапсулированные данные PostScript (EPS) непосредственно в драйвер принтера. [108] |
END_PATH | Заканчивает путь. [109] |
ENDDOC | Уведомляет драйвер принтера о завершении нового задания на печать. [110] |
EPS_PRINTING | Указывает начало и конец печати EPS. [111] |
EXTTEXTOUT | Рисует текст, используя текущий выбранный шрифт, цвет фона и цвет текста. [112] |
GET_COLORTABLE | Получает значения таблицы цветов из драйвера принтера. [113] |
GET_DEVICEUNITS | Получает единицы устройства, в настоящее время настроенные на устройстве вывода. [114] |
GET_EXTENDED_TEXTMETRICS | Получает расширенные текстовые метрики, которые в настоящее время настроены в драйвере принтера. [115] |
GET_FACENAME | Получает имя шрифта, настроенное в настоящее время на устройстве вывода. [116] |
GET_PAIRKERNTABLE | Получает таблицу ядра шрифтов, которая в настоящее время определена на устройстве вывода. [117] |
GET_PHYSPAGESIZE | Извлекает физический размер страницы, выбранный в данный момент на устройстве вывода. [118] |
GET_PRINTINGOFFSET | Получает смещение от верхнего левого угла физической страницы, где начинается фактическая печать или рисунок. [119] |
GET_PS_FEATURESETTING | Запрашивает у драйвера принтера информацию о функциях PostScript, поддерживаемых устройством вывода. [120] |
GET_SCALINGFACTOR | Получает коэффициенты масштабирования для оси x и оси y принтера. [121] |
META_ESCAPE_ENHANCED_METAFILE | Используется для встраивания метафайла EMF в метафайл WMF. [122] |
МЕТАФИЛЬ_ДРАЙВЕР | Запрашивает драйвер принтера о поддержке метафайлов на устройстве вывода. [123] |
NEWFRAME | Уведомляет драйвер принтера о том, что приложение завершило запись на страницу. [124] |
NEXTBAND | Уведомляет драйвер принтера о том, что приложение завершило запись в полосу. [125] |
ПРОЙТИ ЧЕРЕЗ | Передает произвольные данные в драйвер принтера. [126] |
POSTSCRIPT_DATA | Отправляет произвольные данные PostScript на устройство вывода. [127] |
POSTSCRIPT_IDENTIFY | Устанавливает драйвер принтера в режим PostScript или GDI. [128] |
POSTSCRIPT_IGNORE | Сообщает устройству вывода игнорировать данные PostScript. [129] |
POSTSCRIPT_INJECTION | Вставляет блок необработанных данных в поток PostScript. [130] |
POSTSCRIPT_PASSTHROUGH | Отправляет произвольные данные непосредственно в драйвер принтера, который, как ожидается, будет обрабатывать эти данные только в режиме PostScript. [131] |
OPEN_CHANNEL | Действует так же, как STARTDOC, с документом NULL и выходным именем файла, а также данными в необработанном режиме. [132] |
QUERY_DIBSUPPORT | Запрашивает драйвер принтера о поддержке DIB на устройстве вывода. [133] |
QUERY_ESCSUPPORT | Запрашивает драйвер принтера, чтобы определить, поддерживается ли конкретная escape-функция WMF на устройстве вывода. [134] |
SET_COLORTABLE | Устанавливает значения таблицы цветов. [135] |
SET_COPYCOUNT | Устанавливает количество копий. [136] |
SET_LINECAP | Задает режим окончания строки для использования при выводе на устройство вывода. [137] |
SET_LINEJOIN | Задает режим соединения линий для использования при рисовании на устройстве вывода. [138] |
SET_MITERLIMIT | Устанавливает предел длины угловых соединений для использования в чертеже на устройстве вывода. [139] |
SPCLPASSTHROUGH2 | Позволяет документам включать частные процедуры и другие произвольные данные в документы. [140] |
STARTDOC | Уведомляет драйвер принтера о запуске нового задания на печать. [141] |
Была обнаружена серьезная уязвимость в escape-записях вокруг escape-записи Abort, которая хранит код процедуры отмены внутри самой записи. Это затронуло системы Windows (см. CVE - 2005-4560 ) и проект Wine (см. CVE - 2006-0106 ). Согласно Secunia , «уязвимость вызвана ошибкой в обработке файлов метафайлов Windows ('.wmf'), содержащих специально созданные записи SETABORTPROC 'Escape'. Такие записи позволяют выполнять произвольную пользовательскую функцию при отображении файл WMF не работает ". [142]Согласно документации SDK Windows 3.1, escape-код SETABORTPROC был устаревшим и заменен одноименной функцией в Windows 3.1 задолго до того, как была обнаружена уязвимость WMF. [143] Однако устаревший escape-код был сохранен для совместимости с 16-битными программами, написанными для (или, по крайней мере, обратно совместимыми с) Windows 3.0. Это изменение произошло примерно в то же время, когда Microsoft создавала 32-битную повторную реализацию GDI для Windows NT, и вполне вероятно, что уязвимость возникла во время этой попытки.
После того как Стив Гибсон из Gibson Research Corporation обвинил Microsoft в преднамеренном внедрении бэкдора в свой код [144] [145] Марк Руссинович представил опровержение и заявил, что:
... все было по-другому, когда создавался формат. В Windows 3.1 код модели «большой» памяти по своей природе не зависит от местоположения, и Windows никогда не была исправлена, поэтому и Windows, и приложение могли просто скопировать функцию приложения в файл WMF и предположить, что она будет работать при воспроизведении одним и тем же приложением в более поздний сеанс запуска. В любом случае неясно, предполагали ли разработчики приложения, создающие метафайлы на диске с процедурами прерывания. Кроме того, как Стивен Тулуза из Microsoft указал в опровержении заявлений Стива в Microsoft , ландшафт безопасности в начале 1990-х сильно отличался от сегодняшнего, и всему коду, включая тот, который хранится в файле WMF, по своей сути доверяли. [146]
Питер Ферри из Symantec Security Response, США, также не согласен с Гибсоном, отметив, что:
Гибсон утверждал, что создается поток для запуска обработчика SetAbortProc. Фактически, никакой поток для запуска обработчика не создается - это обратный вызов, который вызывается анализатором, и синтаксический анализатор должен ждать, пока обратный вызов не вернется, в противном случае весь смысл функции (для прерывания печати) теряется. . По его собственному признанию, Гибсон не читал документацию (на самом деле он утверждал, что не смог ее найти, хотя она находится в свободном доступе на веб-сайте Microsoft), и он утверждал, что контекст устройства недоступен для обработчика функций. . Конечно, контекст устройства доступен обработчику функции - это один из двух параметров, которые ему передаются (см. Выше), и он необходим для прерывания печати. Наконец, Гибсон заявил, что поток управления не может вернуться в Windows.Это просто вопрос функции, возвращающей и отбрасывающей параметры, которые были переданы в стек. Если запись сформирована правильно, Windows продолжит анализ файла, как и раньше. ... Гибсон признает, что догадывался о нескольких вещах. К сожалению, он плохо угадал. Думаю, теперь мы знаем лучше.[147]
EMF [ править ]
Файлы EMF имеют три возможных версии заголовков. Исходные заголовки - это просто контейнер для изображений, вторая и третья версии инкапсулируют исходный заголовок и содержат запись в формате пикселей и поддержку записей OpenGL, а третья версия инкапсулирует второе расширение заголовка и увеличивает точность EMF и масштабируемость EMF, поскольку это добавлена возможность измерения расстояний до поверхностей устройства в метрической системе. [148]
Каждый заголовок EMF начинается с записи EMR_HEADER и записывает соответствующие свойства устройства, на котором было записано изображение метафайла. Исходный заголовок EMF имеет 80-байтовый заголовок и дополнительную строку описания переменной длины. [149] Другие метафайлы содержат поля расширения, которые инкапсулируют исходный заголовок. EmfMetafileHeaderExtension1
- это запись, которая вставляется непосредственно после исходного заголовка EMF, указывает, есть ли дескриптор формата пикселей и смещение объекта дескриптора в заголовке, а также поле, которое указывает, существуют ли записи OpenGL в метафайле. [150] Дескриптор формата пикселя определяет возможности поверхности рисования и то, закодирован ли пиксель в RGBA.или является индексом в таблице цветов. [151] EmfMetafileHeaderExtension2
- это запись, которая вставляется сразу после EmfMetafileHeaderExtension1
записи, и она содержит два поля со значениями X и Y для измерения поверхности устройства в микрометрах. [152]
Как и файлы WMF, записи можно классифицировать по функциям, однако в файлах EMF больше типов записей, чем в файлах WMF. Записи могут быть классифицированы как элементы управления, растровые изображения, обрезки, комментарии, рисование, экранирование, создание объекта, манипулирование объектами, OpenGL, скобки пути, записи состояния и преобразования.
EMF + [ править ]
С выпуском Windows XP , в Enhanced Metafile Format Plus Extensions формат (EMF +) был введен. EMF + предоставляет способ сериализации вызовов API GDI + таким же образом, как WMF / EMF хранит вызовы GDI.
Существуют также сжатые версии метафайлов Windows, известные как сжатый метафайл Windows (WMZ) и сжатый расширенный метафайл Windows (EMZ) [153], которые в основном представляют собой сжатые с помощью gzip файлы WMF и EMF соответственно.
Реализации [ править ]
Формат WMF был разработан для выполнения слоем Windows GDI для восстановления изображения , но поскольку двоичные файлы WMF содержат определение графических примитивов GDI, составляющих это изображение, можно разработать альтернативные библиотеки, которые отображают двоичный файл WMF. файлы или конвертировать их в другие графические форматы.
См. Также [ править ]
- PostScript
- Язык векторной разметки (VML)
- Масштабируемая векторная графика (SVG)
Ссылки [ править ]
- ^ Формат метафайлов Windows (PDF) , Microsoft, стр. 16
- ^ «[MS-WMF]: формат метафайлов Windows» . MSDN . 2015-06-30 . Проверено 26 июля 2015 .
- ^ [MS-EMF]: Расширенный формат метафайлов (PDF) , Microsoft, стр. 17
- ^ [MS-EMFPLUS]: Расширенный формат метафайлов плюс расширения (PDF) , Microsoft, стр. 19
- ^ Справочник программистов Microsoft Windows 3.1, ресурсы тома 4, Microsoft Press 1992, ISBN 1-55615-494-1 , глава 3, стр. 21-45
- ^ Каолан Макнамара. "Справочник по метафайлу окна (wmf)" . Проверено 1 июня 2008 .
Эти коды операций не реализованы по той причине, что я не знаю, что они собой представляют, нет известной документации.
- ^ «[MS-WMF]: Спецификация формата метафайлов Windows» . Проверено 1 июня 2008 .
- ^ "Microsoft Open Specification Promise" . Проверено 1 июня 2008 .
- ^ a b Расширенные метафайлы в Win32 , Microsoft Developer Network Technology Group, 10 июня 1993 г.
- ^ a b Леонард, Шон (сентябрь 2016 г.). «Метафайлы Windows» . Типы Windows Image Media . IETF . п. 1. дои : 10,17487 / RFC7903 . ISSN 2070-1721 . RFC 7903 . Проверено 8 февраля 2020 года .
- ^ "EMF" , FileFormat , Aspose Pty Ltd , получено 20 января 2020 г.
- ↑ Петцольд, Чарльз (11 октября 1994 г.), "NT Metafiles and GDI Objects" , PC Magazine , pp. 343–347
- ^ Поляков, Алексей; Брусенцев, Виталий (2005). Программирование графики с помощью GDI + и DirectX . Публикация A-List. п. 68. ISBN 1-931769-39-7.
- ^ «3.1.4.1 Таблица объектов WMF», [MS-WMF]: Расширенный формат метафайлов (PDF) , Microsoft, стр. 187
- ^ «3.1.1.1 Таблица объектов EMF», [MS-EMF]: Спецификация формата метафайлов Windows (PDF) , Microsoft, стр. 212-214
- ^ [MS-EMFPLUS]: Enhanced Metafile Format Plus Extensions (PDF) , Microsoft, стр. 204–205.
- ^ «Рис. 1. Структуры исходных и размещаемых метафайлов Windows», Формат метафайлов Windows (PDF) , Microsoft, стр. 17
- ^ Q66949: ИНФОРМАЦИЯ: Функции метафайлов Windows и размещаемые метафайлы Aldus , Microsoft - через Архив базы знаний: архив ранней базы знаний Майкрософт
- ^ a b c «1.3.1 Структура метафайлов», формат метафайлов Windows (PDF) , Microsoft, стр. 17
- ^ "2.3.2.3 Запись META_PLACEABLE", Формат метафайлов Windows (PDF) , Microsoft, стр. 115
- ^ Формат метафайлов Windows (PDF) , Microsoft, стр. 55,
<55> Раздел 2.3.2.3: Windows NT 3.1, Windows NT 3.5, Windows NT 3.51 и Windows 95: Эта функция не поддерживается.
- ^ «2.3.2.2 Запись MTF_HEADERRECORD», формат метафайлов Windows (PDF) , Microsoft, стр. 114
- ^ «2.3.2.2 Запись MTF_HEADERRECORD», формат метафайлов Windows (PDF) , Microsoft, стр. 114
- ^ «2.3.2.1 Запись MTF_EOF», Формат метафайлов Windows (PDF) , Microsoft, стр. 114
- ^ «1.1 Глоссарий», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , Microsoft, стр. 13 , дата обращения 24.01.2020
- ^ "2.3.1.1 Запись META_BITBLT", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 101–103 , получено 24 января 2020 г.
- ^ «2.3.1.2 Запись META_DIBBITBLT», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , Microsoft, стр. 103-106 , дата обращения 24.01.2020
- ^ «2.3.1.3 Запись META_DIBSTRETCHBITBLT», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , Microsoft, стр. 106-108 , дата обращения 24.01.2020
- ^ "2.3.1.4 Запись META_SETDIBTODEV", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , Microsoft, стр. 108-109 , дата обращения 24.01.2020
- ^ «2.3.1.5 Запись META_STRETCHBLT», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , Microsoft, стр. 109-110 , дата обращения 24.01.2020
- ^ «2.3.1.6 Запись META_STRETCHDIB», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , Microsoft, стр. 103-106 , дата обращения 24.01.2020
- ^ «2.3.3.1 Запись META_ARC», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 101–103 , получено 24 января 2020 г.
- ^ «2.3.3.2 Запись META_CHORD», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 117–118 , получено 24 января 2020 г.
- ^ «2.3.3.3 Запись META_ELLIPSE», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 119 , дата обращения 24.01.2020
- ^ «2.3.3.4 Запись META_EXTFLOODFILL», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 119–120 , получено 24 января 2020 г.
- ^ «2.3.3.5 Запись META_EXTTEXTOUT», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 119–120 , получено 24 января 2020 г.
- ^ «2.3.3.6 Запись META_FILLREGION», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 121 , дата обращения 24.01.2020
- ^ «2.3.3.7 Запись META_FLOODFILL», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 119–120 , получено 24 января 2020 г.
- ^ "2.3.3.8 Запись META_FRAMEREGION", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 122–123 , получено 24 января 2020 г.
- ^ «2.3.3.9 Запись META_INVERTREGION», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 123 , дата обращения 24.01.2020
- ^ "2.3.3.10 Запись META_LINETO", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 123–124 , получено 24 января 2020 г.
- ^ «2.3.3.11 Запись META_PAINTREGION», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 124 , дата обращения 24.01.2020
- ^ «2.3.3.12 Запись META_PATBLT», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 124–125 , получено 24 января 2020 г.
- ^ «2.3.3.13 Запись META_PIE», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 125–126 , получено 24 января 2020 г.
- ^ «2.3.3.14 Запись META_POLYLINE», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 126 , дата обращения 24.01.2020
- ^ "2.3.3.15 Запись META_POLYGON", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 127 , дата обращения 24.01.2020
- ^ «2.3.3.16 Запись META_POLYPOLYGON», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 127–128 , получено 24 января 2020 г.
- ^ "2.3.3.17 Запись META_RECTANGLE", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 127–128 , получено 24 января 2020 г.
- ^ «2.3.3.18 META_ROUNDRECT Record», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 128–129 , получено 24 января 2020 г.
- ^ «2.3.3.19 META_SETPIXEL Record», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 129–130 , получено 24 января 2020 г.
- ^ "2.3.3.20 Запись META_TEXTOUT", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 130 , дата обращения 24.01.2020
- ^ «2.2.2.2. BitmapCoreHeader Object», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 85 , дата обращения 25.01.2020
- ^ «2.2.2.9. DeviceIndependentBitmap Object», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 91 , дата обращения 25.01.2020
- ^ a b «2.2.1. Графические объекты», [MS-WMF]: спецификация формата метафайлов Windows (PDF) , стр. 79 , дата обращения 25.01.2020
- ^ «2.3.4.1 Запись META_CREATEBRUSHINDIRECT», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 131–132 , получено 25 января 2020 г.
- ^ «2.3.4.2 Запись META_CREATEFONTINDIRECT», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 132 , дата обращения 25.01.2020
- ^ «2.3.4.4 Запись META_CREATEPATTERNBRUSH», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 133–135 , получено 25 января 2020 г.
- ^ «2.3.4.3 Запись META_CREATEPALETTE», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 132–133 , получено 25 января 2020 г.
- ^ «2.3.4.5 Запись META_CREATEPENINDIRECT», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 134–135 , получено 25 января 2020 г.
- ^ "2.3.4.6 Запись META_CREATEREGION", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 135 , дата обращения 25.01.2020
- ^ "2.3.4.7 Запись META_DELETEOBJECT", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 135 , дата обращения 25.01.2020
- ^ "2.3.4.8 Запись META_CREATEBRUSHINDIRECT", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 135–136 , получено 25 января 2020 г.
- ^ «2.3.4.9 Запись META_DIBCREATEPATTERNBRUSH», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 136–137 , получено 25 января 2020 г.
- ^ "2.3.4.10 Запись META_SELECTCLIPREGION", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 137 , дата обращения 25.01.2020
- ^ «2.3.4.11 Запись META_SELECTOBJECT», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 137–138 , получено 25 января 2020 г.
- ^ «2.3.4.11 Запись META_SELECTPLAETTE», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 139 , дата обращения 25.01.2020
- ^ «2.3.5 Типы записей состояния», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 138 , проверено 28 января 2020 г.
- ^ "2.3.5.1 Запись META_ANIMATEPALETTE", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 140 , проверено 28 января 2020 г.
- ^ «2.3.5.2 Запись META_EXCLUDECLIPRECT», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 140–141 , получено 2020-01-28
- ^ "2.3.5.3 Запись META_INTERSECTCLIPRECT", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 141–142 , получено 2020-01-28
- ^ «2.3.5.1 Запись META_MOVETO», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 142 , проверено 28 января 2020 г.
- ^ "2.3.5.4 Запись META_OFFSETCLIPRGN", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 142–143 , получено 2020-01-28
- ^ "2.3.5.5 Запись META_OFFSETVIEWPORTORG", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 143 , проверено 28 января 2020 г.
- ^ "2.3.5.6 Запись META_OFFSETWINDOWORG", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 131–132 , получено 2020-01-28
- ^ "2.3.5.7 Запись META_REALIZEPALETTE", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 143–144 , получено 2020-01-28
- ^ "2.3.5.8 Запись META_RESIZEPALETTE", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 144 , проверено 28 января 2020 г.
- ^ «2.3.5.9 Запись META_RESTOREDC», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 145 , проверено 28 января 2020 г.
- ^ "2.3.5.10 Запись META_SAVEDC", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 145 , проверено 28 января 2020 г.
- ^ "2.3.5.11 Запись META_SCALEVIEWPORTEXT", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 145–146 , получено 2020-01-28
- ^ «2.3.5.12 Запись META_SCALEWINDOWEXT», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 146–147 , получено 2020-01-28
- ^ "2.3.5.13 Запись META_SETBKCOLOR", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 147 , проверено 28 января 2020 г.
- ^ «2.3.5.14 META_SETBKMODE Record», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 147–148 , получено 2020-01-28
- ^ "2.3.5.15 Запись META_SETLAYOUT", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 148 , проверено 28 января 2020 г.
- ^ "2.3.5.16 Запись META_SETMAPMODE", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 148–149 , получено 2020-01-28
- ^ "2.3.5.17 Запись META_SETMAPPERFLAGS", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 131–132 , получено 2020-01-28
- ^ "2.3.5.18 Запись META_ANIMATEPALETTE", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 149 , проверено 28 января 2020 г.
- ^ "2.3.5.19 META_SETPALENTRIES Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 149–150 , получено 2020-01-28
- ^ "2.3.5.20 Запись META_SETRELABS", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 150 , проверено 28 января 2020 г.
- ^ "2.3.5.21 Запись META_SETROP2", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 151 , проверено 28 января 2020 г.
- ^ "2.3.5.1 Запись META_SETSTRETCHBLTMODE", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 151–152 , получено 2020-01-28
- ^ «2.3.5.22 Запись META_SETTEXTALIGN», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 152 , проверено 28 января 2020 г.
- ^ "2.3.5.1 Запись META_SETTEXTCHAREXTRA", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 152–153 , получено 2020-01-28
- ^ "2.3.5.23 Запись META_SETTEXTCOLOR", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 153 , проверено 28 января 2020 г.
- ^ "2.3.5.24 Запись META_SETTEXTJUSTIFICATION", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 153–154 , получено 2020-01-28
- ^ "2.3.5.25 Запись META_SETVIEWPORTEXT", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 154 , проверено 28 января 2020 г.
- ^ «2.3.5.26 Запись META_SETVIEWPORTORG», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 154–155 , получено 28 января 2020 г.
- ^ «2.3.5.27 Запись META_SETWINDOWEXT», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 155 , проверено 28 января 2020 г.
- ^ «2.3.5.28 Запись META_SETWINDOWORG», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 155 , проверено 28 января 2020 г.
- ^ «2.3.6.2. ABORTDOC Record», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 158–159 , получено 28 января 2020 г.
- ^ «2.3.6.3. Запись BEGIN_PATH», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 159 , проверено 28 января 2020 г.
- ^ «2.3.6.4. Запись CHECK_JPEGFORMAT», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 159–160 , получено 2020-01-28
- ^ «2.3.6.5. Запись CHECK_PNGFORMAT», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 160 , проверено 28 января 2020 г.
- ^ «2.3.6.6. Запись CLIP_TO_PATH», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 160 , проверено 28 января 2020 г.
- ^ «2.3.6.7. Запись CLOSE_CHANNEL», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 162 , проверено 28 января 2020 г.
- ^ «2.3.6.8. DOWNLOAD_FACE Record», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 162–163 , получено 2020-01-28
- ^ «2.3.6.9. DOWNLOAD_HEADER Record», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 158–159 , получено 2020-01-28
- ^ «2.3.6.10. Запись DRAW_PATTERNRECT», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 163–164 , получено 2020-01-28
- ^ «2.3.6.11. Запись ENCAPSULATED_POSTSCRIPT», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 164 , проверено 28 января 2020 г.
- ^ «2.3.6.12. END_PATH Record», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 164–165 , получено 28 января 2020 г.
- ^ «2.3.6.13. Запись ENDDOC», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 165 , дата обращения 28.01.2020
- ^ «2.3.6.14. EPS_PRINTING Record», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 165–166 , получено 28 января 2020 г.
- ^ «2.3.6.15. EXTTEXTOUT Record», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 166–167 , получено 28 января 2020 г.
- ^ «2.3.6.16. GET_COLORTABLE Record», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 167–168 , получено 2020-01-28
- ^ «2.3.6.17. Запись GET_DEVICEUNITS», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 168 , проверено 28 января 2020 г.
- ^ «2.3.6.18. GET_EXTENDED_TEXTMETRICS Record», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 168–169 , получено 2020-01-28
- ^ «2.3.6.19. Запись GET_FACENAME», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 169 , проверено 28 января 2020 г.
- ^ «2.3.6.20. GET_PAIRKERNTABLE Record», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 169–170 , получено 2020-01-28
- ^ «2.3.6.21. Запись GET_PHYSPAGESIZE», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 170 , дата обращения 28.01.2020
- ^ «2.3.6.22. GET_PRINTINGOFFSET Record», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 170–171 , получено 2020-01-28
- ^ «2.3.6.23. Запись GET_PS_FEATURESETTING», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 171 , проверено 28 января 2020 г.
- ^ «2.3.6.24. GET_SCALINGFACTOR Record», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 171–172 , получено 2020-01-28
- ^ «2.3.6.25. Запись META_ESCAPE_ENHANCED_METAFILE», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 172–173 , получено 2020-01-28
- ^ «2.3.6.26. Запись METAFILE_DRIVER», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 173–174 , получено 2020-01-28
- ^ «2.3.6.27. Запись NEWFRAME», [MS-WMF]: спецификация формата метафайлов Windows (PDF) , стр. 174–175 , получено 28 января 2020 г.
- ^ «2.3.6.28. Запись NEXTBAND», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 174–175 , получено 28 января 2020 г.
- ^ «2.3.6.29. PASSTHROUGH Record», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 175 , проверено 28 января 2020 г.
- ^ «2.3.6.30. Запись POSTSCRIPT_DATA», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 176 , проверено 28 января 2020 г.
- ^ «2.3.6.31. Запись POSTSCRIPT_IDENTIFY», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 176–177 , получено 2020-01-28
- ^ «2.3.6.32. Запись POSTSCRIPT_IGNORE», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 177 , проверено 28 января 2020 г.
- ^ «2.3.6.33. POSTSCRIPT_INJECTION Record», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 177–178 , получено 2020-01-28
- ^ «2.3.6.34. Запись POSTSCRIPT_PASSTHROUGH», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 178 , проверено 28 января 2020 г.
- ^ «2.3.6.35. Запись OPEN_CHANNEL», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 179 , проверено 28 января 2020 г.
- ^ «2.3.6.36. QUERY_DIBSUPPORT Record», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 179–180 , получено 2020-01-28
- ^ «2.3.6.37. Запись QUERY_ESCSUPPORT», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 180 , дата обращения 28.01.2020
- ^ «2.3.6.38. SET_COLORTABLE Record», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 180–181 , получено 2020-01-28
- ^ «2.3.6.39. Запись SET_COPYCOUNT», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 181 , проверено 28 января 2020 г.
- ^ «2.3.6.40. SET_LINECAP Record», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 181–182 , получено 2020-01-28
- ^ «2.3.6.41. SET_LINEJOIN Record», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 182–183 , получено 2020-01-28
- ^ «2.3.6.42. Запись SET_MITERLIMIT», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 183 , проверено 28 января 2020 г.
- ^ «2.3.6.43. SPCLPASSTHROUGH2 Record», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 183–184 , получено 2020-01-28
- ^ «2.3.6.44. STARTDOC Record», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 184 , проверено 28 января 2020 г.
- ^ "Microsoft Windows WMF" SETABORTPROC "Выполнение произвольного кода" . Secunia . Консультации Secunia: SA18255. Архивировано из оригинала 2 января 2006 года.
- ^ Pscript-Supported Escapes , Microsoft , получено 28 января 2020 г.
- ^ "Бэкдор Windows MetaFile?" . GRC Security сейчас! (Подкаст). Gibson Research Corporation . 12 января 2006 . Проверено 28 января 2020 .
- ^ Гибсон, Стив (12 января 2006 г.), «Re: Вы не захотите пропустить сегодняшний вечер Security Now !, # 22» , grc.news.feedback , получено 2020-01-28
- ^ Russinovich, Марк (18 января 2006), "Внутри WMF Backdoor" , TechNet , Microsoft - с помощью Microsoft Tech сообщества
- ^ Ферри, Питер (2 февраля 2006 г.), Inside the Windows Meta File Format (PDF) , Virus Bulletin , получено 24 января 2020 г. - через Symantec
- ^ «1.3.1. Структура метафайлов», [MS-EMF]: Enhanced Metafile Format (PDF) , Microsoft, стр. 17–18
- ^ «2.3.4.2.1 Запись EmfMetafileHeader», [MS-EMF]: Расширенный формат метафайлов (PDF) , Microsoft, стр. 120
- ^ «2.2.10 HeaderExtension1 Object», [MS-EMF]: Расширенный формат метафайлов (PDF) , Microsoft, стр. 57–58
- ^ "2.2.22 PixelFormatDescriptor Object", [MS-EMF]: Расширенный формат метафайлов (PDF) , Microsoft, стр. 68–71
- ^ «2.3.4.2.3 Запись EmfMetafileHeaderExtension2», [MS-EMF]: Расширенный формат метафайлов (PDF) , Microsoft, стр. 122–124
- ^ «Вы получаете сообщение об ошибке« Этот файл представляет собой неподдерживаемый графический формат »при попытке вставить изображение в презентацию PowerPoint для Mac» . Microsoft . Архивировано из оригинала на 2014-04-19 . Проверено 19 апреля 2014 .
Внешние ссылки [ править ]
- Спецификация формата метафайлов Windows от Microsoft
- Метафайлы - приложения Windows
- Сводка формата файла на fileformat.info
- Часто задаваемые вопросы по метафайлу Windows