2016-05-23 11 views
1

Ich erstelle eine MATLAB ausführbare Anwendung. Und wenn Sie eine ausführbare Datei in MATLAB erstellen, haben Sie die Möglichkeit, einen Begrüßungsbildschirm hinzuzufügen. Ich habe das mit normalen Bildern, png und jpg versucht. Aber ich wollte ein animiertes Bild verwenden, wie ein Lade-Gif-Bild. Da mein Programm eine Weile braucht, um zu kompilieren und auszuführen, möchte ich, dass der Benutzer weiß, dass er geladen wird, damit er nicht ganz oder nicht beendet wird. Ich habe versucht, meinem Begrüßungsbildschirm ein GIF-Bild hinzuzufügen, aber es hat nicht funktioniert. Es wurde nur ein Standbild angezeigt. Gibt es eine Möglichkeit, meiner ausführbaren MATLAB-Anwendung einen animierten Begrüßungsbildschirm oder ein gif hinzuzufügen?MATLAB animierte Splash-Screen mit gif

Antwort

0

Ich glaube nicht, dass Sie können. Aber Sie können das GIF in einem Fenster anzeigen und jedes Bild alle x Sekunden aktualisieren. Hier ist ein Beispiel

% 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); 

und dann die Timer-Update-Funktion in einer 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 
+0

ehrfürchtig genannt Datei erstellen. Vielen Dank – CyborgOverStack

Verwandte Themen