2

我正在尝试为 Paraview 编写一个 Python 脚本,该脚本将创建一个包含多个视图的 .png 或 .pdf 屏幕截图文件。这里的重点是 MULTIPLE VIEWS 部分。需要明确的是,我的 Paraview 显示中有三个不同的窗口:一个显示在 XZ 平面中查看的模型,一个在 XY 平面中,一个在 YZ 平面中。我正在尝试使用 python 脚本来创建一个显示所有这三个视图的文件。这可以通过单击File->Save Screenshot然后取消选中Save only selected view按钮来手动完成。我需要这样做几百次,所以很明显脚本是要走的路。

我尝试使用“开始跟踪”选项来查看此操作的工作原理,但它生成的代码似乎不完整:

try: paraview.simple
except: from paraview.simple import *
paraview.simple._DisableFirstRenderCameraReset()

RenderView1 = GetRenderView()
RenderView2 = GetRenderViews()[1]
RenderView3 = GetRenderViews()[2]
WriteImage(r'E:\TestFolder\TestFile_00.png', view=RenderView1)
WriteImage(r'E:\TestFolder\TestFile_01.png', view=RenderView2)
WriteImage(r'E:\TestFolder\TestFile_02.png', view=RenderView3)


Render()

当我运行类似的东西时,它只会生成三个单独的 .png 文件,每个视图一个。也许这些是 Paraview 组合以制作成品的临时文件,但我不知道如何组合它们。

有没有人有这个问题的经验?我搜索了互联网和 Paraview 文档,但我能找到的唯一示例只有一个视图。任何帮助将非常感激。

我在 Windows XP 上使用 Paraview 3.12.0 32 位

4

2 回答 2

4

从 ParaView 4.2 开始,这将直接支持如下:

# Get the layout/tab for the active view.
aLayout = GetLayout()
SaveScreenshot("AllViewsImage.png", layout=aLayout)

您还可以使用工具| 启动 Trace并尝试保存屏幕截图以获取要使用的命令。

于 2014-08-28T03:19:41.077 回答
2

我也有同样的问题。解决方法是使用转换命令。这是示例脚本:

for i in range(len(GetRenderViews())) :                                                                                                                                        
    RenderView = GetRenderViews()[i]                                                                                                                                           
    WriteImage("tmp_"+str(i)+".png",view=RenderView)                                                                                                                           
commands.getoutput("convert -border 1x1 -append tmp_*.png tmp.png")

我希望这将有所帮助。

于 2011-12-26T06:43:48.373 回答