Работа Windows Metafiles

Windows Metafile формат е образ файл формат, който може да съдържа както векторни, така и растерни графики. Този формат се използва за съхранение на графични данни в паметта или на дискови файлове. Метафиле съхранява списък на функциите разговори в Windows Графичен интерфейс за устройства (GDI), който трябва да бъде изпълнен, за да се покаже изображението на екрана. Системата интерпретира и изпълнява тези команди в контекста на дисплея.

Преди, Windows Metafile беше единственият векторен формат, поддържан от Microsoft Word. Microsoft Word Сега също поддържа SVG формат, но мета файл формат все още се използва често в Word документи. Също така Metafile може да бъде обменен формат за някои други приложения, като Microsoft Висио. Основната цел на Metafile е да осигури обмен на графична информация между Windows заявления.

Има 3 версии на Windows Metafile:

  • Обадиха се от магазина на 16 бита GDI.
  • Обаждане до магазина на Win32/GDI.
  • EMF+ Metafile магазините се обаждат на GDI+. EMF+ Metafile може също да бъде двойна, описвайки една и съща графика с двете части EMF и EMF+.

Съществуващият проблем с Windows Metafile е, че не се поддържа от повечето не-Word формати, към които обикновено се съхраняват документи. Следователно е необходимо форматът Metafile да бъде преобразуван в други растерни или векторни формати. Лесно е да се превърне Windows Metafile to a Raster image on .NET чрез просто предаване на GDI+, но не е възможно на други платформи, тъй като дори GDI+ не осигурява функционалността за извличане на векторната графика от Metafile. За да решим тези въпроси, Aspose.Words прилага своя собствена Windows Metafile плейър, който е в състояние да играе Metafile формат както вектор, така и Raster графики на всички платформи.

Контролиране на Aspose.Words Metafile Player

На MetafileRenderingOptions Класът ви позволява да контролирате метафилма. Например, можете да определите как metafile изображенията трябва да се предават с помощта на RenderingMode собственост, която има специално значение при конвертиране в Bitmaps (вж. също MetafileRenderingOptions имот).

Поддържане на операциите на Raster

Рестерните операции са сложна метафилна функция, която понастоящем има ограничена подкрепа. В WMF и EMF метафилите се предлагат операции на Raster. Форматът на метафила EMF+ не използва директно операции на Raster, но може да съдържа части на EMF, вградени WMF или EMF метафили.

Съществуват двоични и тринерни операции:

  • Binary raster операции се прилагат към химикалки рисуване команди, като например чертане линии и криви. Когато чертаете линия, цветът на писалката се комбинира с цвета на картата (цветът на съответния пиксел върху повърхността на устройството) чрез използване на определени логични операции с стойности на хексовия цвят. Примерът по-долу илюстрира ефекта от всички 16 двоични растерни операции, прилагани към 20 различни цветни ленти. Първо се изтеглят вертикалните цветни ленти, след като се приложи всяка двоична операция. За простите случаи, R2_BLACK рисува черно, R2_OT обръща цвета, R2_NOP не променя фона, и R2_WHITE Рисува бяло.
handling-windows-metafiles-aspose-words-java-1
  • При рисуването на картинки се прилагат тернарни растерни операции. Те съчетават цветовете на съответните пиксели с картинки, четката и крайната карта, като използват побитови логически операции с определени стойности на цветовете. Една от най-често срещаните цели на използването на рутинни операции е емулацията на прозрачността. Изображението, представено в примера по-долу, показва как може да се подражава на иконата. Има два вида битмапс: B/w маската bitmap и цвета bitmap. На първо място, маската Bitmap се изготвя с операцията SRCAND Raster. Той променя непрозрачния икона в черно и бяло, оставяйки прозрачния регион непроменен. След това втората bitmap се изготвя с операцията SRCINVERT растер. Показва цветните пиксели на черния регион, оставяйки прозрачния регион непроменен.
handling-windows-metafiles-aspose-words-java-2

Тракторните операции не могат да бъдат преобразувани директно във векторни графики. Aspose.Words емулира работата на растера чрез частично разстъргване на повърхността на устройството, засегната от работата на растера. За тази цел, EmulateRasterOperations собственост се използва.

Примерът по-долу показва как Aspose.Words прави мета файл на битмап, когато не е възможно правилно да се направи някои от метафилните записи на векторни графики: