有没有一种好的方法可以查看图像的格式,而不必将整个文件读入内存中?
显然,这会因格式而异(我特别关注TIFF文件),但是有什么有用的程序可以确定文件是何种图像格式,而无需完全读取文件内容吗?
奖励问题:如果图像是一个Base64编码的字符串,有没有可靠的方法在解码之前推断出它的格式?
大多数图像文件格式在开头都有独特的字节。Unix file
命令会查看文件开头来确定它包含的数据类型。请参阅维基百科上关于文件中的魔法数字和magicdb.org。
Qk3
开头。/9j/
开头。R0l
开头(第二个字符是零)。在*nix命令行上使用file
或读取文件的初始字节。大多数文件在前几个字节中都带有唯一的头部。例如,TIFF的头部看起来像这样:
0x00000000: 4949 2a00 0800 0000如果您想了解这些字节代表什么,可以在此处获取有关TIFF文件格式的更多信息。