PNG file signature
Magic number at the start of the file · .PNG....
A PNG file begins with an eight-byte signature. The high bit is set on the first byte and the ASCII letters PNG follow, then a CRLF, a DOS end-of-file and a final LF that together detect corruption from text-mode transfers.
What this magic number means
A magic number is a short, fixed run of bytes at a known position that tells a program what a file really is, no matter what the filename says. If a file starts with the bytes 89 50 4E 47 0D 0A 1A 0A (the text .PNG....), it is a PNG file.
APNG (animated PNG) files are ordinary PNGs and share this exact signature; the animation lives in extra ancillary chunks, so the first bytes are identical.
Formats that use the 89 50 4E 47 signature
These file types in our database carry this signature:
How to check a file's signature
You can read the first bytes of any file yourself. The magic bytes are shown in hex, the same way this page lists them.
Linux & macOS
- xxd -l 16 example.png
- hexdump -C -n 16 example.png
- file example.png
Windows (PowerShell)
- Format-Hex -Path example.png -Count 16
Python
- open("example.png","rb").read(8).hex()
In your browser
- Drop the file into the WhatFileType identifier, which reads the signature without uploading it.
Frequently asked questions
What is the PNG file signature?
PNG files start with the hex bytes 89 50 4E 47 0D 0A 1A 0A (.PNG.... in ASCII). This magic number identifies the format regardless of the file's name or extension.
How do I check a file's magic number?
Open the file in a hex editor, or run a command such as xxd -l 16 example.png on Linux or macOS, or Format-Hex -Path example.png -Count 16 in Windows PowerShell, and read the first bytes.
Can a file fake the PNG signature?
Renaming a file does not change its bytes, so the extension can lie but the signature usually cannot. A genuine PNG file has these exact bytes; a file with the wrong bytes is not really PNG, whatever its name says.