已有一系列时序图片的基础上,可借助matlab制作gif图片,虽然比不上专业绘图制作的精良,好在比较方便。
假定时序图片的命名为:dens000000.tiff,dens000500,dens0010000,……
% 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;