无头模式下的GC#copyArea

问题描述 投票:3回答:1

我已经创建了一个控件来显示图像,并测试它我创建了控件的“屏幕截图”,并将它们与我期望它们进行比较。 Sreenshots是这样创建的:

protected Image createScreenshot(Control control) {
    final GC gc = new GC(control);
    try {
        final Point size = control.getSize();
        final Image result = new Image(control.getDisplay(), size.x, size.y);
        gc.copyArea(result, 0, 0);
        return result;
    } finally {
        gc.dispose();
    }
}

从IDE启动时它可以很好地工作,但是当从CI服务器以无头模式启动时,图像不会呈现。我尝试拍摄周围的Shell照片,但Shell的截图也是白色图像。

我尝试了以下方法来尝试使屏幕截图工作:

    Control#redraw();
    Control#update();

他们没有工作。

有没有办法在无头模式下渲染控件?

swt
1个回答
0
投票

我怀疑控件没有画在屏幕上,这就是你看到空白图像的原因。

我认为你的问题类似于:https://www.eclipse.org/forums/index.php/t/162790/

为了解决这个问题,你应该点击这个链接:https://wiki.eclipse.org/SWTBot/CI_Server

祝好运

© www.soinside.com 2019 - 2024. All rights reserved.