1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| function dispanimgif(opt,giffile,h)
if nargin == 1 && strcmpi(opt,'stop')
tim = timerfind('tag','tim_animgif');
stop(tim);
delete(tim);
return
end
infos = imfinfo(giffile,'gif');
I = imread(giffile,'gif','frames','all');
for m = 1:numel(infos);
RGB{m} = ind2rgb(I(:,:,m),[0 0 0 ; 1 1 1]);
end
set(h,'cdata',RGB{3});
DT = cumsum([infos.DelayTime]);
t = 0;
tim = timer('timerfcn',@timfcn,'period',0.01,'ExecutionMode','fixedRate', ...
'tag','tim_animgif');
start(tim)
function timfcn(obj,event)
t = t+1;
if t == DT(3)
t = 0;
elseif t>DT(2)
set(h,'cdata',RGB{3});
elseif t>DT(1)
set(h,'cdata',RGB{2});
else
set(h,'cdata',RGB{1});
end
end
end |
Partager