出口Matlab的数字作为PNG?(Export Matlab figure as PNG?)

2019-06-25 21:27发布

我需要自动从MATLAB出口数字为PNG。 我的身材有大小600x200像素的:

hFig = figure(1); 
set(hFig, 'Color', [1 1 1]); % backgroundcolor white
set(hFig, 'Position', [500 500 600 200]) % size 600x200

我试着如

print -dpng image.png

但image.png比600x200像素大。 使用“保存”按钮的伟大工程,从图窗口GUI手动导出的身影,我想从一个剧本正是这种自动/做。 感谢您的任何提示!

Answer 1:

我也知道,数字保存从来不看一样在屏幕上的问题。

还有就是saveas命令,它可能为你工作-但也做了一些改变分辨率为我。

只有这样,我知道是精心设置每一个方面是这样的:

set(gcf,'PaperUnits','inches','PaperSize',[2,6],'PaperPosition',[0 0 2 6])
print('-dpng','-r100','test')

(所以纸张大小是2×6" ,用100dpi的打印,PaperPosition是重要的,因为你将有另有一些额外的边界。)



Answer 2:

我从MATLAB生成PNG地块首选的方法是export_fig在可用的实用工具MATLAB文件交换 。

下面是一个例子:

set(gcf, 'Position', [100 100 500 500], 'Color', 'w')

x=0:0.01:10;
plot(x, sin(x))
set(gca, 'FontSize', 20, 'FontName', 'Arial')

export_fig 'strip-diff-far-forward.png' -painters -nocrop

这将创建一个PNG即500×500像素,20名像素的字体。 我敢肯定,在内部它同种事物中bdecaf的答案,但它是在一个函数的所有ecapsulated对于你们,有一堆的其他功能了。

其缺点是,如果你使用-painters渲染器(我认为看起来是最好的),你将需要安装ghostscript的。 如果你不想与那些乱七八糟的,你可以改变-painters-opengl

编辑现在可以正确设置数字大小!



Answer 3:

基于bdecaf的回答:

set(gcf,'PaperUnits','inches','PaperSize',[600/96,200/96],'PaperPosition',[0 0 600/96 200/96])
print('-dpng','-r96','test')

96是我的系统的DPI。 这给了我到底输出作为保存功能相同。 对于Windows的DPI通常是96,有时120只需相应地调整它到你的系统。 请注意,在投影仪的DPI可能会再次与您的系统不同,特别是如果你的系统有120 DPI! 96 DPI一般应为卷轴机,我认为一个比较安全的选择。 谷歌,如果你需要帮助找出你的系统的DPI设置。 这个答案是基于bdecaf和弗洛里安99.9%,所以我会离开选择正确的bdecaf的答案。

编辑:在像素600 =以像素水平图像尺寸,200 =垂直图像尺寸



Answer 4:

荷银答案完美的作品,你生成你的身材,设置后PaperPositionModeauto和打印尺寸将是相同的屏幕尺寸。

set(gcf, 'PaperPositionMode','auto')   
print('-dpng','test.png')


Answer 5:

尝试:

set(hFig, 'PaperPositionMode','auto')   %# WYSIWYG
print -dpng -r0 image.png               %# at screen resolution

这告诉它,因为它出现在屏幕上产生图像的大小相同。



文章来源: Export Matlab figure as PNG?