Size of saved figure differs from size of frame2im(getframe(gcf))
3 次查看(过去 30 天)
显示 更早的评论
I need to create big images in which displaying lot of annotations, but my computer has a low screen resolution 1366x768. So I looked on this site for a workaround to get bigger figures, and I found the command set(gcf, 'Position', get(0, 'Screensize')) which sets the figure size to 2134x1095 (I don't why this particular value though... is there a way to create figures with custom size in pixels?).
However, when using the frame2im(getframe(gcf)) command I get a 701x1366x3 matrix instead of a 1095x2134x3 matrix, am I doing something wrong? This is just an example to replicate the problem
clc; clear all; close all
figure('visible','off')
set(gcf, 'Position', get(0, 'Screensize'))
saveas(gcf, 'aaa.png')
im = frame2im(getframe(gcf));
[size(im) ; size(imread('aaa.png'))]
0 个评论
回答(1 个)
Ameer Hamza
2020-8-27
编辑:Ameer Hamza
2020-8-27
saveas() is not a good option for exporting high-resolution images. Use exportgraphics() and specify the required resolution. See this example: https://www.mathworks.com/help/releases/R2020a/matlab/ref/exportgraphics.html#mw_b4d91f8c-574f-4574-89af-37d54c5a182b.
exportgraphics() was introduced in R2020a, for older versions, see print(). For example
print('filename.jpg', '-r300'); % for printing at 300dpi
or export_fig package from here: https://www.mathworks.com/matlabcentral/fileexchange/23629-export_fig
print('filename.jpg', '-r300');
7 个评论
Ameer Hamza
2020-8-28
Ok. If you want to set the width and height of the figure in pixels, then you can specify a four-element vector like this [x y w h]. Where x is the distance (in pixels) from the left edge of screen, and y is the distance from the bottom of the screen. w and h are the width and height of the figure window.
set(gcf, 'Position', [0 0 500 500])
This command will set the figure window to the bottom left corner and set the width and height to 500 each.
另请参阅
类别
在 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!