Обработка Windows Метафилы

Windows Формат Metafile - это формат файла изображения, который может содержать как векторную, так и растровую графику. Этот формат используется для хранения графических данных в памяти или на диске файлов. Метафайл хранит список вызовов функций в Windows Графический интерфейс устройства (GDI), который должен быть выполнен для отображения изображения на экране. Система интерпретирует и выполняет эти команды в контексте дисплея.

Раньше, Windows Metafile был единственным форматом векторного изображения, поддерживаемым Microsoft Word. Microsoft Word В настоящее время также поддерживается формат SVG, но формат метафайлов по-прежнему широко используется в документах Word. Кроме того, Metafile может быть форматом обмена для некоторых других приложений. Microsoft Визио. Основной целью Metafile является обеспечение обмена графической информацией между Windows приложения.

Существует 3 версии Windows Метафильм:

  • WMF - магазины звонят на 16-битный GDI.
  • EMF - магазины звонят в Win32/GDI.
  • Магазины EMF+ Metafile звонят в GDI+. EMF + Metafile также может быть двойным, описывая одну и ту же графику с частями EMF и EMF +.

Существующий вопрос с Windows Metafile не поддерживается большинством форматов, к которым обычно сохраняются документы. Поэтому необходимо преобразовать формат Metafile в другие растровые или векторные форматы. Легко конвертировать Windows Metafile на растровое изображение .NET просто передавая его в GDI+, но это невозможно на других платформах, так как даже GDI+ не обеспечивает функциональность для извлечения векторной графики из Metafile. Для решения этих вопросов, Aspose.Words реализует собственные Windows Metafile Player, который способен воспроизводить формат Metafile как векторной, так и растровой графики на всех платформах.

Контролировать Aspose.Words Игрок Metafile

The MetafileRenderingOptions Класс позволяет контролировать метафайл плеера. Например, вы можете определить, как изображения метафайлов должны быть визуализированы с помощью RenderingMode свойство, которое имеет особое значение при преобразовании в растровые карты (см. MetafileRenderingOptions собственности).

Поддержка растровых операций

Растровые операции - это сложная функция метафайла, которая в настоящее время имеет ограниченную поддержку. Растровые операции доступны в форматах метафайлов WMF и EMF. Формат метафайла EMF+ не использует растровые операции напрямую, но может содержать части ЭМП, встроенные метафайлы WMF или ЭМП.

Существуют бинарные и тройные растровые операции:

  • Бинарные растровые операции применяются к командам рисования пером, таким как чертежи линий и кривых. При рисовании линии цвет ручки сочетается с цветом растровой карты назначения (цвет соответствующего пикселя на поверхности устройства) с помощью заданных побитовых логических операций с значениями шести цветов. Приведенный ниже пример изображения иллюстрирует эффект всех 16 операций двоичного растра, применяемых к 20 различным цветовым полосам. Сначала рисуются вертикальные цветовые полосы, горизонтальные полосы рисуются после каждой операции бинарного растра. Для простых случаев, R2_BLACK черного цвета, R2не переворачивает цвет, R2_NOP не изменяет фон, и R2_WHITE Белые рисунки.
handling-windows-metafiles-aspose-words-java-1
  • Тернарные растровые операции применяются при рисовании растровых изображений. Они объединяют цвета соответствующих пикселей изображения растровой карты, кисти и растровой карты назначения, используя побитовые логические операции с заданными значениями шести цветов. Одной из наиболее распространенных целей использования тройных растровых операций является эмуляция прозрачности. Изображение, представленное в приведенном ниже примере, демонстрирует, как можно эмулировать прозрачность значков. Существует два типа растровых изображений: растровая карта маски b/w и растровая карта цвета. Во-первых, растровая карта маски рисуется с помощью растровой операции SRCAND. Он меняет область непрозрачных икон на черно-белую, оставляя прозрачную область неизменной. Затем вторая растровая карта рисуется с помощью растровой операции SRCINVERT. Он отображает цветовые пиксели на черной области, оставляя прозрачную область без изменений.
handling-windows-metafiles-aspose-words-java-2

Растровые операции не могут быть преобразованы непосредственно в векторную графику. Aspose.Words эмулирует растровые операции путем частичной растеризации поверхности устройства, пораженной растровыми операциями. Для этой цели, EmulateRasterOperations используется собственность.

Приведенный ниже пример показывает, как Aspose.Words Отображает метафайл в растровую карту, когда невозможно правильно отобразить некоторые записи метафайла в векторной графике: