我正在创建一个MATLAB可执行应用程序。在MATLAB中创建可执行文件时,它们会为您提供添加启动画面的选项。我用普通图像,png和jpg尝试了这个。但我想使用动画图像,如加载GIF图像。因为我的程序需要一段时间来编译和执行,所以我希望用户知道它正在加载,因此它们不会完全退出。我试图将gif图像添加到我的启动画面,但它没有用。它只显示了一幅静止图像。有没有办法在我的可执行MATLAB应用程序中添加动画启动画面或gif。
答案 0 :(得分:0)
我认为你不能。但是你可以做的是在窗口中显示GIF并每x秒更新一次帧。这是一个例子
% Read in your GIF file. Don't forget to read in the colour map as it is
% required for display.
[I, map]=imread('http://i.imgur.com/K9CLvNm.gif','Frames','all');
% Create a figure to hold your splashscreen
hfig=figure;
set(hfig,'Menubar', 'none');
set(hfig,'name','Please wait. Loading...','numbertitle','off');
% Set a timer to dynamically update the plot every 0.1 sec
t=timer('TimerFcn', {@timerCallbackFcn, hfig, I, map},'ExecutionMode','FixedRate','Period',0.1);
% Start the timer
start(t);
% Do your stuff here
for j=1:10
pause(1);
end
% Clean-up
stop(t);
delete(t);
delete(hfig);
然后在名为timerCallbackFcn.m
的文件中创建计时器更新功能% This is the timer function to update the figure.
% Save as timerCallbackFcn.m
function timerCallbackFcn(hTimer, eventData, hfig, I, map)
figure(hfig);
% i is the frame index
persistent i;
if isempty(i), i=1; end
% display the i-th frame in the GIF
imshow(I(:,:,i),map);
% increment frame index i
i=i+1;
numframes=size(I,4);
if (i>numframes), i=1; end
end