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

Add*_*dev 5 java android image

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

dan*_*nik 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;
}
Run Code Online (Sandbox Code Playgroud)


Per*_*ion 2

有一些外部工具可以帮助您做到这一点。查看JMimeMagicJMagick。您还可以尝试使用该类读取文件ImageIO,但这可能成本高昂,而且并不完全万无一失。

BufferedImage image = ImageIO.read(new FileInputStream(new File(..._)));
Run Code Online (Sandbox Code Playgroud)

这个问题已经被问过几次了。请参阅有关同一主题的其他线程:

检查文件是否是图像

如何判断上传的文件是图片还是其他文件?