您的位置:首页 > 编程语言 > MATLAB

MATLAB GUI 程序设计中将axes保存为高质量矢量图的方法

2015-12-02 20:22 676 查看
MATLAB进行GUI程序设计时,一个figure中通常包含多个axes控件。

保存矢量图的常用指令saveas和print只能以figure为单位保存图片,而不能将figure中的某一个axes单独保存。

而getframe+imwrite的方法虽然可以保存axes,但只能将窗口显示范围的像素点保存为位图,不能保存为矢量图,必定造成图像在放大时变模糊。

下面给出一种解决方案。

创建一个新的、不可见的figure和axes,将要保存的axes内容复制至新的axes中,并保存新的figure。

由于新的figure中只有1个axes,所以相当于至保存了一个axes。

h=get(handles.axes1,'children');
figure('visible','off');
axes;
copyobj(h,gca);
saveas(gcf,filename,'emf');


上面代码的缺陷在于,无法控制矢量图的质量

可以通过使用print函数解决

h=get(handles.axes1,'children');
figure('visible','off');
axes;
copyobj(h,gca);
print(gcf,'-zbuffer','-dmeta','-r1000',filename);
% 将-dmata改为-dpng可以生成png图盘
% -r1000用于控制图片质量,数值越大质量越高


本系列文章允许转载,转载请保留全文!

[b]【说明&总目录】/article/5553408.html[/b]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: