Что такое формат файла APM?
Файл .apm - это Aldus Placeable Metafile, формат векторной графики, который расширяет стандартный Windows Metafile (.WMF) 22-байтным заголовком, созданным корпорацией Aldus для своего приложения настольной издательской системы PageMaker примерно в 1987 году. Ключевым дополнением является bounding box (ограничивающая рамка): четыре 16-битных целых числа со знаком, объявляющие границы изображения в логических единицах, плюс поле «дюйм», указывающее количество логических единиц на дюйм. Это позволило PageMaker и другим инструментам DTP размещать графику с определенным, предсказуемым размером на странице - то, что обычный заголовок WMF выразить не может.
Файл идентифицируется по 4-байтовому магическому числу 0x9AC6CDD7 (байты D7 CD C6 9A) с порядком от младшего к старшему (little-endian) по смещению 0. Далее следует 22-байтовый заголовок APM, затем стандартный 18-байтовый заголовок WMF и, наконец, поток 16-битных команд рисования GDI (линии, заливки, текст, встроенные растровые изображения), заканчивающийся записью EOF. 16-битная контрольная сумма XOR в заголовке APM охватывает предыдущие 10 слов заголовка.
На практике большинство файлов Placeable WMF используют расширение .wmf, а не .apm; имя .apm встречается редко и происходит из собственной конвенции PageMaker. GIMP, Inkscape, LibreOffice Draw и IrfanView автоматически обнаруживают заголовок APM. Формат был вытеснен EMF (Enhanced Metafile) с выходом Windows NT 3.1 в 1993 году.
Безопасность и защита
РИСК: MEDIUMПарсинг APM/WMF имеет историю проблем с безопасностью: уязвимость WMF 2005-2006 годов использовала запись метафайла SETABORTPROC для выполнения кода при простом рендеринге специально подготовленного файла. Исправлено во всех поддерживаемых версиях Windows. Обычный клипарт APM из доверенного архива безопасен; будьте осторожны с файлами APM из неизвестных источников на непропатченных системах.
Детали формата
в двух словахПрограммы, открывающие файлы APM
Технические подробности
глубокая спецификация| Тип файла | Векторное изображение - Windows Metafile с 22-байтным заголовком Aldus Placeable в начале |
| Кодировка | Бинарная, little-endian |
| Магические байты | D7 CD C6 9A (DWORD 0x9AC6CDD7, little-endian) по смещению 0 |
| Размер заголовка APM | 22 байта: magic (4B) + HWmf handle (2B) + bounding-box rectangle (8B) + inch (2B) + reserved (4B) + XOR checksum (2B) |
| Контрольная сумма | 16-битный XOR 10 предшествующих 16-битных слов в заголовке APM; в теле WMF контрольная сумма отсутствует |
| Координатное пространство | 16-битное со знаком (±32 767 логических единиц на ось); ограничивающая рамка объявлена в заголовке APM |
| Глубина цвета | Устройственно-зависимая палитра GDI RGB; до 24 бит во встроенных DIB; обычно 4-24 бит на пиксель |
| Формат записи рисования | Поток 16-битных записей GDI (записи переменной длины для линий, заливок, текста, растров), завершающийся записью EOF |
| Версия WMF внутри | Обычно WMF v3 (0x0300); редко WMF v1 (0x0100) |
| Типичный размер файла | 2 КБ - 500 КБ; больше, если WMF содержит встроенные растровые изображения |
| Примечание к расширению | Расширение .apm встречается редко; большинство файлов Placeable WMF распространяются с расширением .wmf. Название APM возникло в Aldus PageMaker. |
| Формат-преемник | EMF (Enhanced Metafile) - 32-битный поток записей GDI, Windows NT 3.1+ (1993) |
| Выпущен | 1987 (Aldus PageMaker 3.0 era; APM header added to WMF) |
| Последняя версия | MS-WMF specification (format frozen; superseded by EMF) |
| Открыть стандартное | Да · без роялти |
| Спецификация | learn.microsoft.com |
Конвертации APM
Вопросы и ответы сообщества
спрошено пользователямиВопросов пока нет - станьте первым, кто спросит о файлах APM.