与png一起滑动的util错误[与解决方案]

时间:2015-03-07 11:04:16

标签: java png textures lwjgl slick2d

我已经在这个网站上搜索了我的问题的确切答案,但似乎每个人对问题的根源都有不同的答案,但没有具体的解决方案。

我使用带有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之外的东西而不会给我这个错误?

有效的文件:

a file that works

而不是:

this one does not

1 个答案:

答案 0 :(得分:1)

我找到了一种解决方案,因为我不得不使用常规颜料来绘制所有纹理:

  1. 尽管存在兼容性问题,但仍像往常一样在paint.net中创建图像。

  2. 全选并复制整个图像。

  3. 在常规绘画中打开一个新文档并将纹理粘贴到其中。

  4. 使用普通颜料保存图像作为.PNG,每个标记应该正常工作!

  5. 如果您的纹理已保存在使用slick utils引发错误的文件中,请将其打开并重复步骤2-4