Что такое метафайл windows
По сути, метафайл хранит список записей, состоящий из команд рисования, определений свойств и графических объектов для отображения изображения на экране. Используемые команды рисования тесно связаны с командами API интерфейса графического устройства (GDI), используемыми для рисования в Microsoft Windows.
СОДЕРЖАНИЕ
История
Структура метафайла
Файлы WMF и EMF обрабатывают объектную обработку иначе, чем записи EMF + в файлах EMF. В процессе обработки файлов WMF и EMF записи считываются в таблицу объектов после определения объекта. Если объект удален, объект удаляется из таблицы, и идентификатор можно использовать повторно. Примечательно, что объект не будет использоваться, пока он не будет специально выбран во время воспроизведения записи. Это отличается от файлов EMF +, которые также используют ассоциативный массив через хэш-карту, которая записывает объект вместе с идентификатором объекта. Однако, в отличие от файлов WMF и EMF, которые могут удалять объект, когда создается новый объект, имеющий тот же индекс, что и существующий объект, запись в таблице заменяется новым объектом. EMF-файлу также не нужно специально выбирать объект перед его использованием.
Записи, отличные от записей управления, могут быть в значительной степени сгруппированы в записи растровых изображений, записи чертежей, записи объектов, записи состояния и записи перехода.
Записи растровых изображений
Записи чертежей
Записи чертежей производят вывод графики.
Записи об объектах
Графическими объектами могут быть кисти (определяет стиль, цвет и узор кисти, которые определяют, как рисовать область графики), шрифты (определяют свойства, которые влияют на отображение текста), палитры (задают цвета как значения, не зависящие от устройства, определяется приложением), перьями (задает графические атрибуты линии) и областями (которые определяют сегменты линии и кривой, определяющие форму).
Государственные записи
Записи состояния управляют графическими свойствами контекста устройства воспроизведения.
Имя | Описание |
---|---|
META_ANIMATEPALETTE | Переопределяет записи в логической палитре, которая определена в контексте устройства воспроизведения с помощью указанного объекта палитры. |
META_EXCLUDECLIPRECT | Устанавливает область отсечения, которая определена в контексте устройства воспроизведения, равной существующей области отсечения за вычетом указанного прямоугольника. |
META_INTERSECTCLIPRECT | Устанавливает область отсечения, которая определена в контексте устройства воспроизведения, на пересечение существующей области отсечения и указанного прямоугольника. |
META_MOVETO | Устанавливает позицию вывода в контексте устройства воспроизведения в указанную точку. |
META_OFFSETCLIPRGN | Перемещает область отсечения, определенную в контексте устройства воспроизведения, на указанные смещения. |
META_OFFSETVIEWPORTORG | Перемещает начало координат области просмотра в контексте устройства воспроизведения на заданные горизонтальные и вертикальные смещения. |
META_OFFSETWINDOWORG | Перемещает исходную точку окна вывода в контексте устройства воспроизведения на заданные горизонтальные и вертикальные смещения. |
META_REALIZEPALETTE | Сопоставляет записи из логической палитры, которая определена в контексте устройства воспроизведения, с системной палитрой. |
META_RESIZEPALETTE | Переопределяет размер логической палитры, определенной в контексте устройства воспроизведения. |
META_RESTOREDC | Восстанавливает контекст устройства воспроизведения из ранее сохраненного контекста устройства. |
META_SAVEDC | Сохраняет контекст устройства воспроизведения для последующего извлечения. |
META_SCALEVIEWPORTEXT | Масштабирует горизонтальную и вертикальную границы области просмотра, которая определена в контексте устройства воспроизведения, с использованием соотношений, образованных указанными множителями и делителями. |
META_SCALEWINDOWEXT | Масштабирует горизонтальные и вертикальные размеры окна вывода, которое определено в контексте устройства воспроизведения, с использованием соотношений, образованных указанными множителями и делителями. |
META_SETBKCOLOR | Устанавливает заданный цвет фона в контексте устройства воспроизведения. |
META_SETBKMODE | Устанавливает режим фонового микширования в контексте устройства воспроизведения. |
META_SETLAYOUT | Определяет ориентацию макета в контексте устройства воспроизведения. |
META_SETMAPMODE | Определяет режим сопоставления в контексте устройства воспроизведения. |
META_SETMAPPERFLAGS | Определяет алгоритм, который использует средство сопоставления шрифтов при сопоставлении логических шрифтов с физическими шрифтами. |
META_SETPALENTRIES | Определяет значения цвета RGB в диапазоне записей в логической палитре, которая определяется в контексте устройства воспроизведения. |
META_SETPOLYFILLMODE | Определяет режим заливки многоугольника в контексте устройства воспроизведения для графических операций, заполняющих многоугольники. |
META_SETRELABS | Неиспользованная запись. |
META_SETROP2 | Определяет режим смешивания работы с растром переднего плана в контексте устройства воспроизведения. |
META_SETSTRETCHBLTMODE | Определяет режим растяжения растрового изображения в контексте устройства воспроизведения. |
META_SETTEXTALIGN | Определяет значения выравнивания текста в контексте устройства воспроизведения. |
META_SETTEXTCHAREXTRA | Определяет межсимвольный интервал для выравнивания текста в контексте устройства воспроизведения. |
META_SETTEXTCOLOR | Определяет цвет текста переднего плана в контексте устройства воспроизведения. |
META_SETTEXTJUSTIFICATION | Определяет количество места, которое нужно добавить для разрыва символов в строке выровненного текста. |
META_SETVIEWPORTEXT | Определяет горизонтальную и вертикальную границы области просмотра в контексте устройства воспроизведения. |
META_SETVIEWPORTORG | Определяет источник области просмотра в контексте устройства воспроизведения. |
META_SETWINDOWEXT | Определяет горизонтальные и вертикальные размеры окна вывода в контексте устройства воспроизведения. |
META_SETWINDOWORG | Определяет источник окна вывода в контексте устройства воспроизведения. |
Записи о побегах
Следующие escape-записи составляют файл WMF.
После того, как Стив Гибсон обвинил Microsoft в преднамеренном внедрении бэкдора в свой код, Марк Руссинович представил опровержение и заявил, что:
Питер Ферри из Symantec Security Response, США, также не согласен с Гибсоном, отметив, что:
Как и файлы WMF, записи можно классифицировать по функциям, однако в файлах EMF больше типов записей, чем в файлах WMF. Записи могут быть классифицированы как элементы управления, растровые изображения, обрезки, комментарии, рисование, экранирование, создание объекта, манипулирование объектами, OpenGL, скобки пути, записи состояния и преобразования.
Существуют также сжатые версии метафайлов Windows, известные как сжатый метафайл Windows (WMZ) и сжатый расширенный метафайл Windows (EMZ), которые в основном представляют собой сжатые с помощью gzip файлы WMF и EMF соответственно.
Реализации
По сути, метафайл хранит список записей, состоящий из команд рисования, определений свойств и графических объектов для отображения изображения на экране. Используемые команды рисования тесно связаны с командами API интерфейса графического устройства (GDI), используемыми для рисования в Microsoft Windows.
СОДЕРЖАНИЕ
История
Структура метафайла
Файлы WMF и EMF обрабатывают объектную обработку иначе, чем записи EMF + в файлах EMF. В процессе обработки файлов WMF и EMF записи считываются в таблицу объектов после определения объекта. Если объект удален, объект удаляется из таблицы, и идентификатор можно использовать повторно. Примечательно, что объект не будет использоваться, пока он не будет специально выбран во время воспроизведения записи. Это отличается от файлов EMF +, которые также используют ассоциативный массив через хэш-карту, которая записывает объект вместе с идентификатором объекта. Однако, в отличие от файлов WMF и EMF, которые могут удалять объект, когда создается новый объект, имеющий тот же индекс, что и существующий объект, запись в таблице заменяется новым объектом. EMF-файлу также не нужно специально выбирать объект перед его использованием.
Записи, отличные от записей управления, могут быть в значительной степени сгруппированы в записи растровых изображений, записи чертежей, записи объектов, записи состояния и записи перехода.
Записи растровых изображений
Записи чертежей
Записи чертежей производят вывод графики.
Записи об объектах
Графическими объектами могут быть кисти (определяет стиль, цвет и узор кисти, которые определяют, как рисовать область графики), шрифты (определяют свойства, которые влияют на отображение текста), палитры (задают цвета как значения, не зависящие от устройства, определяется приложением), перьями (задает графические атрибуты линии) и областями (которые определяют сегменты линии и кривой, определяющие форму).
Государственные записи
Записи состояния управляют графическими свойствами контекста устройства воспроизведения.
Имя | Описание |
---|---|
META_ANIMATEPALETTE | Переопределяет записи в логической палитре, которая определена в контексте устройства воспроизведения с помощью указанного объекта палитры. |
META_EXCLUDECLIPRECT | Устанавливает область отсечения, которая определена в контексте устройства воспроизведения, равной существующей области отсечения за вычетом указанного прямоугольника. |
META_INTERSECTCLIPRECT | Устанавливает область отсечения, которая определена в контексте устройства воспроизведения, на пересечение существующей области отсечения и указанного прямоугольника. |
META_MOVETO | Устанавливает позицию вывода в контексте устройства воспроизведения в указанную точку. |
META_OFFSETCLIPRGN | Перемещает область отсечения, определенную в контексте устройства воспроизведения, на указанные смещения. |
META_OFFSETVIEWPORTORG | Перемещает начало координат области просмотра в контексте устройства воспроизведения на заданные горизонтальные и вертикальные смещения. |
META_OFFSETWINDOWORG | Перемещает исходную точку окна вывода в контексте устройства воспроизведения на заданные горизонтальные и вертикальные смещения. |
META_REALIZEPALETTE | Сопоставляет записи из логической палитры, которая определена в контексте устройства воспроизведения, с системной палитрой. |
META_RESIZEPALETTE | Переопределяет размер логической палитры, определенной в контексте устройства воспроизведения. |
META_RESTOREDC | Восстанавливает контекст устройства воспроизведения из ранее сохраненного контекста устройства. |
META_SAVEDC | Сохраняет контекст устройства воспроизведения для последующего извлечения. |
META_SCALEVIEWPORTEXT | Масштабирует горизонтальную и вертикальную границы области просмотра, которая определена в контексте устройства воспроизведения, с использованием соотношений, образованных указанными множителями и делителями. |
META_SCALEWINDOWEXT | Масштабирует горизонтальные и вертикальные размеры окна вывода, которое определено в контексте устройства воспроизведения, с использованием соотношений, образованных указанными множителями и делителями. |
META_SETBKCOLOR | Устанавливает заданный цвет фона в контексте устройства воспроизведения. |
META_SETBKMODE | Устанавливает режим фонового микширования в контексте устройства воспроизведения. |
META_SETLAYOUT | Определяет ориентацию макета в контексте устройства воспроизведения. |
META_SETMAPMODE | Определяет режим сопоставления в контексте устройства воспроизведения. |
META_SETMAPPERFLAGS | Определяет алгоритм, который использует средство сопоставления шрифтов при сопоставлении логических шрифтов с физическими шрифтами. |
META_SETPALENTRIES | Определяет значения цвета RGB в диапазоне записей в логической палитре, которая определяется в контексте устройства воспроизведения. |
META_SETPOLYFILLMODE | Определяет режим заливки многоугольника в контексте устройства воспроизведения для графических операций, заполняющих многоугольники. |
META_SETRELABS | Неиспользованная запись. |
META_SETROP2 | Определяет режим смешивания работы с растром переднего плана в контексте устройства воспроизведения. |
META_SETSTRETCHBLTMODE | Определяет режим растяжения растрового изображения в контексте устройства воспроизведения. |
META_SETTEXTALIGN | Определяет значения выравнивания текста в контексте устройства воспроизведения. |
META_SETTEXTCHAREXTRA | Определяет межсимвольный интервал для выравнивания текста в контексте устройства воспроизведения. |
META_SETTEXTCOLOR | Определяет цвет текста переднего плана в контексте устройства воспроизведения. |
META_SETTEXTJUSTIFICATION | Определяет количество места, которое нужно добавить для разрыва символов в строке выровненного текста. |
META_SETVIEWPORTEXT | Определяет горизонтальную и вертикальную границы области просмотра в контексте устройства воспроизведения. |
META_SETVIEWPORTORG | Определяет источник области просмотра в контексте устройства воспроизведения. |
META_SETWINDOWEXT | Определяет горизонтальные и вертикальные размеры окна вывода в контексте устройства воспроизведения. |
META_SETWINDOWORG | Определяет источник окна вывода в контексте устройства воспроизведения. |
Записи о побегах
Следующие escape-записи составляют файл WMF.
После того, как Стив Гибсон обвинил Microsoft в преднамеренном внедрении бэкдора в свой код, Марк Руссинович представил опровержение и заявил, что:
Питер Ферри из Symantec Security Response, США, также не согласен с Гибсоном, отметив, что:
Как и файлы WMF, записи можно классифицировать по функциям, однако в файлах EMF больше типов записей, чем в файлах WMF. Записи могут быть классифицированы как элементы управления, растровые изображения, обрезки, комментарии, рисование, экранирование, создание объекта, манипулирование объектами, OpenGL, скобки пути, записи состояния и преобразования.
Существуют также сжатые версии метафайлов Windows, известные как сжатый метафайл Windows (WMZ) и сжатый расширенный метафайл Windows (EMZ), которые в основном представляют собой сжатые с помощью gzip файлы WMF и EMF соответственно.
Реализации
WMF Расширение файла.
Что такое файл WMF??
Собственный графический формат Windows, разработанный Microsoft; содержит последовательность операций рисования, включая команды для рисования линий, окружностей и прямоугольников; может также содержать растровые операции рисования; используется в основном для векторных изображений, но может также включать растровую графику.
Файлы WMF первоначально появились в 1988 году с выпуском Windows 2.0. Позже Microsoft опубликовала спецификацию формата файлов WMF с выпуском Windows 3.1 в 1992 году, а затем опубликовала последующую спецификацию в 2006 году.
Windows
File Viewer Plus |
ACD Systems ACDSee 2018 |
Adobe Illustrator CC 2019 |
IMSI TurboCAD Pro |
CorelDRAW Graphics Suite 2018 |
Corel PaintShop Pro 2019 |
ACD Systems Canvas X 2019 |
Newera Graphics Converter Pro |
Microsoft Windows Photo Viewer |
Microsoft Picture It! |
Inkscape |
Mac
IMSI TurboCAD Deluxe |
Adobe Illustrator CC 2019 |
Cristallight WMF Converter Pro |
Apple QuickTime Player with Flip4Mac WMV Components |
Inkscape |
Тип файла 2 Файл карты Widelands.
Файл карты, используемый Widelands, стратегической игрой, в которой игроки контролируют племена и строят поселения; содержит игровую карту, которая включает размер карты, местность, начальные ресурсы и стартовые локации племени; может быть использован для создания пользовательских карт.
Метафайл Windows
Оглавление
Недостатки
Все графические системы (включая PostScript) используют внутренние линии для изогнутых линий шрифтов, а также для кругов и эллипсов. Однако в WMF строки также находятся в файле. В результате при копировании через буфер обмена и последующем его увеличении ступени и углы между отдельными участками маршрута появляются, если отдельные линии слишком длинные. После копирования в буфер обмена i-точка может больше походить на многоугольник, чем на круг. Таким образом, потенциальное преимущество векторного формата частично теряется. Поскольку принтеры имеют гораздо более высокое разрешение, чем мониторы, вы можете видеть на распечатке даже без увеличения, что изогнутые линии состоят из отдельных прямых участков. Этот эффект неожиданно возникает, в частности, когда программа создания графики z. Б. создал объект OLE, включающий предварительный просмотр WMF с достаточной точностью только для отображения на экране.
Возможности WMF, безусловно, позволят создать графику, достаточно точную для печати. В частности, основная свобода выбора графического разрешения позволяет почти любое прекрасное представление z. B. Вес линий. Часто генерирующие программы используют только разрешение 72 DPI для обмена графикой через буфер обмена, чего достаточно для отображения на экране.
Уязвимость в WMF
Примечания к спецификации WMF
1155,98 мм)
или файл с разрешением 72 DPI :
1 точка × 65 536 = 65 536 точек (
Согласно базе знаний Microsoft, формат файла WMF, вероятно, был немного изменен в 2000 году (это означает, что FrontPage 2000/2002 импортирует старые файлы WMF неправильного размера). Так что вроде бы разные версии.
Полная спецификация опубликована на компакт-диске в «Microsoft Developer Network» (MSDN).
Расширенный метафайл Windows (EMF)
Функции Metafile
Для метафайлов с улучшенными форматами используются следующие функции.
Функция | Описание |
---|---|
клосинхметафиле | Закрывает контекст устройства расширенного метафайла. |
копенхметафиле | Копирует содержимое метафайла расширенного формата в указанный файл. |
креатинхметафиле | Создает контекст устройства для расширенного формата метафайла. |
делетинхметафиле | Удаляет метафайл с расширенным форматом или расширенный формат метафайлов. |
енхметафилепрок | Определяемая приложением функция обратного вызова, используемая с функцией Енуменхметафиле. |
енуменхметафиле | Перечисляет записи в метафайле с расширенным форматом. |
гдикоммент | Копирует комментарий из буфера в заданный метафайл расширенного формата. |
жетенхметафиле | Создает маркер, который определяет метафайл в формате EMF, хранящийся в указанном файле. |
жетенхметафилебитс | Извлекает содержимое указанного метафайла расширенного формата и копирует их в буфер. |
жетенхметафиледескриптион | Извлекает необязательное текстовое описание из метафайла расширенного формата и копирует строку в указанный буфер. |
жетенхметафилехеадер | Извлекает запись, содержащую заголовок для указанного метафайла расширенного формата. |
жетенхметафилепалеттинтриес | Извлекает необязательные записи палитры из указанного расширенного метафайла. |
Метафайл | параметр «metafile» больше не доступен для использования в Windows 2000. Вместо этого используйте жетенхметафиле. |
жетвинметафилебитс | преобразует записи расширенного формата из метафайла в записи Windows-format. |
плайенхметафиле | Отображает изображение, хранящееся в указанном метафайле Enhanced-Format. |
плайенхметафилерекорд | Воспроизводит запись расширенного метафайла, выполняя функции интерфейса графических устройств (GDI), определяемые записью. |
сетенхметафилебитс | Создает метафайл с расширенным форматом на основе памяти из указанных данных. |
сетвинметафилебитс | преобразует метафайл из старого формата Windows в новый расширенный формат. |
Устаревшие функции
Следующие функции являются устаревшими. предоставляются для совместимости с метафайлами Windows-format.