Gestion des métafichiers Windows
Windows Le format de métafichier est un format de fichier image qui peut contenir à la fois des graphiques vectoriels et raster. Ce format est utilisé pour stocker des données graphiques en mémoire ou des fichiers sur disque. Un métafichier stocke une liste d’appels de fonction dans l’interface de périphérique graphique Windows (GDI) qui doivent être exécutés pour afficher l’image à l’écran. Le système interprète et exécute ces commandes dans le contexte d’affichage.
Auparavant, le métafichier Windows était le seul format d’image vectorielle pris en charge par Microsoft Word. Microsoft Word prend désormais également en charge le format SVG, mais le format de métafichier est toujours couramment utilisé dans les documents Word. De plus, le métafichier peut être un format d’échange pour d’autres applications, telles que Microsoft Visio. Essentiellement, le but principal du métafichier est d’assurer l’échange d’informations graphiques entre Windows applications.
Il existe 3 versions du métafichier Windows:
- WMF – stocke l’appel sur 16 bits GDI.
- EMF – les magasins appellent Win32 / GDI.
- EMF+ Les magasins de métafichiers appellent GDI+. Le métafichier EMF+ peut également être double, décrivant les mêmes graphiques avec les parties EMF et EMF+.
Le problème existant avec le métafichier Windows est qu’il n’est pas pris en charge par la plupart des formats non Word, dans lesquels les documents sont généralement enregistrés. Par conséquent, il est nécessaire de convertir le format du métafichier en d’autres formats raster ou vectoriels. Il est facile de convertir le métafichier Windows en une image raster sur .NET en le passant simplement à GDI+, mais ce n’est pas possible sur d’autres plates-formes car même GDI+ ne fournit pas la fonctionnalité pour extraire les graphiques vectoriels du Métafichier. Pour résoudre ces problèmes, Aspose.Words implémente son propre lecteur de métafichier Windows, capable de lire des graphiques vectoriels et raster au format métafichier sur toutes les plateformes.
Contrôler le lecteur de métafichier Aspose.Words
La classe MetafileRenderingOptions vous permet de contrôler le lecteur de métafichier. Par exemple, vous pouvez déterminer comment les images de métafichier doivent être rendues à l’aide de la propriété RenderingMode, qui a une signification particulière lors de la conversion en bitmaps (voir aussi la propriété MetafileRenderingOptions).
Prise En Charge des Opérations Raster
Les opérations raster sont une fonctionnalité de métafichier complexe, qui a actuellement un support limité. Les opérations raster sont disponibles aux formats de métafichier WMF et EMF. Le format EMF+ métafichier n’utilise pas directement d’opérations raster mais peut contenir EMF parties, WMF incorporées ou EMF métafichiers.
Il existe des opérations raster binaires et ternaires:
- Les opérations de trame binaires sont appliquées aux commandes de dessin au stylet, telles que le dessin de lignes et de courbes. Lorsque vous tracez une ligne, la couleur du stylet est combinée avec la couleur de l’image bitmap de destination (la couleur du pixel correspondant sur la surface du périphérique) en utilisant des opérations logiques au niveau du bit spécifiées avec des valeurs de couleur hexadécimales. L’exemple d’image ci-dessous illustre l’effet des 16 opérations de trame binaire appliquées à 20 barres de couleurs différentes. Les barres de couleur verticales sont dessinées en premier, les barres horizontales sont dessinées après l’application de chaque opération de trame binaire. Pour les cas simples, R2_BLACK dessine du noir, R2_NOT inverse la couleur, R2_NOP ne change pas l’arrière-plan et R2_WHITE dessine du blanc.
- Des opérations matricielles ternaires sont appliquées lors du dessin d’images bitmap. Ils combinent les couleurs des pixels d’image bitmap correspondants, du pinceau et de l’image bitmap de destination en utilisant des opérations logiques au niveau du bit avec des valeurs de couleur hexadécimales spécifiées. L’un des objectifs les plus courants de l’utilisation des opérations matricielles ternaires est l’émulation de la transparence. L’image fournie dans l’exemple ci-dessous montre comment la transparence des icônes peut être émulée. Il existe deux types de bitmaps: le bitmap de masque noir et blanc et le bitmap de couleur. Tout d’abord, le bitmap du masque est dessiné avec l’opération raster SRCAND. Il change la région de l’icône opaque en noir et blanc, laissant la région transparente inchangée. Ensuite, la deuxième image bitmap est dessinée avec l’opération raster SRCINVERT. Il affiche les pixels de couleur sur la région noire, laissant la région transparente inchangée.
Les opérations raster ne peuvent pas être converties directement en graphiques vectoriels. Aspose.Words émule les opérations raster en pixellisant partiellement la surface du périphérique affectée par les opérations raster. Pour cela, la propriété EmulateRasterOperations est utilisée.
L’exemple ci-dessous montre comment Aspose.Words restitue un métafichier en bitmap lorsqu’il n’est pas possible de restituer correctement certains des enregistrements du métafichier en graphiques vectoriels: