Windows Metafile

Windows Metafile
Extensie .wmf, .wmz
tip MIME imagine/x-wmf
Dezvoltator Microsoft
Tip de format Grafică vectorială
Dezvoltat în EMF
Site-ul web docs.microsoft.com/en-us…
Metafișier îmbunătățit
Extensie .emf, .emz
tip MIME imagine/x-emf
Dezvoltator Microsoft
Tip de format Grafică vectorială
Extins din WMF
Site-ul web docs.microsoft.com/en-us…

WMF ( în engleză  Windows MetaFile ) este un format de fișier de grafică vectorială universal pentru aplicațiile Windows . Folosit pentru a stoca o colecție de imagini grafice Microsoft Clip Gallery . Formatul a fost dezvoltat de Microsoft și este o parte integrantă a Windows, deoarece păstrează o secvență de funcții GDI (Graphical Device Interface) independente de hardware, care scot direct o imagine într-un anumit context de dispozitiv grafic (ecran, imprimantă etc.). Foarte des, WMF este folosit implicit pentru a salva o imagine a ferestrei de ieșire a unui program și a o restaura ulterior, precum și atunci când se transferă informații prin clipboard. Din MS Windows, scrierea și citirea într-un fișier de acest format este extrem de simplă și rapidă. Un fișier cu acest format poate fi deschis cu programele multiplatforme GIMP (pre-rasterizate) și Inkscape . Pe platforma Macintosh, formatul PICT joacă un rol similar .

Ca format de grafică vectorială , WMF este acceptat în diferite grade de multe aplicații puternice - AutoCAD , OpenOffice.org , Adobe Illustrator și poate fi folosit pentru a face schimb de date între ele.

Structura fișierului

Fișierele WMF și EMF constau dintr-o listă de intrări, fiecare dintre acestea reprezentând o comandă specifică cu un set de argumente. Formatele de înregistrare WMF și EMF sunt similare, dar principalele diferențe sunt:

Lista tipurilor de înregistrări WMF și EMF

Înregistrare WMF Codul de înregistrare WMF înregistrare EMF Cod de înregistrare EMF Descriere
EMR_HEADER 0x00000001 antet
EMR_POLYBEZIER 0x00000002
EMR_POLYBEZIER16 0x00000055
META_POLYGON 0x0324 EMR_POLYGON 0x00000003 Desenați o polilinie închisă
EMR_POLYGON16 0x00000056
META_POLYLINE 0x0325 EMR_POLYLINE 0x00000004
EMR_POLYLINE16 0x00000057
EMR_POLYBEZIERTO 0x00000005
EMR_POLYBEZIERTO16 0x00000058
META_POLYPOLYGON 0x0538 EMR_POLYPOLYGON 0x00000008
EMR_POLYPOLYGON16 0x0000005B
META_SETWINDOWEXT 0x020C EMR_SETWINDOWEXTEX 0x00000009 Setați dimensiunile ferestrei (lățime și înălțime)
META_SETWINDOWORG 0x020B EMR_SETWINDOWORGEX 0x0000000A Setați poziția colțului din stânga sus al ferestrei (x și y)
META_SETVIEWPORTEXT 0x020E EMR_SETVIEWPORTEXTEX 0x0000000B Setați dimensiunile dispozitivului de ieșire (lățime și înălțime)
META_SETVIEWPORTORG 0x020D EMR_SETVIEWPORTORGEX 0x0000000C Setați poziția colțului din stânga sus al dispozitivului de ieșire (x și y)
EMR_SETBRUSHORGEX 0x0000000D
META_EOF 0x0000 EMR_EOF 0x0000000E Sfârșitul fișierului
EMR_SETPIXELV 0x0000000F
META_SETMAPPERFLAGS 0x0231 EMR_SETMAPPERFLAGS 0x00000010
META_SETMAPMODE 0x0103 EMR_SETMAPMODE 0x00000011 Specifică modul de conversie a unităților de fereastră logică în unități de dispozitiv de ieșire
META_SETBKMODE 0x0102 EMR_SETBKMODE 0x00000012 Setați modul de umplere (0 - completare oprită, 1 - completare activată)
META_SETPOLYFILLMODE 0x0106 EMR_SETPOLYFILLMODE 0x00000013
META_SETROP2 0x0104 EMR_SETROP2 0x00000014 Setați o operație booleană atunci când desenați (pentru a suprapune o imagine transparentă/inversată etc.)
META_SETSTRETCHBLTMODE 0x0107 EMR_SETSTRETCHBLTMODE 0x00000015
META_SETTEXTALIGN 0x012E EMR_SETTEXTALIGN 0x00000016 Setați alinierea orizontală și verticală (specificată folosind steaguri combinate prin SAU logic)
EMR_SETCOLORADJUSTMENT 0x00000017
META_SETTEXTCOLOR 0x0209 EMR_SETTEXTCOLOR 0x00000018 Setați culoarea textului (32 de biți RGB0)
META_SETBKCOLOR 0x0201 EMR_SETBKCOLOR 0x00000019 Setați culoarea de umplere (32 de biți RGB0)
META_OFFSETCLIPRGN 0x0220 EMR_OFFSETCLIPRGN 0x0000001A
META_MOVETO 0x0214 EMR_MOVETOEX 0x0000001B
META_EXCLUDECLIPRECT 0x0415 EMR_EXCLUDECLIPRECT 0x0000001D
META_INTERSECTCLIPRECT 0x0416 EMR_INTERSECTCLIPRECT 0x0000001E
META_SCALEVIEWPORTEXT 0x0412 EMR_SCALEVIEWPORTEXTEX 0x0000001F Întindeți dispozitivul de ieșire pe orizontală și pe verticală (sunt indicați doi factori fracționali, x și y, fiecare ca două numere întregi - numărătorul și numitorul fracției)
META_SCALEWINDOWEXT 0x0410 EMR_SCALEWINDOWEXTEX 0x00000020 Întindeți fereastra pe orizontală și pe verticală (sunt indicați doi factori fracționari, x și y, fiecare sub formă de două numere întregi - numărătorul și numitorul fracției)
META_RESTOREDC 0x0127 EMR_RESTOREDC 0x00000022 Restabiliți starea dispozitivului de ieșire la cea salvată anterior cu comanda SAVEDC
META_SELECTOBJECT 0x012D EMR_SELECTOBJECT 0x00000025
META_CREATEBRUSHINDIRECT 0x02FC EMR_CREATEBRUSHINDIRECT 0x00000027
META_DELETEOBJECT 0x01f0 EMR_DELETEOBJECT 0x00000028
EMR_ANGLEARC 0x00000029
META_ELLIPSE 0x0418 EMR_ELLIPSE 0x0000002A
META_RECTANGLE 0x041B EMR_RECTANGLE 0x0000002B
META_ROUNDRECT 0x061C EMR_ROUNDRECT 0x0000002C
META_ARC 0x0817 EMR_ARC 0x0000002D
META_CHORD 0x0830 EMR_CHORD 0x0000002E
META_PIE 0x081A EMR_PIE 0x0000002F
META_SELECTPALETTE 0x0234 EMR_SELECTPALETTE 0x00000030
META_CREATEPALETTE 0x00f7 EMR_CREATEPALETTE 0x00000031
META_SETPALENTRIES 0x0037 EMR_SETPALETTENTRIES 0x00000032 Setați paleta
META_RESIZEPALETTE 0x0139 EMR_RESIZEPALETTE 0x00000033
META_EXTFLOODFILL 0x0548 EMR_EXTFLOODFILL 0x00000035
META_LINETO 0x0213 EMR_LINETO 0x00000036
EMR_ARCTO 0x00000037
EMR_SETARCDIRECTION 0x00000039
EMR_SETMITERLIMIT 0x0000003A
EMR_STROKEPATH 0x00000040
EMR_COMMENT 0x00000046
META_FILLREGION 0x0228 EMR_FILLRGN 0x00000047
META_INVERTREGION 0x012A EMR_INVERTRGN 0x00000049 Inversați culorile într-o regiune definită prin unirea mai multor dreptunghiuri
META_PAINTREGION 0x012B EMR_PAINTRGN 0x0000004A
META_SELECTCLIPREGION 0x012C EMR_EXTSELECTCLIPRGN 0x0000004B
META_BITBLT 0x0922 EMR_BITBLT 0x0000004C
META_STRETCHBLT 0x0B23 EMR_STRETCHBLT 0x0000004D
META_SETDIBTODEV 0x0d33 EMR_SETDIBITSTODEVICE 0x00000050
META_DIBSTRETCHBLT 0x0b41 EMR_STRETCHDIBITS 0x00000051
META_CREATEFONTINDIRECT 0x02FB EMR_EXTCREATEFONTINDIRECTW 0x00000052
META_CREATEPENINDIRECT 0x02FA EMR_EXTCREATEPEN 0x0000005F
EMR_SETICMMODE 0x00000062
EMR_CREATECOLORSPACE 0x00000063
EMR_SETCOLORSPACE 0x00000064
EMR_DELETECOLORSPACE 0x00000065
EMR_GLSRECORD 0x00000066
EMR_GLSBOUNDEDRECORD 0x00000067
EMR_PIXELFORMAT 0x00000068
EMR_FORCEUFIMAPPING 0x0000006D
EMR_COLORCORRECTPALETTE 0x0000006F
EMR_SETICMPROFILEA 0x00000070
EMR_SETICMPROFILEW 0x00000071
META_SETLAYOUT 0x0149 EMR_SETLAYOUT 0x00000073 Setează direcția de afișare a textului și a imaginilor - de la stânga la dreapta sau de la dreapta la stânga (în acest din urmă caz, puteți specifica dacă doriți să afișați imaginile răsturnate de la stânga la dreapta)
EMR_GRADIENTFILL 0x00000076
EMR_SETLINKEDUFIS 0x00000077
META_SETTEXTJUSTIFICATION 0x020A EMR_SETTEXTJUSTIFICATION 0x00000078
META_REALIZEPALETTE 0x0035
META_SETRELABS 0x0105
META_SETTEXTCHAREXTRA 0x0108
META_DIBCREATEPATTERNBRUSH 0x0142
META_OFFSETVIEWPORTORG 0x0211
META_OFFSETWINDOWORG 0x020F
META_FLOODFILL 0x0419
META_FRAMEREGION 0x0429
META_ANIMATEPALETT 0x0436
META_TEXTOUT 0x0521
META_SETPIXEL 0x041F
META_PATBLT 0x061D
META_SAVEDC 0x001E Salvați starea dispozitivului de ieșire
META_ESCAPE 0x0626
META_DIBBITBLT 0x0940
META_EXTTEXTOUT 0x0a32
META_STRETCHDIB 0x0f43
META_CREATEPATTERNBRUSH 0x01F9
META_CREATEREGION 0x06FF

Link -uri