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

如何从InputStream:Java读取ImageIO

丁茂
2023-03-14

我已经创建了可执行的jar文件(使用Eclipse),有一组图像(.png)文件要嵌入到jar中。因此,我添加了一个源文件夹,其中包含项目中/images文件夹中的所有图像。代码必须访问这些文件才能使用ImageIO创建缓冲区映像。读取(新文件(路径)

之前,要获取我使用的路径ClassName.class.getResources(/Image/test.png). toURI();

在执行jar时,它会抛出错误URI不是分层的

所以现在我正在使用ClassName.class.getResourceAsStream(/Image/test.png);

但是如何让ImageIO从Inputstream读取呢?我试过如下的演员阵容

InputStreamReader resourceBuff=ClassName.class.getResourceAsStream(/image/test.png);
ImageIO.read((ImageInputStream) new InputStreamReader(resourceBuff));

它抛出错误InputStreamReader不能强制转换到ImageInputStream


共有2个答案

农雅畅
2023-03-14

ImageIO类有一个实用程序方法来读取一个InputStream并创建一个BufferedImage

还有一种实用方法可以从InputStream创建ImageInputStream

裴展
2023-03-14

ImageIO。read()InputStream作为参数,因此将其强制转换为ImageInputStream没有任何意义。

其次,您不能将InputStreamReader对象转换为ImageInputStream,因为ImageInputStream与您想到的InputStreamReader无关。

而且getResourceAsStream()返回InputStream。所以你可以直接这样做。

InputStream resourceBuff = YourClass.class.getResourceAsStream(filepath);
BufferedImage bf = ImageIO.read(resourceBuff);
 类似资料:
  • 我无法找出是否可以在pom.xml文件中读取Spring的application.properties中的任何数据。 拜托,有人能帮我吗? 谢谢你。

  • 问题内容: 我已经创建了可执行的jar文件(使用Eclipse),在jar中包含一组图像(.png)文件。所以我添加了一个源文件夹,其中所有图像都位于项目的文件夹中。代码必须访问这些文件才能使用创建BufferedImage 较早前,为了获得我使用的路径 在执行jar时,它抛出错误 URI不是分层的 所以现在我正在使用 但是如何使ImageIO从Inputstream读取?我试过如下 抛出错误 I

  • 问题内容: 嗨,我习惯了SQL,但是我需要从HBase表读取数据。任何帮助都会很棒。一本书,或者只是一些示例代码,可以从表中读取。有人说使用扫描仪可以解决问题,但我不知道如何使用。 问题答案: 从网站:

  • 我创建了一个反向代理,如下所示: 并从main调用它: 它在客户端可以正常工作,但是我想阅读代理的响应,我怎么做?

  • 问题内容: 我需要在那一刻读取用户的心律。我尝试使用位于Wear项目主要活动中的此代码。 这段代码根本无法正常工作,给我一个错误消息: 如果我使用除心率传感器以外的任何其他功能,它都可以正常工作。 我在用: 具有Android API级别23的LG G4 LG Wear API等级23的LG Urbane手表(我知道有心律传感器) 谢谢您的帮助。 问题答案: 您在这个问题中看到了同样的问题。我们拥

  • 问题内容: 我知道如何读取字节,但是如何在Python中读取位? 我只需要从二进制文件中读取5位(而不是8位[1字节]) 有什么想法或方法吗? 问题答案: Python一次只能读取一个字节。您需要读完整的字节,然后从该字节中提取所需的值,例如 或者,如果您想要5个最低有效位,而不是5个最高有效位: 一些其他有用的位操作信息可以在这里找到:http : //wiki.python.org/moin/