给定一个文件路径,知道该文件是否是Java(Android)中的图像(任何类型)的最简单方法是什么?感谢
答案 0 :(得分:16)
public static boolean isImage(File file) {
if (file == null || !file.exists()) {
return false;
}
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
BitmapFactory.decodeFile(file.getPath(), options);
return options.outWidth != -1 && options.outHeight != -1;
}
答案 1 :(得分:2)
有一些外部工具可以帮助您完成此任务。查看JMimeMagic和JMagick。您也可以尝试使用ImageIO
类来读取文件,但这可能代价高昂并且并非完全万无一失。
BufferedImage image = ImageIO.read(new FileInputStream(new File(..._)));
这个问题已被问过几次了。请参阅相同主题的其他主题:
How to check a uploaded file whether it is a image or other file?
答案 2 :(得分:1)
您可以尝试使用此代码进行更准确的检查。
changes
答案 3 :(得分:-1)
尝试此代码段
public static boolean isViewableImage(String name) {
String suffix = name.substring(name.lastIndexOf('.') + 1).toLowerCase();
if (suffix.length() == 0)
return false;
if (suffix.equals("svg"))
// don't support svg preview
return false;
String mime = MimeTypeMap.getSingleton().getMimeTypeFromExtension(suffix);
if (mime == null)
return false;
return mime.contains("image");
}