cocos2d-x3.0 VS 2.0 图片类型判断

2.0中判断一个图片的类型,是通过读取文件名后缀;

 if (std::string::npos != lowerCase.find(".png"))
                {
                    eImageFormat = CCImage::kFmtPng;
                }


```

3.0中判断居然是读取文件流,取前面的几个字符进行判断,我凌乱了,有谁知道这是为什么?
bool Image::isPng(const unsigned char * data, ssize_t dataLen)
{
    if (dataLen <= 8)
    {
        return false;
    }

    static const unsigned char PNG_SIGNATURE] = {0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a};

    return memcmp(PNG_SIGNATURE, data, sizeof(PNG_SIGNATURE)) == 0;
}


```