如何使ImageIO从InputStream读取:Java
我已经创建了可执行的jar文件(使用Eclipse),在jar中包含一组图像(.png)文件。所以我添加了一个源文件夹,其中所有图像都位于/images
项目的文件夹中。代码必须访问这些文件才能使用创建BufferedImageImageIO.read(new
File(path);
较早前,为了获得我使用的路径 ClassName.class.getResource(/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
回答:
ImageIO.read()
接受InputStream
作为参数,因此没有将其强制转换为的含义ImageInputStream
。
其次,您不能将InputStreamReader
对象投射到对象上,ImageInputStream
因为ImageInputStream
与InputStreamReader
您所考虑的对象无关。
而且getResourceAsStream()
回报InputStream
。因此,您可以直接这样做。
InputStream resourceBuff = YourClass.class.getResourceAsStream(filepath);BufferedImage bf = ImageIO.read(resourceBuff);
以上是 如何使ImageIO从InputStream读取:Java 的全部内容, 来源链接: utcz.com/qa/422062.html