Windows Metafile

WMF (англ. Windows MetaFile) — універсальний формат векторних графічних файлів для додатків Windows. Використовується для збереження колекції векторних зображень Microsoft Clip Gallery. Формат був розроблений компанією Microsoft і є неодмінною частиною Windows, оскільки зберігає послідовність апаратно-незалежних функцій GDI (Graphical Device Interface), що виводять зображення безпосередньо на заданий графічний пристрій (екран, принтер тощо). WMF використовують для збереження образу вікна і його подальшого відновлення, а також при перенесенні інформації за допомогою буфера обміну (clipboard). Операційна система Windows дозволяє швидко і просто взаємодіяти із файлами у форматі, що може бути відкритим і за допомогою кросплатформених додатків GIMP (з попереднім растеризуванням) або Inkscape.

Windows Metafile
Розширення файлу: ..wmf, .wmz
MIME-тип: image/x-wmf
Розробник: Microsoft
Тип формату: векторна графіка
Розширений до: EMF
Enhanced Metafile
Розширення файлу: ..emf, .emz
MIME-тип: image/x-emf
Розробник: Microsoft
Тип формату: векторна графіка
Розширений з: WMF

Як формат векторної графіки WMF в тій чи іншій мірі підтримується і іншими потужнішими пакетами AutoCAD, LibreOffice, і може використовуватися для обміну даними між ними.

Структура файлу

Файли WMF та EMF складаються із переліку записів, кожен з яких є певною командою з набором аргументів. Формати записів WMF та EMF схожі, проте мають деякі відмінності:

  • В EMF додалися нові коди функцій
  • Коди функцій EMF змінилися порівняно із WMF
  • 16-бітні аргументи WMF стали 32-бітними у EMF
  • Деякі функції у EMF отримали нові аргументи

Перелік типів записів WMF та EMF

WMF-записКод WMF-записнEMF-записКод EMF-записуОпис
EMR_HEADER0x00000001Заголовок
EMR_POLYBEZIER0x00000002
EMR_POLYBEZIER160x00000055
META_POLYGON0x0324EMR_POLYGON0x00000003Намалювати замкнену криву
EMR_POLYGON160x00000056
META_POLYLINE0x0325EMR_POLYLINE0x00000004
EMR_POLYLINE160x00000057
EMR_POLYBEZIERTO0x00000005
EMR_POLYBEZIERTO160x00000058
META_POLYPOLYGON0x0538EMR_POLYPOLYGON0x00000008
EMR_POLYPOLYGON160x0000005B
META_SETWINDOWEXT0x020CEMR_SETWINDOWEXTEX0x00000009Встановити розміри вікна (ширину та висоту)
META_SETWINDOWORG0x020BEMR_SETWINDOWORGEX0x0000000AВстановити позицію лівого верхньго кута вікна (x та y)
META_SETVIEWPORTEXT0x020EEMR_SETVIEWPORTEXTEX0x0000000BВстановити розміри пристрою виводу (ширину та висоту)
META_SETVIEWPORTORG0x020DEMR_SETVIEWPORTORGEX0x0000000CВстановити позицію лівого верхнього кута пристрою виводу (x та y)
EMR_SETBRUSHORGEX0x0000000D
META_EOF0x0000EMR_EOF0x0000000EКінець файлу
EMR_SETPIXELV0x0000000F
META_SETMAPPERFLAGS0x0231EMR_SETMAPPERFLAGS0x00000010
META_SETMAPMODE0x0103EMR_SETMAPMODE0x00000011Задає режим перетворення логічних одиниць вимірювання вікна в одиниці вимірювання пристрою виводу
META_SETBKMODE0x0102EMR_SETBKMODE0x00000012Встановити режим заливки (0 - заливка вимкнена, 1 - заливка увімкнена)
META_SETPOLYFILLMODE0x0106EMR_SETPOLYFILLMODE0x00000013
META_SETROP20x0104EMR_SETROP20x00000014Встановити логічну операцію при малюванні (для накладання прозорого/інвертуючого зображення тощо)
META_SETSTRETCHBLTMODE0x0107EMR_SETSTRETCHBLTMODE0x00000015
META_SETTEXTALIGN0x012EEMR_SETTEXTALIGN0x00000016Встановити горизонтальне та вертикальне вирівнювання (задається за допомогою флагів, об'єднаних логічним І)
EMR_SETCOLORADJUSTMENT0x00000017
META_SETTEXTCOLOR0x0209EMR_SETTEXTCOLOR0x00000018Встановити колір тексту (32-бітний RGB0)
META_SETBKCOLOR0x0201EMR_SETBKCOLOR0x00000019Встановити колір заливки (32-бітний RGB0)
META_OFFSETCLIPRGN0x0220EMR_OFFSETCLIPRGN0x0000001A
META_MOVETO0x0214EMR_MOVETOEX0x0000001B
META_EXCLUDECLIPRECT0x0415EMR_EXCLUDECLIPRECT0x0000001D
META_INTERSECTCLIPRECT0x0416EMR_INTERSECTCLIPRECT0x0000001E
META_SCALEVIEWPORTEXT0x0412EMR_SCALEVIEWPORTEXTEX0x0000001FРозтягнути пристрій виводу за горизонталлю та вертикаллю (вказується два дробових множники, по осі x і по осі y, кожен у вигляді двох цілих чисел — чисельника та знаменника дробу)
META_SCALEWINDOWEXT0x0410EMR_SCALEWINDOWEXTEX 0x00000020Розтягнути вікно за горизонталлю та вертикаллю (вказується два дробових множники, по осі x і по осі y, кожен у вигляді двох цілих чисел — чисельника та знаменника дробу)
META_RESTOREDC0x0127EMR_RESTOREDC0x00000022Відновити стан пристрою виводу, попередньо збережений командою SAVEDC
META_SELECTOBJECT0x012DEMR_SELECTOBJECT0x00000025
META_CREATEBRUSHINDIRECT0x02FCEMR_CREATEBRUSHINDIRECT0x00000027
META_DELETEOBJECT0x01f0EMR_DELETEOBJECT0x00000028
EMR_ANGLEARC0x00000029
META_ELLIPSE0x0418EMR_ELLIPSE0x0000002A
META_RECTANGLE0x041BEMR_RECTANGLE0x0000002B
META_ROUNDRECT0x061CEMR_ROUNDRECT0x0000002C
META_ARC0x0817EMR_ARC0x0000002D
META_CHORD0x0830EMR_CHORD0x0000002E
META_PIE0x081AEMR_PIE0x0000002F
META_SELECTPALETTE0x0234EMR_SELECTPALETTE0x00000030
META_CREATEPALETTE0x00f7EMR_CREATEPALETTE0x00000031
META_SETPALENTRIES0x0037EMR_SETPALETTEENTRIES0x00000032Встановити палітру
META_RESIZEPALETTE0x0139EMR_RESIZEPALETTE0x00000033
META_EXTFLOODFILL0x0548EMR_EXTFLOODFILL0x00000035
META_LINETO0x0213EMR_LINETO0x00000036
EMR_ARCTO0x00000037
EMR_SETARCDIRECTION0x00000039
EMR_SETMITERLIMIT0x0000003A
EMR_STROKEPATH0x00000040
EMR_COMMENT0x00000046
META_FILLREGION0x0228EMR_FILLRGN0x00000047
META_INVERTREGION0x012AEMR_INVERTRGN0x00000049Інвертувати кольори в регіоні, що заданий об'єднанням множини прямокутників
META_PAINTREGION0x012BEMR_PAINTRGN0x0000004A
META_SELECTCLIPREGION0x012CEMR_EXTSELECTCLIPRGN0x0000004B
META_BITBLT0x0922EMR_BITBLT0x0000004C
META_STRETCHBLT0x0B23EMR_STRETCHBLT0x0000004D
META_SETDIBTODEV0x0d33EMR_SETDIBITSTODEVICE0x00000050
META_DIBSTRETCHBLT0x0b41EMR_STRETCHDIBITS0x00000051
META_CREATEFONTINDIRECT0x02FBEMR_EXTCREATEFONTINDIRECTW0x00000052
META_CREATEPENINDIRECT0x02FAEMR_EXTCREATEPEN0x0000005F
EMR_SETICMMODE0x00000062
EMR_CREATECOLORSPACE0x00000063
EMR_SETCOLORSPACE0x00000064
EMR_DELETECOLORSPACE0x00000065
EMR_GLSRECORD0x00000066
EMR_GLSBOUNDEDRECORD0x00000067
EMR_PIXELFORMAT0x00000068
EMR_FORCEUFIMAPPING0x0000006D
EMR_COLORCORRECTPALETTE0x0000006F
EMR_SETICMPROFILEA0x00000070
EMR_SETICMPROFILEW0x00000071
META_SETLAYOUT0x0149EMR_SETLAYOUT0x00000073Задає напрям виводу тексту та зображень - зліва-направо чі зправа-наліво (в останньому випадку можна вказати, чи потрібно виводити зображення переверненими зліва-направо)
EMR_GRADIENTFILL0x00000076
EMR_SETLINKEDUFIS0x00000077
META_SETTEXTJUSTIFICATION0x020AEMR_SETTEXTJUSTIFICATION0x00000078
META_REALIZEPALETTE0x0035
META_SETRELABS0x0105
META_SETTEXTCHAREXTRA0x0108
META_DIBCREATEPATTERNBRUSH0x0142
META_OFFSETVIEWPORTORG0x0211
META_OFFSETWINDOWORG0x020F
META_FLOODFILL0x0419
META_FRAMEREGION0x0429
META_ANIMATEPALETTE0x0436
META_TEXTOUT0x0521
META_SETPIXEL0x041F
META_PATBLT0x061D
META_SAVEDC0x001EЗберегти стан пристрою виводу
META_ESCAPE0x0626
META_DIBBITBLT0x0940
META_EXTTEXTOUT0x0a32
META_STRETCHDIB0x0f43
META_CREATEPATTERNBRUSH0x01F9
META_CREATEREGION0x06FF

Посилання

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.