我有一个文件“1”、“2”、“3”等[...]的数据库。它们应该与“1.jpg”、“2.gif”、“3.png”一起下载,但此信息不可用。我的问题是如何通过打开或读取文件并知道它实际上是“.jpg”或者即使保存为 3.jpg 的图像实际上是 GIF 文件来获取信息。
我想为此编写脚本,以便我可以自动化并为大约 20 000 张图像的数据集获取正确的扩展名,因此手动逐一检查不是这里的解决方案。
要更具体地扩展 Lattyware 的答案:
魔术数字:
GIF87a 签名
HEX:47 49 46 38 37 61
ASC:G..I..F..8..7..a.
GIF89a 签名
HEX:47 49 46 38 39 61
ASC:G..I..F..8..9..a.
JPEG 签名有一对。引用维基百科
JPEG 图像文件以 . 开头
FF D8
和结尾FF D9
。JPEG/JFIF 文件包含“JFIF” (4A 46 49 46
) 的 ASCII 代码作为以空字符结尾的字符串。JPEG/Exif 文件包含“Exif” (45 78 69 66
) 的 ASCII 代码,也作为空终止字符串,后跟有关文件的更多元数据。