matlab getframe of single GUI panel

I would like to create a png of a single panel placed in a matlab-gui, created with 'guide'. However I am able to save a screenshot of the whole GUI via
frame = getframe(specificGUIHandle); % tag of GUI-figure
imwrite(frame.cdata, 'wholeGUI.png');
But I would like to use
frame = getframe(specificPanelHandle); % tag of panel within GUI-figure
imwrite(frame.cdata, 'panel.png');
Obviously this does not work. I would like to receive a .png which simply contains a screenshot of wholeGUI.png where the panel is located. I AM able to receive the coordinates where the panel is located with
pos = getpixelposition(specificGUIHandle);
But I do not know how to use those informations...any ideas? Thanks in Advance!

 Accepted Answer

The official solution for these kinds of things is to create a new figure and copyobj the panel into the new figure and then capture the new figure.
I know that export_fig uses that strategy for some operations; I do not recall at the moment whether it handles your particular case directly; if not then I am sure Yair would consider that as an enhancement.

1 Comment

Thanks a lot and sorry for the late response. I kinda figured this out couple days after and forgot to close this issue.

Sign in to comment.

More Answers (1)

Yair Altman
Yair Altman on 12 Nov 2017
The ScreenCapture utility does exactly what you requested.

Categories

Find more on Creating, Deleting, and Querying Graphics Objects in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!