从Python脚本创建多视图Paraview屏幕截图

2024-10-01 11:33:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试为Paraview编写一个Python脚本,它将创建一个包含多个视图的.png或.pdf屏幕截图文件。这里的重点是多视图部分。在一个平面上,我在一个平面上显示了一个不同的平面。我尝试使用python脚本创建一个显示所有这三个视图的文件。这可以通过单击File->Save Screenshot然后取消选中Save only selected view按钮来手动完成。我需要做几百次,所以很明显,一个脚本是最好的方法。在

我尝试过使用“Start trace”选项来查看此操作是如何工作的,但它生成的代码似乎不完整:

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文档,但我能找到的唯一示例只有一个视图。任何帮助都将不胜感激。在

我在WindowsXP上使用32位Paraview 3.12.0


Tags: 文件脚本view视图pngsavesimple平面
2条回答

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

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

您也可以使用工具|开始跟踪并尝试保存屏幕截图以获取要使用的命令。在

我也有同样的问题。解决方法是使用convert命令。以下是示例脚本:

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")

我希望这会有帮助。在

相关问题 更多 >