美文网首页
几种图片文件格式的识别

几种图片文件格式的识别

作者: Little_Moon | 来源:发表于2017-11-13 19:07 被阅读97次

    一般手机常用到png,jpeg,gif几种文件格式。

    每种文件的格式都写在了文件的前几个字节中,具体如下:

    png:

    文件前16个字节是十六进制数:89 50 4E 47 0D 0A 1A 0A

    一般来说,只要识别第一个int值是0x89504E47即可判断是否png图片,当然还有是否有alpha的区别,只需要如下即可:

    reader.skip(25-4);

    intalpha = reader.getByte();

    // A RGB indexed PNG can also have transparency. Better safe than sorry!

    alpha >=3?alpha_png:no_alpha_png;

    至于原理可见:

    https://stackoverflow.com/questions/2057923/how-to-check-a-png-for-grayscale-alpha-color-type

    gif:

    gif相对简单点,前几个字符是gif87(/9)a,有两种标准,gif87a,gif89a,如果只是识别,只需识别前三个字节gif即可,即前三个字节等于0x474946。如果要用到gif89a的一些更高级的特性,可以识别第五个字节。

    jpg:

    jpg最简单,只需要识别前6个字节甚至前4个自己就够了,前6个字节是FFD8FF,一般识别FFD8就能确定是jpg了。

    相关文章

      网友评论

          本文标题:几种图片文件格式的识别

          本文链接:https://www.haomeiwen.com/subject/mxxtvxtx.html