当前位置: 首页 > 知识库问答 >
问题:

ImageReader通过. getFormatName()方法返回错误的格式

蓝飞
2023-03-14

我有问题返回jpg格式。当我的文件是jpg格式时,最终的格式是jpeg。我的方法:

public String getImageFormat(InputStream input) throws IOException {
    ImageInputStream stream = ImageIO.createImageInputStream(input);
    Iterator<ImageReader> iter = ImageIO.getImageReaders(stream);
    if (!iter.hasNext())
        return null;
    ImageReader reader = iter.next();
    ImageReadParam param = reader.getDefaultReadParam();
    reader.setInput(stream, true, true);
    try {
        reader.read(0, param);
        return reader.getFormatName();
    } finally {
        reader.dispose();
        stream.close();
    }
}

我想收到照片的实际格式,有没有人遇到过这样的情况,知道如何解决?

共有1个答案

贲文景
2023-03-14

正如评论已经指出的,格式名称没有错。实际格式实际上被称为“JPEG”,是“联合摄影专家组”的简称。原因. jpg.JPG通常用于文件扩展名,这是由于神秘的文件系统只允许3个字母的文件扩展名。

另一方面,如果您真正想知道的是文件扩展名,请使用file对象,并提取文件名中点后的部分。使用ImageIO对于这样的任务来说是一种过分的杀伤力。

File file = new File(...); 

String fileName = file.getName();
int index = fileName.lastIndexOf('.');

if (index >= 0) {
    return fileName.substring(index + 1);
}

// No period found
return null;
 类似资料:
  • 问题内容: 我正在尝试在SSJS中使用格式化数字,但返回错误。这是我的代码段。 这会传回错误 。所以我试图将数字解析为双精度或长整数,但仍然是相同的错误。 我创建了上述SSJS代码的Java实现,并且工作正常。 我有很多行SSJS代码(上面的代码片段是其中的一部分),为两行创建一个新的Java类似乎太费力了。有人知道为什么这在SSJS中不起作用吗? 问题答案: @Naveen:您是否尝试过下面的代

  • 问题内容: 我对Java没有太多的经验。我不确定这个问题是否很愚蠢,但是我需要从Firebase实时数据库中获取一个用户名,并通过此方法返回该名称。因此,我想出了如何获得该值,但是我不明白如何通过此方法返回它。最好的方法是什么? 问题答案: 这是异步Web API的经典问题。您现在无法返回尚未加载的内容。换句话说,您不能简单地创建一个全局变量并在onDataChange()方法外部使用它,因为它将

  • 本文向大家介绍django通过ajax发起请求返回JSON格式数据的方法,包括了django通过ajax发起请求返回JSON格式数据的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了django通过ajax发起请求返回JSON格式数据的方法。分享给大家供大家参考。具体实现方法如下: 这是后台处理的: 这是AJAX部分: URL的配置是: 希望本文所述对大家的Python程序设计有所帮助

  • 问题内容: 当我在Go中编写函数时,它应该返回一个值和一个错误,例如 我想在goroutine中执行此createHashedPassword,我想通过通道传递数据。 但是我的问题是,如何在此处或goroutine中处理错误? 问题答案: 通常将多个输出捆绑到一个结构中,然后通过一个通道将它们一起返回。

  • 当我用mockito模拟它并在以下情况下使用该方法时: 我得到了错误: 无法解析方法“then return(java.lang.String)” 但是上面返回的是可选的'<'object'>'和非可选的'<'string'>的实例。 为什么我不能直接返回一个可选的'<'string'>'实例呢?如果可以的话,我该怎么做呢?

  • 是否有一种方法可以将catch{}以序列化为JSON对象的方式从catch{}返回错误消息?我考虑向myObject添加一个List属性,并在其中存储错误。有没有更好的办法做到这一点?