Метафайл Windows


Метафайл 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 представила формат Enhanced Metafile (EMF) [10] — формат, который был основан на API Win32 и с которым они встроены в независимость от устройства. [11] [9]— они также были известны как метафайлы NT. [12] С выпуском Windows XP и GDI+ набор записей пришлось значительно увеличить, поэтому Microsoft выпустила EMF+ как расширение существующего формата файлов EMF. [10] [13]


Сравнение метафайлов Windows — обратите внимание, что файлы WMF могут включать записи EMF+.
Структуры исходных и размещаемых метафайлов Windows [17]
Универсальная escape-запись WMF
Заголовки расширенного метафайла Windows