java-通过按Prt Scr按钮在LibGDX中制作屏幕截图
作者:互联网
通过在Stack Overflow上遵循this解决方案,我提出了以下Java类:
public final class Screenshot {
private static byte[] pixels;
private static Pixmap pixmap;
public static void take() {
pixels = ScreenUtils.getFrameBufferPixels(0, 0,
Gdx.graphics.getBackBufferWidth(),
Gdx.graphics.getBackBufferHeight(),
true);
pixmap = new Pixmap(Gdx.graphics.getBackBufferWidth(),
Gdx.graphics.getBackBufferHeight(),
Pixmap.Format.RGBA8888);
BufferUtils.copy(pixels, 0, pixmap.getPixels(), pixels.length);
PixmapIO.writePNG(Gdx.files.external("./screenshot_" + new Date().getTime() + ".png"), pixmap);
pixmap.dispose();
pixels = null;
}
}
调用Screenshot().take()将获取LibGDX渲染缓冲区并将其转储到PNG文件中.正是我想要的.
我的问题是,是否有一种“捕获”打印屏幕按钮的好方法.我可以使用打印屏幕的按键代码吗?
解决方法:
似乎在LibGDX中您不能.
您检查键盘输入的方式是
Gdx.input.isKeyPressed(key)
其中key是Keys类的对象,不包含prtscr按钮.
更重要的是-Keys对象是整数,因此我尝试通过检查来找出prtsrc的按钮代码:
uiStage.addListener(new ClickListener()
{
@Override
public boolean keyDown(InputEvent event, int keycode)
{
System.out.println(keycode);
return true;
}
});
我的电脑上有0我已经通过打印检查了Keys类中的0
System.out.println(Input.Keys.toString(42));
结果是未知.老实说,我很惊讶,但是LibGDX似乎不支持PRINT_SCREEN按钮.
可能有一种方法可以忽略LibGDX机制,并使用平台特定的功能来检查是否单击了prtsrc(互联网说它的ASCII码是44),但是LibGDX本身的答案似乎是-没有办法.
标签:printscreen,libgdx,java 来源: https://codeday.me/bug/20191119/2032842.html