12

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

显然,这会因格式而异(我对 TIFF 文件特别感兴趣),但是哪种程序有助于确定文件是哪种图像格式而无需通读整个文件?

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

4

4 回答 4

18

大多数图像文件格式在开始时都有唯一的字节。unixfile命令查看文件的开头以查看它包含什么类型的数据。请参阅有关文件magicdb.org中的幻数的 Wikipedia 文章。

于 2008-09-09T19:52:34.970 回答
5

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

位图将以Qk3

Jpeg 将以/9j/

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

等等。获取不同的图像类型并找出它们编码的内容并不难。只是要小心,因为有些魔法不止一种,所以你需要在你的 B64 '翻译代码'中说明它们。

于 2008-09-19T04:35:50.333 回答
0

在 * nixfile命令行上或读取文件的初始字节。大多数文件在前几个字节中都有一个唯一的标题。例如,TIFF 的标​​头看起来像这样:

0x00000000: 4949 2a00 0800 0000
有关 TIFF 文件格式的更多信息,特别是如果您想知道这些字节代表什么,请转到此处

于 2008-09-09T20:30:50.167 回答
0

TIFF 将以 II 或 MM(Intel 字节排序或 Motorolla)开头。
TIFF 6 规范可在此处下载,并不难遵循

于 2008-09-12T09:41:13.043 回答