如何判断无扩展名图像是 png 还是 jpeg



不久前,我保存了一些由Web服务生成的图像,因此文件名例如'ysauyft87ggsa67fgeg&w=1600'。我可以打开和操作这些图像,好吧,我只想知道它们的编码是什么(几乎可以肯定是 png 或 jpeg)。我尝试过在OSX中"获取信息",但它认为文件只是文本(即使它正确生成缩略图并且我可以在预览中查看图像)。如果我在服务器上提供图像,它们将作为"应用程序/八位字节流"交付。

如何通过外壳轻松确定它们是 png 还是 jpeg

的"魔术代码"

  • PNG 文件应以 89 50 4E 47 0D 0A 1A 0A 开头
  • JPEG 文件以 FFD8 开头,以 FFD9 结尾

三种方法:

  • 在十六进制编辑器(或只是二进制文件查看器)中打开文件。PNG 文件以"PNG"开头,.jpg文件应该在开头的某个地方有"exif"或"JFIF"。
  • 使用file命令:https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/file.1.html例如:file 'ysauyft87ggsa67fgeg&w=1600'
  • 使用像torazaburo在评论中写的identify file(imagemagick lib的一部分)

最新更新