Saved figure different than actual figure size (?)

16 views (last 30 days)
Hi, I'm trying to save a figure as a .tif, however, the output .tif file is different than the specified figure size. Here is an example:
im=imread('rice.png');
fig=figure;
set(gcf,'Position',[30 30 512 256]);
hL=axes('Position',[0 0 .5 1],'Visible','off');
hR=axes('Position',[.5 0 .5 1],'Visible','off');
set(gcf,'CurrentAxes',hL);
imshow(im,[]);
set(gcf,'CurrentAxes',hR);
imshow(im,[]);
print(gcf,'-dtiff','temp');
The output image is 1200 x 900 pixels, not the 512 x 256 I specified in the program. What am I missing during the export to get the output to be 512 x 256?
Thanks, Matt K.

Accepted Answer

Matt
Matt on 28 Feb 2011
I think that the answer came down to a combo of the suggested answers. After I show the figure, I edited the code to be:
set(gcf,'PaperUnits','inches');
set(gcf,'PaperPosition',[1 1 5.12 2.56]);
set(gcf,'PaperPositionMode','manual');
print(gcf,'-dtiff','-r100','temp');
See more info about this from a MATLAB blog here, and some other info available here.
Thanks for your help.

More Answers (3)

Walter Roberson
Walter Roberson on 25 Feb 2011
See the figure PaperPosition and PaperPositionMode properties.

the cyclist
the cyclist on 25 Feb 2011
Can you use the -r option? E.g.
>> print(gcf,'-dtiff','-r300','temp')

Oliver Woodford
Oliver Woodford on 27 Feb 2011
To get the output you expect (i.e. a fair representation of the figure on the screen) without having to set lots of options, use export_fig.
In this case try:
export_fig temp.tif -nocrop

Categories

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

Products

Community Treasure Hunt

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

Start Hunting!