javacv - 快速截图 - 如何获取图像

javacv - fast screenshot - how to get image

我刚刚找到了一个很好的 JavaCV 示例,它使用 FFmpegFrameGrabber 为 linux 制作屏幕截图代码,应该是 "fast":

try {
    int x = 0, y = 0, w = 1366, h = 768;
    FFmpegFrameGrabber grabber = new FFmpegFrameGrabber(":0.0+" + x + "," + y);
    grabber.setFormat("x11grab");
    grabber.setImageWidth(w);
    grabber.setImageHeight(h);
    grabber.start();
    CanvasFrame frame = new CanvasFrame("Screen Capture");

    frame.showImage(grabber.grabImage());

    frame.dispose();
    grabber.stop();
} catch (FrameGrabber.Exception ex) {
    ex.printStackTrace();
}

...无论如何我仍然不确定如何获取屏幕截图的图像以保存在文件中。我找不到任何相关的例子,所以我需要你的建议...

所以我的问题是如何获取屏幕截图图像以实现 IO?

看着 API of JavaCV, there is an abstract FrameConverter<F> class. The concrete implementation Java2DFrameConverter 看起来像你要找的东西。