Multiple “File Exchange” Animated GIF codes work for R2010a but not for R2011a

1 vue (au cours des 30 derniers jours)
Tim
Tim le 9 Juil 2012
All of the matlab figure to animated GIF codes on the matlab file exchange that I have tested so far will work for Matlab version 7.10.0.499 (R2010a) but not for Matlab version 7.12.0.635 (R2011a). Two examples are http://www.mathworks.com/matlabcentral/fileexchange/21944-animated-gif and http://www.mathworks.com/matlabcentral/fileexchange/21407-gifaddframe. I have the Image Processing Toolbox for the 2011 version but not the 2010 version. Any suggestions?
  4 commentaires
Walter Roberson
Walter Roberson le 9 Juil 2012
Hmmm, some kind of change in what happens when you snapshot, it sounds like.
There is a possibility that if you set the figure Renderer property to something else that the behavior might change. Also, if you are using the opengl renderer, try using "opengl software" to switch to software rendering.
Jan
Jan le 9 Juil 2012
Whenever you write something like "does not work" in the forum, more details are obligatory. Either the error message or a description of the difference between the results and your expectation is required, because it is impossible to guess such details.
@Walter: While I do not suffer from the term "urgent", it hurts me to read "it does not work". It's like: "Hey, I have a problem you could solve, but I do not tell it!".

Connectez-vous pour commenter.

Réponse acceptée

Tim
Tim le 9 Juil 2012
Thank you Walter Roberson! I added the line
set(h,'Renderer','zbuffer')
It fixed the problem for R2011

Plus de réponses (2)

Jan
Jan le 9 Juil 2012
Modifié(e) : Jan le 9 Juil 2012
You need a pause(0.02) before getframe.
A drawnow is not enough. With pause(0.01) there are still some dropouts, but less, while I did not observe any problem with 0.02 seconds on a Core2Duo Win7/64 even under high system load.
When this does not help, and there are some Matlab/Java/OS combinations which worked better, but not perfect, with pause(0.1), try this:
fig_Paperposmode = get(aFigH, 'PaperPositionMode');
fig_PaperOrient = get(aFigH, 'PaperOrientation');
fig_Invhardcopy = get(aFigH, 'InvertHardcopy');
set(aFigH, ...
'PaperPositionMode', 'auto', ...
'PaperOrientation', 'portrait', ...
'InvertHardcopy', 'off');
print(aFigH, '-dpng', '-r0', FileName);
% Restore properties of the original image:
set(aFigH, ...
'InvertHardcopy', fig_Invhardcopy, ...
'PaperPositionMode', fig_Paperposmode, ...
'PaperOrientation', fig_PaperOrient);

Oliver Woodford
Oliver Woodford le 12 Juil 2012
im2gif works fine in R2012a

Catégories

En savoir plus sur Animation dans Help Center et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by