AMFM
application/x-font-adobe-metric
Magic Bytes
Offset: 0
53 74 61 72 74 46 6F 6E 74 4D 65 74 72 69 63 73
The Adobe Font Metrics (AMFM) format is a text-based specification developed by Adobe Systems to provide character layout data for PostScript fonts. It is utilized by desktop publishing software to determine glyph widths, kerning pairs, and bounding box dimensions without accessing the actual font program. As a legacy ASCII format, it is considered safe for parsing, although it has largely been superseded by modern OpenType and TrueType font specifications.
Validation Code
How to validate .amfm files in Python
Python
def is_amfm(file_path: str) -> bool:
"""Check if file is a valid AMFM by magic bytes."""
signature = bytes([0x53, 0x74, 0x61, 0x72, 0x74, 0x46, 0x6F, 0x6E, 0x74, 0x4D, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73])
with open(file_path, "rb") as f:
return f.read(16) == signature
How to validate .amfm files in Node.js
Node.js
function isAMFM(buffer: Buffer): boolean {
const signature = Buffer.from([0x53, 0x74, 0x61, 0x72, 0x74, 0x46, 0x6F, 0x6E, 0x74, 0x4D, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73]);
return buffer.subarray(0, 16).equals(signature);
}
Go
func IsAMFM(data []byte) bool {
signature := []byte{0x53, 0x74, 0x61, 0x72, 0x74, 0x46, 0x6F, 0x6E, 0x74, 0x4D, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73}
if len(data) < 16 {
return false
}
return bytes.Equal(data[:16], signature)
}
API Endpoint
GET
/api/v1/amfm
curl https://filesignature.org/api/v1/amfm