Моя фотография со скриншота не может быть открыта, написано "кажется, что она повреждена, повреждена или слишком велика". при открытии с 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());