首页 > 代码库 > 判断图片格式
判断图片格式
Linux/Unix下系统判断文件类型并不依据文件名,也即不会根据文件后缀来判断文件的类型。从网上下载了一个图片,没有后缀,希望能够正确判断出格式,以便于共享到其他平台,该怎么办呢?
不同文件类型的文件头部信息不同,比较流行的图片的格式有jpg,png, gif等,下面列出jpg,png,gif文件头(16进制):
JPEG (jpg),文件头:FFD8FF
PNG (png),文件头:89504E47
GIF (gif),文件头:47494638
有了文件头,判断文件就很容易了.读取图片文件头部信息,之后进行比较即可。有很多已有的编辑器可以直接读取文件的二进制信息,下面使用xxd进行二进制信息读取并判断:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | #!/bin/bash #judge image file type #判断是否只有一个参数 if [ $# != 1 ] then echo "parameter error" else ## 读取前3个字节与前4个字节对应的16进制 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" else echo "The type is others" fi fi |
更多文章请前往小胖轩.
判断图片格式
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。