按 Prt Scr 按钮在 LibGDX 中制作屏幕截图
Making a Screenshot in LibGDX by Pressing the Prt Scr Button
通过遵循 Stack Overflow 上的 this 解决方案,我得出了以下 Java class:
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 文件中。正是我想要的。
我的问题是是否有 'capture' 打印屏幕按钮的好方法。有我可以使用的打印屏幕键码吗?
看来LibGDX 你不能.
您检查键盘输入的方式是
Gdx.input.isKeyPressed(key)
其中 key
是 class Keys 的对象, 不包括 prtscr 按钮 。
此外 - Keys 对象是整数,所以我试图通过检查找出 prtsrc 的按钮代码是什么:
uiStage.addListener(new ClickListener()
{
@Override
public boolean keyDown(InputEvent event, int keycode)
{
System.out.println(keycode);
return true;
}
});
我的电脑上有 0。我已经通过打印
检查了 0 在 Keys class 中的内容
System.out.println(Input.Keys.toString(42));
结果是 Unknown
。老实说,我很惊讶,但 LibGDX 似乎不支持 PRINT_SCREEN 按钮。
可能有一种方法可以省略 LibGDX 机制并使用平台特定功能来检查 prtsrc 是否被点击(互联网上说它的 ASCII 码是 44)但是 LibGDX 本身的答案似乎是 - 没有办法做到。
通过遵循 Stack Overflow 上的 this 解决方案,我得出了以下 Java class:
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 文件中。正是我想要的。
我的问题是是否有 'capture' 打印屏幕按钮的好方法。有我可以使用的打印屏幕键码吗?
看来LibGDX 你不能.
您检查键盘输入的方式是
Gdx.input.isKeyPressed(key)
其中 key
是 class Keys 的对象, 不包括 prtscr 按钮 。
此外 - Keys 对象是整数,所以我试图通过检查找出 prtsrc 的按钮代码是什么:
uiStage.addListener(new ClickListener()
{
@Override
public boolean keyDown(InputEvent event, int keycode)
{
System.out.println(keycode);
return true;
}
});
我的电脑上有 0。我已经通过打印
检查了 0 在 Keys class 中的内容 System.out.println(Input.Keys.toString(42));
结果是 Unknown
。老实说,我很惊讶,但 LibGDX 似乎不支持 PRINT_SCREEN 按钮。
可能有一种方法可以省略 LibGDX 机制并使用平台特定功能来检查 prtsrc 是否被点击(互联网上说它的 ASCII 码是 44)但是 LibGDX 本身的答案似乎是 - 没有办法做到。