来自二进制流的 IANA 图像格式字符串

l0b*_*0b0 4 file-format images

如何获得二进制流的官方IANA 图像媒体类型(如果有)?我想避免在处理图像时相信文件扩展名和模糊的猜测。最好使用一些常用工具(如 ImageMagick's )的命令identify,或者必要时使用一些编程语言。

Mat*_*Mat 5

你可以使用file命令。默认情况下,它在大多数 linux 发行版上可用,您可以通过GnuWin32 文件包在 Windows 上获得它。

调用它:

$ file --mime-type clock.png 
clock.png: image/png
Run Code Online (Sandbox Code Playgroud)

请注意,它不是 100% 准确的 - 我认为理论上不可能有任何事情。

如果你想在代码中做到这一点,那里libmagic提供了一个C api。它可以处理文件或内存缓冲区。(file在 Linux 上使用它。)