前面写了篇博客,多种方式判断一个文件是否为图片。在实际使用中发现方式二,没有兼容exif 格式的图片。这里补正一下。
前一篇博客地址:http://blog.csdn.net/jiangzeyin_/article/details/74972661
public static String getImageType(File srcFilePath) {
FileInputStream imgFile;
byte[] b = new byte[10];
int len;
try {
imgFile = new FileInputStream(srcFilePath);
len = imgFile.read(b);
imgFile.close();
} catch (Exception e) {
return null;
}
if (len != b.length) {
return null;
}
byte b0 = b[0];
byte b1 = b[1];
byte b2 = b[2];
byte b3 = b[3];
byte b6 = b[6];
byte b7 = b[7];
byte b8 = b[8];
byte b9 = b[9];
if (b0 == (byte) 'G' && b1 == (byte) 'I' && b2 == (byte) 'F') {
return "gif";
}
if (b1 == (byte) 'P' && b2 == (byte) 'N' && b3 == (byte) 'G') {
return "png";
}
if (b6 == (byte) 'J' && b7 == (byte) 'F' && b8 == (byte) 'I' && b9 == (byte) 'F') {
return "jpg";
}
if (b6 == (byte) 'E' && b7 == (byte) 'x' && b8 == (byte) 'i' && b9 == (byte) 'f') {
return "exif";
}
return null;
}
其实从方式二中,可以发现方式三也同理没有兼容exif 格式。
现在这个方法也没有完全,兼容所有格式的图片。这里我们就需要根据自己的需求自行补充了