Окт 16

Метафайлы

Метафайл — это протокол обращений к функциям GDI, сохраненный в двоичном формате. Метафайлы имеют такое же значение для векторной графики, как и битовые образы для растровой графики. Метафайл состоит из набора записей, соответствующих вызовам графических функций, таких как создание и выбор в контекст устройства пера или кисти, рисование линий, фигур, вывод текста, и иных операций.
При воспроизведении метафайлов достигается такой же результат, как и при непосредственном использовании функций GDI. Разница между их воспроизведением и непосредственным вызовом функций состоит в том, что метафайлы могут храниться в памяти или в файлах на диске, загружаться и воспроизводиться приложением столько раз, сколько это нужно.
Метафайлы используются для передачи изображений между программами через буфер обмена, а также для сохранения изображений в виде файлов на диске. Для их хранения требуется значительно меньше места, чем для хранения растровых изображений. В то же время для отображения метафайлов требуется обычно больше времени, чем для вывода растровых изображений.
Поскольку метафайл описывает изображение в терминах команд графического вывода, то изображение может быть масштабировано при воспроизведении без потери разрешения. Для битовых образов масштабирование всегда связано с потерей качества изображения.
Первоначальный 16-битный формат метафайлов WMF1 появился в Windows 2.O. Однако этот формат был аппаратно-зависимым и не содержал информацию о размерах изображения, поэтому его использование было связано со многими проблемами. В Win32 появился новый 32-битный формат EMF (Enhanced Metafile Format). Расширенные метафайлы содержат дополнительную информацию о размерах изображения и цветовой палитре, что обеспечивает их аппаратную независимость. Кроме того, они поддерживают все 32-битные функции рисования. Win32 API позволяет использовать файлы форматов WMF и EMF.
Поскольку в новых приложениях рекомендуется использовать формат EMF, то в дальнейшем будут рассматриваться только расширенные метафайлы.