1、已有一系列时序图片的基础上,可借助matlab制作gif图片,虽然比不上专业绘图制作的精良,好在比较方便。
2、假定时序图片的命名为:dens000000.tiff,dens000500,dens0010000,……
3、效果展示
4、代码呈现
% make gif
clc;clear;
close all;
% fileneme for gif
prefix = \'dens\';
targetname = [ prefix \'.gif\' ];
% get information of the source file
file_info = dir( strcat( prefix, \'*.tiff\' ) );
file_num = length( file_info );
nameindex = zeros( 1, file_num );
for i = 1:file_num
temp = strsplit( file_info(i).name, \'.\' );
strformat = strcat( prefix, \'%d\' );
temp = sscanf( temp{1,1}, strformat );
nameindex(i) = temp;
end
nameindex = sort( nameindex );
% get the size of screen
set( 0, \'units\', \'pixels\' );
scnsize = get( 0, \'MonitorPosition\' );
% get the size of figure
img = imread( file_info(1).name );
% creat figure
figure( \'units\', \'pixels\', \'WindowStyle\', \'modal\', \'color\', \'w\' )
% set the figure position at the center of screen
startx = floor( 0.5 * ( scnsize(3) - size(img,2) ) );
starty = floor( 0.5 * ( scnsize(4) - size(img,1) ) );
width = size( img, 2 );
high = size( img, 1 );
set( gcf, \'position\', [ startx, starty, width, high ] );
% deal with the source file one by one
for i = 1:file_num
% read data
strformat = strcat( prefix, \'%06d.tiff\');
str = sprintf( strformat, nameindex(i) );
img = imread( str );
% open picture
imshow( img, \'border\', \'tight\', \'initialmagnification\', \'fit\' )
frame = getframe( gcf );
im = frame2im( frame );
[ I, map ] = rgb2ind( im, 1024 );
% close current figure
cla;
% write file
if i == 1
imwrite( I, map, targetname, \'gif\', \'Loopcount\', inf, \'DelayTime\', 0.05 );
else
imwrite( I, map, targetname, \'gif\', \'WriteMode\', \'append\', \'DelayTime\', 0.05 );
end
end
% close figure
close all;