Best way to export image / animation from GUI, including colorbar
11 ビュー (過去 30 日間)
古いコメントを表示
Hi, am am trying to export a graphics file from a uifigure. The plot has several layers and elements, and also features a colorbar outside of the axes. I tried getframe(gcf) and getframe(gca), both are not suitable (one does not include the colorbar, the other does include the whole uifigure, see attachments).
In the past, I was copying all elements from the uifigure to a new, invisible figure using copyobj, then using getframe(gca) to get a clean image that includes the colorbar. But this involves a lot of extra code to deal with all the details, and this is prone to errors I think.
I wonder if there are good ways to achieve this?
My GUI does not only display still images, but also image sequences. Hence, I additionally want to write videofiles directly from this Matlab GUI. So I think exportfig is not really an option?
Thanks for your input!
2 件のコメント
Mario Malic
2023 年 11 月 13 日
I would suggest to output an image, open it and remove the portion which you don't want to be in the picture. By this, I mean to "crop" the part you want to save.
回答 (1 件)
William Thielicke
2023 年 11 月 13 日
2 件のコメント
Viktor Janzen
2024 年 4 月 9 日
I have a similar problem. Because I am offering my uifigure within a webapp, it is not possible to open a second figure (visible or hidden), beacuse Web Apps do not support multi-window application.
I had a solution with getframe. But the big problem with getframe is that it makes a snapshot from the whle uiffigure, considering also all hidden UI components and then reduces the frame to the axes, which is the input argument. For my animation it takes about 4 seconds per frame.
I tested with deleting many hidden UI components. Then it takes half of the time.
You can also put the uifigure as input argument. Then a video from the whole app is made.
参考
カテゴリ
Help Center および File Exchange で Migrate GUIDE Apps についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!