Что такое формат файла WMF?
.wmf - это файл векторного изображения, разработанный Microsoft и представленный вместе с Windows 3.0 в 1990 году. Векторная графика состоит из объектов и их геометрических отношений, в отличие от растровой графики, которая состоит из сетки пикселей. Формат .wmf также поддерживает растровую графику, хотя и в ограниченном виде - встроенные растровые изображения (DIB) могут появляться наряду с командами рисования GDI внутри файла.
Внутренне формат записывает последовательность 16-битных команд Windows GDI. Наиболее распространенным вариантом является Placeable WMF (Aldus APM), имеющий 22-байтовый заголовок, идентифицируемый магическими байтами D7 CD C6 9A со смещением 0.
Формат так и не обрел большой популярности по сравнению с другими аналогичными форматами. Он предлагал ограниченные возможности масштабирования изображений и был громоздким для использования в крупных проектах, отчасти из-за того, что 16-битные знаковые координаты ограничивают точность до ±32 767 логических единиц. Microsoft заменила его 32-битным .emf (Enhanced Metafile) в 1993 году; вариант, сжатый с помощью GZIP, сохраняется как .wmz.
Безопасность и защита
РИСК: MEDIUMОбычный WMF содержит команды рисования, а не макросы, поэтому содержимое изображения пассивно. Реальную проблему представляют эксплойты парсеров: уязвимость Windows Metafile 2005-2006 годов использовала запись метафайла SETABORTPROC для выполнения произвольного кода просто при просмотре специально подготовленного WMF, и с тех пор в парсинге метафайлов GDI периодически обнаруживались CVE. Держите Windows и Office обновленными и будьте осторожны с файлами .wmf от неизвестных отправителей. WMF внутри обычного старого документа Office - это почти всегда безобидный клипарт.
Детали формата
в двух словахПрограммы, открывающие файлы WMF
Технические подробности
глубокая спецификация| Тип файла | 16-битный векторный метафайл Windows GDI; хранит воспроизводимую последовательность команд рисования GDI |
| Кодировка | Бинарный поток записей, порядок байтов little-endian |
| MIME-тип | `image/wmf`; альтернативы: `image/x-wmf`, `application/x-msmetafile` |
| Магические байты (Placeable WMF) | `D7 CD C6 9A` со смещением 0 в варианте Placeable (Aldus APM) |
| Магические байты (чистый WMF) | `01 00 09 00` (метафайл в памяти) или `02 00 09 00` (метафайл на диске) |
| Структура файла | Необязательный 22-байтовый заголовок Aldus APM + 18-байтовый заголовок WMF + последовательность записей GDI + запись EOF |
| Точность координат | 16-битные целые числа со знаком, ±32 767 логических единиц на ось |
| Глубина цвета | Зависит от устройства; записи GDI используют палитру или значения RGB; встроенные DIB поддерживают от 1 до 24 бит на пиксель |
| Встроенные растры | Аппаратно-независимые растровые изображения (DIB) могут быть включены в поток записей GDI наряду с векторными записями |
| Сжатие | Отсутствует; вариант, сжатый GZIP, имеет расширение `.wmz` |
| Контрольная сумма | 16-битное поле контрольной суммы XOR только в заголовке Aldus APM |
| Формат-преемник | `.emf` (Enhanced Metafile), 32-битная замена GDI со времен Windows NT 3.1 (1993) |
| Поддержка платформ | Windows (нативно через GDI); macOS и Linux через Inkscape, LibreOffice Draw, Adobe Illustrator |
| Примечание по безопасности | Уязвимость записи escape-последовательности `SETABORTPROC` позволяла выполнять произвольный код; широко эксплуатировалась в 2005-2006 годах |
| Выпущен | 1990 (Windows 3.0); documented publicly as MS-WMF |
| Последняя версия | MS-WMF specification (format frozen; superseded by EMF) |
| Открыть стандартное | Да · без роялти |
| Спецификация | learn.microsoft.com |
Конвертации WMF
Вопросы и ответы сообщества
спрошено пользователямиВопросов пока нет - станьте первым, кто спросит о файлах WMF.