我的屏幕快照照片无法打开,写为“似乎已损坏,损坏或太大”。在桌面上使用Windows照片查看器打开时。但是,我确实能够在游戏中看到我创建的纹理(来自getFullTexture()
函数)。任何人都可以帮忙。
我的代码如下:
public static Texture getFullTexture(){
if(Gdx.app.getGraphics().getGLVersion().isVersionEqualToOrHigher(2,0))
{
Texture texture = new Texture(Gdx.graphics.getWidth(), Gdx.graphics.getHeight(), Pixmap.Format.RGB888);
Gdx.gl.glEnable(GL20.GL_TEXTURE_2D);
Gdx.gl.glActiveTexture(GL20.GL_TEXTURE0);
texture.bind();
Gdx.gl.glCopyTexImage2D(GL20.GL_TEXTURE_2D, 0, GL20.GL_RGB, 0, 0,Constant.REAL_DEVICE_WIDTH, Constant.REAL_DEVICE_HEIGHT, 0);
Gdx.gl.glDisable(GL20.GL_TEXTURE_2D);
return texture;
}
}
public static void saveImage(Texture photoTexture){
try{
if (!photoTexture.getTextureData().isPrepared()) {
photoTexture.getTextureData().prepare();
}
Pixmap pixmap = photoTexture.getTextureData().consumePixmap();
FileHandle fh;
do{
fh = new FileHandle(Gdx.files.getExternalStoragePath() + "test.jpg");
}while (fh.exists());
PixmapIO.writePNG(fh, pixmap);
pixmap.dispose();
}catch (Exception e)
{
}
}
我尝试了其他纹理的saveImage()函数,没有错误。只有不适用于getFullTexture()函数的纹理。
我主要的代码用途:
ScreenShotFactory.saveImage(getFullTexture());