2

複数のビューを含む .png または .pdf スクリーンショット ファイルを作成する Paraview 用の Python スクリプトを作成しようとしています。ここで重要なのは、MULTIPLE VIEWS の部分です。わかりやすくするために、Paraview ディスプレイには 3 つの異なるウィンドウがあります。1 つは XZ 平面で表示されたモデルを表示し、もう 1 つは XY 平面で表示され、もう 1 つは YZ 平面で表示されます。Python スクリプトを使用して、これら 3 つのビューすべてを示す単一のファイルを作成しようとしています。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()

これに似たものを実行すると、ビューごとに 1 つずつ、3 つの個別の .png ファイルが生成されます。おそらくこれらは、Paraview が結合して完成品を作成する一時ファイルであることを意図しているのかもしれませんが、それらを結合する方法がわかりません。

誰もこの問題の経験がありますか? 私はインターネットとParaviewのドキュメントを精査しましたが、私が見つけることができる唯一の例は単一のビューしかありません. どんな助けでも大歓迎です。

Windows XP で Paraview 3.12.0 32 ビットを使用しています

4

2 に答える 2

2

私も同じ問題を抱えてる。回避策は、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")

これが役立つことを願っています。

于 2011-12-26T06:43:48.373 に答える