在 Paraview 的 Python 脚本中,我可以在执行 SaveScreenshot() 时指定分辨率吗?

In Python script for Paraview, can I specify the resolution when I do a SaveScreenshot()?

在使用 ParaView 的图形用户界面时,我可以单击“文件”>“保存屏幕截图”来为我的作品创建一个 .png 文件。通过此过程,我可以指定我想要的任何分辨率。我想在 python 脚本中自动生成屏幕截图,但我没有看到指定分辨率的方法。这可能吗?我试过了

myRenderView.ViewSize = [1000, 1000]

有某种效果,但不是想要的效果。

查看 the source codeSaveScreenshot() 我看到创建了一个 servermanager.ParaViewPipelineController() 对象,然后调用了它的 WriteImage() 方法。我在想,也许这个 WriteImage() 方法的解析参数不是包装器参数的一部分,但我找不到该方法的定义。我还没有尝试 downloading/compiling 实际的 ParaView 源代码。我只是在网上搜索。

也许我应该直接使用 vtk 而不是尝试通过 ParaView 工作?

我认为 ViewSize 参数需要能够适应您的显示器的分辨率。

在你的脚本中试试这个:

renderView1.ViewSize = [400, 400]
SaveScreenshot('image.png', magnification=5, quality=100, view=renderView1)

这应该会产生您想要的图像尺寸。

您必须从您想要的分辨率中减去 [16, 38],然后设置 ViewSize 参数。要获得 1000 x 1000 像素的图像,请使用:

myRenderView.ViewSize = [984, 962]
SaveScreenshot('image.png', magnification=1, quality=100, view=myRenderView)

要获得 2000 x 2000 像素的图像,请使用:

myRenderView.ViewSize = [1984, 1962]
SaveScreenshot('image.png', magnification=1, quality=100, view=myRenderView)

或者,您可以像这样更改放大倍数

myRenderView.ViewSize = [984, 962]
SaveScreenshot('image.png', magnification=2, quality=100, view=myRenderView)

获取 2000 x 2000 像素的图像。此选择将更改方向轴的大小。