有没有一种方法来推断一个文件是什么图像格式,而无需阅读整个文件?

有没有一种很好的方式来查看图像的格式,而不必将整个文件读入内存?

很明显,这将从格式到格式(我对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?

下一篇: How to set up ASP.NET SQL Datasource to accept TVP