Wat is het APM-bestandsformaat?
Een .apm-bestand is een Aldus Placeable Metafile - een vectorgrafisch formaat dat het standaard Windows Metafile (.WMF) uitbreidt met een 22-byte header, rond 1987 gecreëerd door Aldus Corporation voor de desktoppublishing-applicatie PageMaker. De belangrijkste toevoeging is een bounding box: vier 16-bit signed integers die de omvang van de afbeelding in logische eenheden declareren, plus een „inch”-veld dat de logische eenheden per inch specificeert. Hiermee konden PageMaker en andere DTP-tools een afbeelding op een gedefinieerd, voorspelbaar formaat op de pagina plaatsen - iets wat de gewone WMF-header niet kan uitdrukken.
Het bestand wordt geïdentificeerd door het 4-byte little-endian magic number 0x9AC6CDD7 (bytes D7 CD C6 9A) op offset 0. De 22-byte APM-header volgt, daarna een standaard 18-byte WMF-header, en ten slotte een stroom van 16-bit GDI-tekenopdrachten (lijnen, vullingen, tekst, ingesloten bitmaps) die eindigt met een EOF-record. Een 16-bit XOR-checksum in de APM-header dekt de voorafgaande 10 header-woorden.
In de praktijk gebruiken de meeste Placeable WMF-bestanden de extensie .wmf in plaats van .apm; de naam .apm is zeldzaam en vindt zijn oorsprong in de eigen conventie van PageMaker. GIMP, Inkscape, LibreOffice Draw en IrfanView detecteren de APM-header allemaal automatisch. Het formaat is sinds Windows NT 3.1 in 1993 opgevolgd door EMF (Enhanced Metafile).
Beveiliging & veiligheid
RISICO: MEDIUMHet parsen van APM/WMF heeft een beveiligingsverleden: de WMF-kwetsbaarheid uit 2005-2006 maakte misbruik van het SETABORTPROC-metafilerecord om code uit te voeren enkel door het renderen van een gemanipuleerd bestand. Gepatcht op alle ondersteunde Windows-versies. Normale APM-clipart uit een vertrouwd desktoppublishing-archief is veilig; wees voorzichtig met APM-bestanden van onbekende bronnen op niet-gepatchte systemen.
Formaatdetails
in een notendopProgramma's die APM-bestanden openen
Technische details
diepe specificaties| Bestandstype | Vectorafbeelding - Windows Metafile met een voorafgaande 22-byte Aldus Placeable-header |
| Codering | Binair, little-endian |
| Magic bytes | D7 CD C6 9A (DWORD 0x9AC6CDD7, little-endian) op offset 0 |
| APM-headergrootte | 22 bytes: magic (4B) + HWmf handle (2B) + bounding-box rechthoek (8B) + inch (2B) + gereserveerd (4B) + XOR-checksum (2B) |
| Checksum | 16-bit XOR van de 10 voorafgaande 16-bit woorden in de APM-header; geen checksum in de WMF-body |
| Coördinatenruimte | 16-bit signed (±32.767 logische eenheden per as); bounding box gedeclareerd in de APM-header |
| Kleurdiepte | Apparaatafhankelijk GDI RGB-palet; tot 24-bit in ingesloten DIBs; meestal 4-24 bpp |
| Indeling tekenrecords | 16-bit GDI-recordstroom (records van variabele lengte voor lijnen, vullingen, tekst, bitmaps), afgesloten door een EOF-record |
| Ingekapselde WMF-versie | Meestal WMF v3 (0x0300); zelden WMF v1 (0x0100) |
| Typische bestandsgrootte | 2 KB - 500 KB; groter wanneer de WMF bitmapafbeeldingen insluit |
| Opmerking over extensie | De .apm-extensie is zeldzaam; de meeste Placeable WMF-bestanden circuleren onder de .wmf-extensie. De naam APM is afkomstig van Aldus PageMaker. |
| Opvolgend formaat | EMF (Enhanced Metafile) - 32-bit GDI-recordstroom, Windows NT 3.1+ (1993) |
| Uitgebracht | 1987 (Aldus PageMaker 3.0 era; APM header added to WMF) |
| Laatste versie | MS-WMF specification (format frozen; superseded by EMF) |
| Open standaard | Ja · royaltyvrij |
| Specificatie | learn.microsoft.com |
APM conversies
Community V&A
gevraagd door gebruikersNog geen vragen - wees de eerste om iets te vragen over APM-bestanden.