android是如何识别JEPG文件的

判断前面3个字节是什么,如果是FF D8 FF开始,就认为它是JEPG图片。

注意android不是根据后缀名来判断是什么文件的

//SkImageDecoder_libjpeg.cpp (externalskiasrcimages)
static bool is_jpeg(SkStream* stream) {
    //需要匹配的字节
    static const unsigned char gHeader[] = { 0xFF, 0xD8, 0xFF };
    static const size_t HEADER_SIZE = sizeof(gHeader);

    char buffer[HEADER_SIZE];
    //从数据源中读取3个字节
    size_t len = stream->read(buffer, HEADER_SIZE);

    if (len != HEADER_SIZE) {
        return false;   // can't read enough
    }
    //只有完全匹配才会认为是jpeg图片
    if (memcmp(buffer, gHeader, HEADER_SIZE)) {
        return false;
    }
    return true;
} 

 

你可能感兴趣的