我有一个文件"1"、"2"、"3"等的数据库[...]。它们应该使用"1.jpg"、"2.gif"、"3.png"下载,但此信息不可用。我的问题是我如何通过打开或读取文件并知道它实际上是一个".jpg"来获取信息,或者即使是保存为 3.jpg 的图像实际上是 GIF 文件。
我想编写脚本,以便我可以自动化并获得大约 20,000 张图像的数据集的正确扩展名,因此手动逐个检查不是这里的解决方案。
更具体地扩展Lattyware的答案:
幻数:
GIF87a 签名
十六进制:47 49 46 38 37 61
ASC: G..I..F..8..7..a.
GIF89a 签名
十六进制: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码,也作为以空结尾的字符串,后跟更多关于该文件的元数据。