转换为AVI的代码(MATLAB)
framesPath = 'E:\study\biomass\MFiX_Cases\DEMPIC\Analysis postprocess\PRJ DEMPIC_0619_HTandRe\DEMPIC_DEM_0619_SBR1\post\anime\';%图像序列所在路径,同时要保证图像大小相同
videoName = 'E:\study\biomass\MFiX_Cases\DEMPIC\Analysis postprocess\PRJ DEMPIC_0619_HTandRe\DEMPIC_DEM_0619_SBR1\post\anime\moi.avi';%表示将要创建的视频文件的名字
fps = 20; %帧率
startFrame = 0; %从哪一帧开始
endFrame = 99; %哪一帧结束
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);% 关闭创建视频
转换为GIF的代码(MATLAB)
%% 把图片序列转换为GIF
clear;clc;
dir='E:\animations\mesh5DEM_GasVel\';%图片所在文件夹,注意别忘了最后的\
framesPath = dir;%图像序列所在路径,同时要保证图像大小相同
gifName =[dir,'GIF.gif'];%默认GIF文件名为GIF.gif,位置为图片序列所在位置
fps = 20; %帧率
startFrame = 0; %从哪一帧开始
endFrame = 99; %哪一帧结束
%% 保存为GIF格式
for i = startFrame:endFrame
%%
% 绘制图像或者读取图像
picName=sprintf('anime.%04d',i); %根据文件名而定 我这里文件名是0001.jpg 0002.jpg ....
im=imread([framesPath,picName,'.png']);
%%
% 写入gif过程
[A,map] = rgb2ind(im,256); % 将RGB图像转换为索引图像
if i == startFrame
imwrite(A,map,gifName,'gif','LoopCount',Inf,'DelayTime',1.0/fps); % DelayTime表示写入的时间间隔
else
imwrite(A,map,gifName,'gif','WriteMode','append','DelayTime',1.0/fps);
end
end