java - 如何检测 PNG 图像而不仅仅是 JPG 图像

标签 java file png jpeg detection

这段代码工作得很好,但它只检测 JPG 而不是 PNG

public String[] getImageFileList(String path_to_directory){
        File file = new File(path_to_directory);
        if(!file.exists())return null;
        String[] images = file.list(new FilenameFilter() {
              @Override
              public boolean accept(File current, String name) {
                boolean result;
                File file = new File(current, name);
                String mimeType = new MimetypesFileTypeMap().getContentType(file).split("/")[0];
                result = mimeType.equals("image");
                return result;
              }
            });
        return images;
    }

如何让它也检测 PNG 图像?

编辑:仔细检查时,“结果”将变为 JP​​G 的“图像”和 PNG 的“应用程序”。我猜 PNG 不是唯一具有该“应用程序”mimeType 的文件类型是否正确?

最佳答案

这个问题可以通过像这样在 MimetypesFileTypeMap 中定义你想要查找的文件类型来解决:

MimetypesFileTypeMap mtftp = new MimetypesFileTypeMap();
mtftp.addMimeTypes("image png jpg jpeg")

生成的功能代码变成了这样:

public String[] getImageFileList(String path_to_directory){
        File file = new File(path_to_directory);
        if(!file.exists())return null;
        String[] images = file.list(new FilenameFilter() {
              @Override
              public boolean accept(File current, String name) {
                boolean result;
                File file = new File(current, name);
                MimetypesFileTypeMap mftp = new MimetypesFileTypeMap();
                mftp.addMimeTypes("image png jpg jpeg");
                String mimeType = mftp.getContentType(file).split("/")[0];
                result = mimeType.equals("image");
                System.out.println(mimeType);
                return result;
              }
            });
        return images;
    }

关于java - 如何检测 PNG 图像而不仅仅是 JPG 图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29523215/

相关文章:

java - GraphQL,如何返回byte[]类型

java - 什么是NullPointerException,我该如何解决?

c - 你好。我正在尝试用 C 语言编写文件索引程序

.net - 在 PNG 中使用 block

php - 在 PHP 中通过 JPG 透明 PNG

java - jdk 1.8 String.equalsIgnoreCase 中的重复空检查

java - 使用java在elasticsearch查询中设置索引类型

file - ASP.Net MVC - 从 HttpPostedFileBase 读取文件而不保存

php - 高效读取大文本文件

python - 在python中将png图像转换为一个pdf