android – LibGDX无法加载特定图像

我过去已成功加载了所有图像,并且我使用的是OpenGL ES 2.0,因此图像不需要是2的幂(我有几个成功加载但不是).

有问题的代码是这样的:

Line 96: splashSheet = new Texture(Gdx.files.internal("test.png"));

这是我的错误消息:

Exception in thread "LWJGL Application" com.badlogic.gdx.utils.GdxRuntimeException: com.badlogic.gdx.utils.GdxRuntimeException: Couldn't load file: test.png
    at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:111)
Caused by: com.badlogic.gdx.utils.GdxRuntimeException: Couldn't load file: test.png
    at com.badlogic.gdx.graphics.pixmap.<init>(pixmap.java:140)
    at com.badlogic.gdx.graphics.glutils.FileTextureData.prepare(FileTextureData.java:64)
    at com.badlogic.gdx.graphics.Texture.load(Texture.java:175)
    at com.badlogic.gdx.graphics.Texture.create(Texture.java:159)
    at com.badlogic.gdx.graphics.Texture.<init>(Texture.java:133)
    at com.badlogic.gdx.graphics.Texture.<init>(Texture.java:122)
    at com.panini.game.GameScreen.show(GameScreen.java:96)
    at com.badlogic.gdx.Game.setScreen(Game.java:59)
    at com.panini.game.Splash.render(Splash.java:29)
    at com.badlogic.gdx.Game.render(Game.java:46)
    at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:190)
    at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:108)
Caused by: java.io.IOException: Couldn't load pixmap
    at com.badlogic.gdx.graphics.g2d.Gdx2Dpixmap.<init>(Gdx2Dpixmap.java:57)
    at com.badlogic.gdx.graphics.pixmap.<init>(pixmap.java:138)
    ... 11 more

这就是使这成为一个有趣问题的原因.我可以加载this文件,但我无法加载this文件.前者基本上只是我想要使用的截图.
我提供的第二张图片(不起作用)是原版.它被称为splashSprites.png,但我已经尝试将其重命名为test.png并正确引用它但它仍然不起作用,所以我知道这绝对不是命名问题或任何事情.如果我将这两个文件分别放在名为test1.png和test2.png的assets或bin目录中,那么如果我要求加载test1.png则代码可以工作,但如果我要求加载test2.png则不行,所以这不是我我把文件放在错误的地方.这两个似乎是最有可能的候选人,但我已经排除了他们.

我尝试了其他的东西,比如重新导出第一张图片等等,但它从来没有用过(做了什么工作就是截图,这就是为什么我在这里).我的猜测是它可能与其中一个图像中的alpha有关(因为这实际上是唯一不同的两个 – 一个是alpha而另一个没有)但是这不太可能因为我能够加载其他一些有alpha的纹理.我真的很难过.

提前致谢.

解决方法

我找到了答案.显然LibGDX不支持16位png(这是正确的吗?)因为在使用OS X上的Preview将我的spritesheet转换为8位深度后,我发现问题消失了.

感谢P.T.有关升级LibGDX的建议,因为我收到以下错误消息:

Caused by: java.io.IOException: Couldn't load pixmap 8bit only

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...