Метафайл 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 , пообещав не заявлять патентные права разработчикам формата файла. [8]

Позже Microsoft отказалась от файлов WMF в пользу 32-битных файлов EMF, поскольку у файлов WMF были реальные проблемы с независимостью от устройства, несмотря на использование «размещаемого» заголовка файла, который обеспечивал базовую независимость от устройства. Microsoft обнаружила, что разработчики, использующие этот формат, «[встраивали] комментарии о приложении, местоположении или масштабировании в метафайлы... Другие добавляли в метафайл заголовки, которые предоставляли различную информацию, специфичную для приложения», что вызывало серьезные проблемы с совместимостью. [9] Таким образом, в 1992 году с Windows NT 3.1 Microsoft представила расширенный формат метафайла (EMF) [10] — формат, основанный на API Win32 и с помощью которого была встроена независимость от устройства. [11] [9]— они также были известны как метафайлы NT. [12] С выпуском Windows XP и GDI+ набор записей пришлось значительно увеличить, поэтому Microsoft выпустила EMF+ как расширение существующего формата файлов EMF. [10] [13]