知道文件是否是Java / Android中的图像

时间:2012-02-11 22:45:54

标签: java android image

给定一个文件路径,知道该文件是否是Java(Android)中的图像(任何类型)的最简单方法是什么?感谢

4 个答案:

答案 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)

有一些外部工具可以帮助您完成此任务。查看JMimeMagicJMagick。您也可以尝试使用ImageIO类来读取文件,但这可能代价高昂并且并非完全万无一失。

BufferedImage image = ImageIO.read(new FileInputStream(new File(..._)));

这个问题已被问过几次了。请参阅相同主题的其他主题:

Check if a file is an image

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");
}