前面写了篇博客,多种方式判断一个文件是否为图片。在实际使用中发现方式二,没有兼容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 格式。
现在这个方法也没有完全,兼容所有格式的图片。这里我们就需要根据自己的需求自行补充了