Linux下判断图片格式

Posted li_Jiejun

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux下判断图片格式相关的知识,希望对你有一定的参考价值。

背景

自己的blog有一些图片是转载的其他的blog的,有些blog的文章比较奇怪,没有后缀名!这种图片在电脑浏览器显示无压力,但是到了手机上往往无法显示。于是这一篇介绍linux下如何识别图片格式。下一篇介绍如何批量转换图片格式。

知识点

文件头

文件头是位于文件开头的一段承担一定任务的数据,一般都在开头的部分。

当文件都使用二进制流作为传输时,需要制定一套规范,用来区分该文件到底是什么类型的。 文件头有很多个,这里就介绍几个跟图片相关的文件头。

  • JPEG (jpg),文件头:FFD8FF
  • PNG (png),文件头:89504E47
  • GIF (gif),文件头:47494638
  • RAR Archive (rar),文件头:52617221
  • WebP : 524946462A73010057454250

写脚本

针对这些文件头,写了这个脚本进行判断:

#!/bin/bash

if [ $# != 1 ]; then
  echo "parameter error"
else
  len3=`xxd -p -l 3 $1`
  len4=`xxd -p -l 4 $1`

  if [ $len3 == "ffd8ff" ]; then
    echo "The type is jpg"
  elif [ $len4 == "89504e47" ]; then
    echo "The type is png"
  elif [ $len4 == "47494638" ]; then
    echo "The type is gif"
  elif [ $len4 == "52494646" ]; then
    echo "The type is webp"
  elif [ $len4 == "52617221" ]; then
    echo "The type is rar"
  else
    echo "The type is others"
    echo $len4
  fi

fi

运行后即可查看图片格式,例如:

./judgeImage.sh amadeus2.gif
The type is gif

以上是关于Linux下判断图片格式的主要内容,如果未能解决你的问题,请参考以下文章

Linux下判断图片格式

Linux下图片处理

使用JAVA如何对图片进行格式检查以及安全检查处理

javascript判断图片格式

在Linux命令行下发送html格式的邮件

Linux下GIF库移植与运用