How to detect font format from file magic bytes
- Step 1Drop your font file — Any size, any extension. The tool reads only the first 80 bytes via the File API — multi-GB files identify in milliseconds.
- Step 2Magic byte lookup — Bytes 0–3 are matched against the known font format magic values. TTF: 00 01 00 00. OTF: 4F 54 54 4F (OTTO). WOFF: 77 4F 46 46 (wOFF). WOFF2: 77 4F 46 32 (wOF2). TTC: 74 74 63 66 (ttcf).
- Step 3Read the result — The output JSON includes the detected format, the magic hex, a one-line description, table count or wrapped flavour, and a flag indicating whether the file extension matches the actual format.
Frequently asked questions
Why does my file extension differ from format?+
Common causes: a CMS that auto-renames uploads, a designer who renamed .otf to .ttf because their tool wanted .ttf, or a download manager that lost the extension. The format itself is determined by the bytes, not the name.
What's the difference between TTF and OTF magic?+
TTF magic 0x00010000 indicates TrueType outline glyphs (with hinting via fpgm/prep/cvt). OTF magic 'OTTO' indicates PostScript/CFF outline glyphs (more compact for some scripts but no hinting). Both are sfnt containers — the magic distinguishes the outline format.
Why do some files start with 'true' instead of 0x00010000?+
Apple's TrueType variant uses the magic 'true' (0x74727565) for legacy reasons. Functionally identical to 0x00010000 TTF. Modern tools accept both magics interchangeably.
Can a TTC contain WOFF2 fonts?+
No. TTC is a sfnt-level container — only uncompressed TrueType or OpenType faces. WOFF2 has no collection format; multi-face WOFF2 files don't exist.
Privacy first
Every JAD Font tool runs entirely in your browser using opentype.js and the wawoff2 WASM Brotli encoder. Your fonts never leave your device — verified by zero outbound network requests during processing.