zoukankan      html  css  js  c++  java
  • 推断图片格式

    Linux/Unix下系统推断文件类型并不根据文件名称,也即不会根据文件后缀来推断文件的类型。从网上下载了一个图片,没有后缀,希望可以正确推断出格式。以便于共享到其它平台,该怎么办呢?

    不同文件类型的文件头部信息不同,比較流行的图片的格式有jpg,png, gif等,以下列出jpg。png,gif文件头(16进制):

    JPEG (jpg)。文件头:FFD8FF

    PNG (png),文件头:89504E47

    GIF (gif),文件头:47494638

    有了文件头,推断文件就非常easy了.读取图片文件头部信息,之后进行比較就可以。

    有非常多已有的编辑器能够直接读取文件的二进制信息。以下使用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

    很多其它文章请前往小胖轩.
  • 相关阅读:
    springMVC+spring+mybatis整合(包括文件上传和下载)
    mybatis spring 框架整合
    Java AOP 注解配置与xml配置
    Java 实现分页功能
    Arcanist安装使用流程
    Swift 添加KVO
    swift 混编OC instanceType 标识的方法找不到
    Swift UIStackView代码使用
    Swift
    swift 相册PHAssetCollection,PHAsset
  • 原文地址:https://www.cnblogs.com/yfceshi/p/6867193.html
Copyright © 2011-2022 走看看