微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

原文地址:https://www.jb51.cc/android/316386.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐