有没有办法推断文件的图像格式,而不读取整个文件?

Tom*_*idd 11 tiff image

是否有一种很好的方法可以查看图像的格式,而无需将整个文件读入内存?

显然这会因格式而异(我对TIFF文件特别感兴趣)但是什么样的过程对于确定文件的图像格式是有用的而无需读取整个文件?

奖励:如果图像是Base64编码的字符串怎么办?在解码前推断它的任何可靠方法?

Gre*_*ill 17

大多数图像文件格式在开始时都具有唯一的字节.unix file命令查看文件的开头以查看它包含的数据类型.请参阅维基百科关于文件magicdb.org中的幻数的文章.

  • 除了最后有魔术数字的Targa,以及一些与TIFF完全无法区分的RAW,除了它们不解码(反之亦然). (2认同)

Lar*_*ryF 5

当然有。就像其他人提到的那样,大多数图像都以某种“魔术”开头,这将始终转化为某种 Base64 数据。以下是几个例子:

位图将以 Qk3

Jpeg 将以 /9j/

GIF 将以R0l(第二个字符为零)开头。

等等。获取不同的图像类型并找出它们编码的内容并不难。请小心,因为有些具有不止一种魔法,因此您需要在您的 B64“翻译代码”中考虑到它们。