Hantering Van Windows Meta Lêers

Windows Metafile format is’n beeld lêer formaat wat beide vektor en raster grafiese kan bevat. Hierdie formaat word gebruik om grafiese data in geheue of op-skyf lêers te stoor. ‘n meta-lêer stoor’n lys van funksie oproepe in die Windows Grafiese Toestel Koppelvlak (GDI) wat uitgevoer moet word om die beeld op die skerm te vertoon. Die stelsel interpreteer en voer hierdie opdragte in die vertoning konteks.

Voorheen was Windows Metafile die enigste vektorbeeldformaat wat deur Microsoft Word ondersteun is. Microsoft Word ondersteun nou ook SVG formaat, maar die metafile formaat word steeds algemeen gebruik in Word dokumente. Metafile kan ook’n uitruilformaat wees vir sommige ander toepassings, soos Microsoft Visio. Die Hoofdoel van Metafile is om die uitruil van grafiese inligting tussen Windows toepassings te verseker.

Daar is 3 weergawes van Windows Metafile:

  • WMF - winkels roep na 16bit GDI.
  • EMF - winkels bel Na Win32 / GDI.
  • EMF+ Metafile winkels bel na GDI+. EMF+ Metafile kan ook tweeledig wees, wat dieselfde grafika met beide EMF en EMF+ dele beskryf.

Die bestaande probleem met Windows Metafile is dat dit nie ondersteun word deur die meeste nie-Woord formate, waarop dokumente gewoonlik gestoor word nie. Daarom is dit nodig om die Metafile formaat om te skakel na ander raster of vektor formate. Dit is maklik om Windows Metafile om te skakel na’n rasterbeeld op .NET deur dit eenvoudig aan GDI+ oor te dra, maar dit is nie moontlik op ander platforms nie, aangesien selfs GDI+ nie die funksionaliteit bied om die vektorgrafika uit Metafile te onttrek nie. Om hierdie probleme op te los, implementeer Aspose.Words sy eie Windows Metafile-speler, wat In Staat is om Metafile-formaat beide vektor-en rastergrafika op alle platforms te speel.

Beheer van die Aspose.Words Meta Lêer Speler

Die MetafileRenderingOptions klas stel jou in staat om die metafile speler te beheer. Byvoorbeeld, jy kan bepaal hoe metafile beelde moet weergegee word met behulp van die RenderingMode eiendom, wat’n spesiale betekenis het wanneer die omskakeling na bitmaps (sien ook die MetafileRenderingOptions eiendom).

Ondersteun Raster Bedrywighede

Raster bedrywighede is’n komplekse meta lêer funksie, wat tans beperkte ondersteuning het. Raster operasies is beskikbaar in WMF en EMF meta lêer formate. Die EMF+ metafile formaat gebruik nie raster bedrywighede direk nie, maar kan EMF dele, ingebedde WMF of EMF metafiles bevat.

Daar is binêre en ternêre raster bedrywighede:

  • Binêre raster operasies word toegepas op pen teken opdragte, soos teken lyne en kurwes. Wanneer’n lyn geteken word, word die pen kleur gekombineer met die bestemming bitmap kleur (die kleur van die ooreenstemmende pixel op die toestel oppervlak) deur die gebruik van gespesifiseerde bitwise logiese bedrywighede met hex kleur waardes. Die onderstaande beeld voorbeeld illustreer die effek van alle 16 binêre raster bedrywighede toegepas op 20 verskillende kleur bars. Die vertikale kleurstawe word eers geteken, die horisontale stawe word geteken nadat elke binêre rasteroperasie toegepas is. Vir die eenvoudige gevalle, R2_BLACK trek swart, R2_NOT omkeer die kleur, R2_NOP verander nie die agtergrond nie, en R2_WHITE trek wit.
handling-windows-metafiles-aspose-words-java-1
  • Ternêre raster operasies toegepas word wanneer die tekening van bitmap beelde. Hulle kombineer kleure van ooreenstemmende bitmap beeld pixels, die kwas, en die bestemming bitmap deur die gebruik van bitwise logiese bedrywighede met gespesifiseerde hex kleur waardes. Een van die mees algemene doeleindes van die gebruik van ternêre raster bedrywighede is die nabootsing van deursigtigheid. Die beeld wat in die onderstaande voorbeeld verskaf word, toon hoe ikoon deursigtigheid nageboots kan word. Daar is twee tipes bitmaps: die b/w masker bitmap en die kleur bitmap. Eerstens word die masker bitmap geteken met die SRCAND raster operasie. Dit verander die ondeursigtige ikoon streek na swart en wit, laat die deursigtige streek onveranderd. Dan is die tweede bitmap geteken met die SRCINVERT raster operasie. Dit vertoon die kleurpixels op die swart streek, wat die deursigtige streek onveranderd laat.
handling-windows-metafiles-aspose-words-java-2

Raster bedrywighede kan nie direk omgeskakel word na vektorgrafika. Aspose.Words naboots raster bedrywighede deur gedeeltelik rasterisering van die toestel oppervlak geraak deur raster bedrywighede. Vir hierdie doel word die EmulateRasterOperations eienskap gebruik.

Die voorbeeld hieronder toon hoe Aspose.Words ‘n metafile na’n bitmap weergee wanneer dit nie moontlik is om sommige van die metafile rekords korrek weer te gee aan vektorgrafika nie: