有没有一种方法来推断一个文件是什么图像格式,而无需阅读整个文件?
有没有一种很好的方式来查看图像的格式,而不必将整个文件读入内存?
很明显,这将从格式到格式(我对TIFF文件特别感兴趣)有所不同,但是什么样的过程将有助于确定文件的图像格式是什么样的,而无需通读整个文件?
奖金 :如果图像是Base64编码的字符串,该怎么办? 任何可靠的方式来解码它之前推断它?
大多数图像文件格式在开始时都有唯一的字节。 unix file
命令查看file
的开头,以查看它包含的数据类型。 请参阅维基百科关于魔术数字和magicdb.org的文章。
当然有。 像其他人提到的一样,大多数图像都是以某种'魔术'开始的,它总是会翻译成某种Base64数据。 以下是几个例子:
位图将以Qk3
Jpeg将以/9j/
一个GIF将以R0l
开始(这是一个零作为第二个字符)。
等等。 拍摄不同的图像类型并找出它们编码的内容并不难。 只需要小心,因为有些人有不止一种魔法,所以你需要在你的B64'翻译代码'中解释它们。
任一file
上的* nix的命令行或读取文件的起始字节。 大多数文件在前几个字节中都带有一个唯一标题。 例如,TIFF的标题看起来像这样:
0x00000000: 4949 2a00 0800 0000有关TIFF文件格式的更多信息,如果您想知道这些字节代表的是什么,请转到此处。 链接地址: http://www.djcxy.com/p/46915.html
上一篇: Is there a way to infer what image format a file is, without reading the entire file?