首先在 paraView中保存圖片序列。點擊file>save Animation,可以保存為tif, png, jpg等格式的圖片序列。可以規定保存的幀數,默認是每個timestep一幀。注:圖片很多的話最好建立一個新的文件夾。
其次把圖片序列轉換為視頻或者GIF,有兩種方式
第一種方式:利用OpenFOAM帶的第三方后處理工具
算例文件夾下終端鍵入
foamCreateVedio
具體用法可以用 foamCreateVedio -help 查看
參考OpenFOAM_user_guide
第二種方式:利用ubantu系統里的的convert
/usr/bin/convert -quality 90% frames*.png movie.gif
顯然-quality 90%表示視頻質量
其中frames是圖片序列名,*表示后面任意名稱,如frames.000.png
movie是生成的gif名字
參考自chalmers大學OpenFOAM課程ppt
https://pingpong.chalmers.se/public/pp/public_courses/course09769/published/1552579467657/resourceId/5227641/content/UploadedResources/paraFoamTutorial-3.pdf
=========補充,20.1.23=
第三種方式(推薦)
用matlab轉換
(這部分代碼是轉載的,忘記原作者是誰了)
MATLAB腳本如下
framesPath = 'E:\Works\MFix_results\fbtry\biomass_pyrolysis_2020_1_7\animeTrack70\animeTrack500\';%圖像序列所在路徑,同時要保證圖像大小相同
videoName = 'Track500.avi';%表示將要創建的視頻文件的名字
fps = 10; %幀率
startFrame = 1; %從哪一幀開始
endFrame = 500; %哪一幀結束
if(exist('videoName','file'))
delete videoName.avi
end
%生成視頻的參數設定
aviobj=VideoWriter(videoName); %創建一個avi視頻文件對象,開始時其為空
aviobj.FrameRate=fps;
open(aviobj);%Open file for writing video data
%讀入圖片
for i=startFrame:endFrame
fileName=sprintf('anime.%04d',i); %根據文件名而定 我這里文件名是0001.jpg 0002.jpg ....
frames=imread([framesPath,fileName,'.png']);
writeVideo(aviobj,frames);
end
close(aviobj);% 關閉創建視頻
