我已经在这个网站上搜索了我的问题的确切答案,但似乎每个人对问题的根源都有不同的答案,但没有具体的解决方案。
我使用带有lwjgl的Slick-Util库,当我为我的基本形状加载纹理文件时,程序需要更长的时间才能开始(而不是在没有纹理加载的情况下瞬间完成),尽管事实上,我在屏幕上得到我的纹理,我在控制台中得到这个错误(这可以解释初始加载滞后)
Sat Mar 07 05:35:42 EST 2015 WARN:class org.newdawn.slick.opengl.PNGImageData failed to read the data
java.lang.UnsupportedOperationException: Unsupported format for this image
我加载文件的代码:
public int loadTexture(String fileName)
{
Texture texture = null;
try {
texture = TextureLoader.getTexture("PNG", new FileInputStream("res/" + fileName + ".png"));
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
int textureID = texture.getTextureID();
textures.add(textureID);
return textureID;
}
我使用普通的png文件,非隔行扫描,8位256 x 256,没有透明度。知道为什么我会收到这个错误,我怎么能阻止它,如果我可以使用除了slick-util之外的东西而不会给我这个错误?
有效的文件:
而不是:
答案 0 :(得分:1)
我找到了一种解决方案,因为我不得不使用常规颜料来绘制所有纹理:
尽管存在兼容性问题,但仍像往常一样在paint.net中创建图像。
全选并复制整个图像。
在常规绘画中打开一个新文档并将纹理粘贴到其中。
使用普通颜料保存图像作为.PNG,每个标记应该正常工作!
如果您的纹理已保存在使用slick utils引发错误的文件中,请将其打开并重复步骤2-4