How to save a figure's content as image?
46 ビュー (過去 30 日間)
古いコメントを表示
I want to save the content of the figure without any other stuff like border, title etc.
For example, this is the figure.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/161664/image.png)
But How to Save the Red Area Content Only???
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/161665/image.png)
2 件のコメント
Jan
2017 年 3 月 14 日
Please explain how you want to save the file: Through a command or by using the menus?
回答 (2 件)
Jan
2017 年 3 月 14 日
編集済み: Jan
2017 年 3 月 14 日
What about this:
F = getframe(gca);
imwrite(F.cdata, 'File.png');
Thios capture the contents of the currently active axes object. It is safer to provide teh axes' handle instead of gca.
8 件のコメント
Amrutamaya Behera
2021 年 1 月 3 日
編集済み: Amrutamaya Behera
2021 年 1 月 3 日
Why doesn't this getframe() command always work properly. In some cases i noted when my XLim or YLim is higher than 1000 this command gets only somepart of full frame. Please help me out.
Walter Roberson
2021 年 1 月 3 日
Are you passing a rectangle specfication to getframe ?
There is a challenge that axes size can change slightly depending on xlim / ylim; I have noticed a difference of between -1 to +2 pixels. It was not as simple as "limit over 1000 is 2 pixels bigger". I seem to recall that I traced it to a rounding issue, a round-trip calculation that algebraically "should" work out to convert pixels -> internal coordinates -> pixels, but which can give minor differences.
When used without a rectangle specification, the normal result of this is that the captured area is slightly different in size, and that becomes a problem for writing video frames, as videos expect constant size.
The work-around I developed a couple of months ago was to record the size of the first getframe() and thereafter imresize() whatever was captured to that size.
I have not experimented using the rectangle specification; I would think that it could result in pixels being chopped, and I do not know what would happen for the case where the size available for capture was smaller than the rectangle specification.
Walter Roberson
2017 年 3 月 14 日
The easiest way would probably to use
axis off
followed by saveas() or print()
2 件のコメント
参考
カテゴリ
Help Center および File Exchange で Printing and Saving についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!