Saving an imagesc file as .png without the white borders?

조회 수: 45 (최근 30일)
spider_plantt
spider_plantt 2020년 8월 6일
편집: DGM 2023년 5월 1일
I want to save a series of images that output in the format 'matlab.graphics.primitive.image' as PNGs without that white border PNGs save with. My code is below--is there any way to output these images cropped of their white border? I've already tried setting my 'iptsetpref' as 'tight', to no avail.
clc;clear all;
load('sphere.mat');
for j=80:90
I=imagesc(squeeze(sphere(:,j,:)));
set(gca,'XTick',[]);
set(gca,'YTick',[]);
filename=sprintf('sphere%d',j);
saveas(I,filename,'png');
end

답변 (2개)

Sudheer Bhimireddy
Sudheer Bhimireddy 2020년 8월 6일
Try:
print(I,filename,'-dpng');
By white border if you mean the background outside the figure, then you would have to export it to epsc format
print(I,filename,'-depsc');

DGM
DGM 2022년 8월 3일
편집: DGM 2023년 5월 1일
If you have an image and want to save the image, save the image. Don't display the image and then save a screenshot of the displayed image. Don't display the image and then take a photo of the monitor with your phone. Don't describe the image as a thousand words of poetry or as an interpretive dance.
Save the image array -- not the graphics object or the parent figure. Use imwrite(). Anything else is not just self-inflicted inconvenience; it's often destructive.
For saving arbitrarily-scaled data in scaled pseudocolor (as one would expect from imagesc()), See this example:
Again, this does not rely on figure capture.

제품


릴리스

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by