Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

How can I get the official IANA Image Media Type (if any) of a binary stream? I'd like to avoid trusting to file extensions and vague guesses when handling images. Preferably some command using common tools like ImageMagick's identify, or some programming language if necessary.

share|improve this question
up vote 5 down vote accepted

You could use the file command. It's available on most linux distributions by default, and you can get it for Windows via the GnuWin32 file package.

Call it with:

$ file --mime-type clock.png 
clock.png: image/png

Note that it's not 100% accurate - I don't think anything can be theoretically.

If you want to do that in code, there's libmagic that provides a C api. It can process either files or in-memory buffers. (file uses that on Linux.)

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.