所以我使用LWJGL在Java中制作基本游戏。我在.jar中打包了一个.png文件,当它仍然在.jar中时显然不能用于纹理。我能想到从.jar中获取文件的唯一方法是创建一个Image对象。
我尝试过使用getResource,但我目前设置的方式是调用创建FileInputStream的路径(我使用PNGDecoder类来获取PNG的FileInputStream并直接创建LWJGL纹理) ,因此无法从.jar中读取.png。
有谁知道我如何让PNGDecoder感到高兴,或者有另一种方法将打包的.png转换为LWJGL纹理?
答案 0 :(得分:2)
PNGDecoder
可能接受任何InputStream
而不只是FileInputStream
。使用getClass().getResourceAsStream(...)
直接获取.jar中.png文件的InputStream
,而无需先将其解压缩。