Pixmap坏组件计数

时间:2014-10-10 08:38:10

标签: java android libgdx

问题详情

我有一些代码从文件中加载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位深度图像。

问题

  1. 有谁知道java.io.IOException: couldn't load pixmap bad component count的确切原因是什么?
  2. 尝试加载允许我正确加载所有这些文件的文件时,我该怎么办?
  3. 如果需要在服务器上,我可以预处理文件,那么哪些图像细节可能会导致问题?

0 个答案:

没有答案