如何知道图像文件的类型

Add*_*dev 1 java png android jpeg

给定文件路径(没有扩展名)我想知道文件中的图像是JPEG还是PNG.

我该怎么做?

Doo*_*nob 8

尝试查找图像标题,有点像这样:

File file = /* (get your file) */;
byte[] data = new byte[2];
try {
    new FileInputStream(file).read(data);
} catch (Exception e) {
    // handle the error somehow!
}

if (data[0] == 0xFF && data[1] == 0xD8) {
    // jpeg
} else if (data[0] == 0x89 && data[1] == 0x50) {
    // png
} else {
    // error?
}
Run Code Online (Sandbox Code Playgroud)

JPEG标题始终是FFD8,并且PNG标题是89504E470D0A1E0A(我们只需要查看前两个字节以区分JPEG).