gpt4 book ai didi

java - 如何使 ImageIO 从 InputStream :Java 读取

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:50:41 25 4
gpt4 key购买 nike

我已经创建了可执行 jar 文件(使用 Eclipse),jar 中包含一组图像 (.png) 文件。所以我在项目的 /images 文件夹中添加了一个包含所有图像的源文件夹。代码必须访问这些文件才能使用 ImageIO.read(new File(path);

创建 BufferedImage

早些时候,为了获取路径,我使用了 ClassName.class.getResource(/image/test.png).toURI();

在执行 jar 时,它抛出错误 URI is not hierarchical

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

但是如何让 ImageIO 从 Inputstream 中读取呢?我试过按如下方式转换

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

它抛出错误InputStreamReader cannot be cast to ImageInputStream

最佳答案

ImageIO.read()InputStream 作为参数,因此没有将其转换为 ImageInputStream 的意义。

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

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

InputStream resourceBuff = YourClass.class.getResourceAsStream(filepath);
BufferedImage bf = ImageIO.read(resourceBuff);

关于java - 如何使 ImageIO 从 InputStream :Java 读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24824353/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com