PNG vs. FIG File format - saveas function query

Hi,
I've been using the saveas function in my code to save the .fig files. However, the format of the .PNG file is quite different. The PNG file looks (size/ font) is different to the .fig plot.
But when I manually saveas from the matlab figure, File-->Save As (save as a PNG file), it saves it correctly without any change in the figure properties.
Is it something that we can make it similar to the .fig file?
Appreciate any responses, thanks in advance!
-Ferdinand

1 Comment

Do you mean you want to save the figure contents to a png, just as when you would make a screen capture? If so, there is a submission on the FEX that does just that and is compatible with just about every conceivable Matlab release.

Sign in to comment.

 Accepted Answer

 the format of the .PNG file is quite different

It depends on what you save in the PNG, or in other word, if you save a screenshot or use print to create a PNG with modified properties.

To get a copy of the appearance of the figure:

F = getframe(FigHandle);
if isempty(F.colormap)
  RGB = F.cdata;
else
  RGB = ind2rgb(F.cdata, F.colormap);
end
imwrite(RGB, FileName, 'png');

4 Comments

Great! This is exactly what I required. Thanks!

Will use the above method instead of what I was using, below was what I used,

saveas(gcf,[Savepath 'Plots - ' eval('filenames{i}') '.png']);

@Ferd: why do you need to use eval? It seems to serve no purpose:

saveas(gcf,[Savepath,'Plots - ',filenames{i},'.png'])

or even more robustly using fullfile:

fnm = fullfile(Savepath,['Plots - ',filenames{i},'.png'])
saveas(gcf,fnm)

@Ferd: Avoid eval as hell. See Tutorial: Avoid EVAL.

Didn't have info on it, was trying to write my own code. Updated it with the changes. eval will be avoided at all cost. Feel Mathworks should take away the function for upcoming versions.
Appreciate the advice/ suggestions outside the question, thanks a lot!

Sign in to comment.

More Answers (0)

Categories

Find more on Printing and Saving in Help Center and File Exchange

Tags

Asked:

on 20 Apr 2018

Commented:

on 24 Apr 2018

Community Treasure Hunt

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

Start Hunting!