示例:
clear all;
clc;
set(gca,'nextplot','replacechildren','box','off','color','b','xgrid','on');
title('Get 20 frames of current window');
%%
for j=1:20
plot(fft(eye(j+16)));
axis([-1. 1. -1. 1.]);
frame(j)=getframe(gcf); % get the frame
end
writegif('test.gif',frame,0.1);
那么这个writegif函数如何写呢:
function res=writegif(name,frames,dt)
nframe = length(frames);
for i=1:nframe
[image,map] = frame2im(frames(i));
[im,map2] = rgb2ind(image,128);
if i==1
IMWRITE(im,map2,name,'GIF','WriteMode','overwrite','DelayTime',dt,'LoopCount',inf);
else
IMWRITE(im,map2,name,'WriteMode','append','DelayTime',dt); %,'LoopCount',inf);
end
end
参数中name, 是gif文件的名字,frames就是抓取的帧,dt为每帧间的间隔。
clear all;
clc;
set(gca,'nextplot','replacechildren','box','off','color','b','xgrid','on');
title('Get 20 frames of current window');
%%
for j=1:20
plot(fft(eye(j+16)));
axis([-1. 1. -1. 1.]);
frame(j)=getframe(gcf); % get the frame
end
writegif('test.gif',frame,0.1);
那么这个writegif函数如何写呢:
function res=writegif(name,frames,dt)
nframe = length(frames);
for i=1:nframe
[image,map] = frame2im(frames(i));
[im,map2] = rgb2ind(image,128);
if i==1
IMWRITE(im,map2,name,'GIF','WriteMode','overwrite','DelayTime',dt,'LoopCount',inf);
else
IMWRITE(im,map2,name,'WriteMode','append','DelayTime',dt); %,'LoopCount',inf);
end
end
参数中name, 是gif文件的名字,frames就是抓取的帧,dt为每帧间的间隔。

浙公网安备 33010602011771号