我试过找到这个地方的答案,但到目前为止我没有运气。你看,我遇到了一个问题,我通过使用for循环将图像附加到单个gif中来生成gif文件。但过了一段时间,imwrite似乎停止实际将图像添加到gif文件中 - 它只是添加了空格。
因此,文件本身足够大(250MB),可以正确地拥有合适数量的图像,但是当我打开它并播放它时,一旦它超过某个点我只有白色图像。我非常确定它与for循环本身无关 - 我已经打印出它正在为每个循环迭代工作的图像文件,这是正确的。文件名都是正确的。
它似乎只是放弃了一定数量的图像,所以我的想法是,可能有一个最大数量?我有50多个框架要拼接在一起。
我正在处理的代码片段:
delay_time = 0;
% for each frequency, read in the iso-contour and stitch to the plots
% together to make a gif
for counter_frequency = freq_min:freq_inc:freq_max
im_in = imread(['2D FFT, ' num2str(counter_frequency, '%3.2f') ' GHz.png'], 'png');
[imind,cm] = rgb2ind(im_in,256);
disp([num2str(counter_frequency)]);
if counter_frequency == freq_min
imwrite(imind,cm,[directory.plot.iso_plots '\Iso-frequency Animation.gif'],'gif','DelayTime',delay_time,'LoopCount',inf);
else
imwrite(imind,cm,[directory.plot.iso_plots '\Iso-frequency Animation.gif'],'gif','DelayTime',delay_time,'WriteMode','append');
end;
end;
答案 0 :(得分:2)
解决了!毕竟我的代码没有任何问题 - 这是我用来查看gif的程序! Internet Explorer是一个坏主意。总是。不敢相信我忘记了!发现我用于编码的计算机有Chrome,出于好奇而在Chrome中打开它 - 这很好。
该死的,IE!