我有一些代码从文件中加载Texture
,但无法加载某些文件。代码:
// Note: this returns a valid path, and the file exists
//
FileHandle fh = Gdx.files.external(localPath);
Texture tempTexture = new Texture(fh, true);
对于大多数用户来说,这是有效的。但是,一个用户试图加载一些文件,并导致以下异常,我找不到搜索互联网:
Couldn't load file: Download/Resource/example.jpeg com.badlogic.gdx.utils.GdxRuntimeException: Couldn't load file: Download/Resource/example.jpeg
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:142)
at com.badlogic.gdx.graphics.Texture.<init>(Texture.java:133)
at com.badlogic.gdx.graphics.Texture.<init>(Texture.java:112)
at com.badlogic.gdx.graphics.Texture.<init>(Texture.java:108)
at com.enplug.digitalsignage.view.TextureHelper$1.run(TextureHelper.java:39)
at com.badlogic.gdx.backends.android.AndroidGraphics.onDrawFrame(AndroidGraphics.java:493)
at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1462)
at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1216)
Caused by: java.io.IOException: couldn't load pixmap bad component count
at com.badlogic.gdx.graphics.g2d.Gdx2DPixmap.<init>(Gdx2DPixmap.java:57)
at com.badlogic.gdx.graphics.Pixmap.<init>(Pixmap.java:138)
... 9 more
他们上传的11个文件中有3个文件正在运行,其余文件因此异常而失败(大多数用户根本没有这个问题)。
查看文件,我注意到以下不同的属性:
工作:dpi = 72,位深度= 24,颜色表示= sRGB
失败:dpi = 300,位深度= 32,颜色表示=未校准
我假设问题必须与Color表示仅基于Uncalibrated听起来是负面的想法。如果没有,问题与位深度有关,我可以通过向Pixmap.Format.RGBA8888
构造函数添加Texture
来解决这个问题。我对这种方法很谨慎,因为我无法承受打破24位深度图像。
java.io.IOException: couldn't load pixmap bad component count
的确切原因是什么?