Slick util 错误与 png [与解决方案]

Slick util error with png [with solution]

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

我将 Slick-Util 库与 lwjgl 一起使用,当我加载我的基本形状的纹理文件时,程序需要更长的时间才能启动(而不是在没有加载纹理的情况下立即启动),尽管事实上,我在屏幕上得到了我的纹理,我在控制台中得到了这个错误(这可以解释初始加载滞后)

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 以外的其他东西来避免出现该错误?

有效的文件:

还有一个没有:

我找到了解决必须使用普通油漆来绘制我所有纹理的烦恼的方法:

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

  2. Select 全部复制整个图像。

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

  4. 将使用常规绘画的图像保存为 .PNG 格式,一切正常!

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