zoukankan      html  css  js  c++  java
  • MATLAB GUI 程序设计中将axes保存为高质量矢量图的方法

    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用于控制图片质量,数值越大质量越高

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

    【说明&总目录】http://www.cnblogs.com/tbcaaa8/p/4415055.html

  • 相关阅读:
    windows通过Composer安装yii2
    jquery自定义函数
    js 回调
    读取.properties配置文件
    spring @ModelAttribute 注解
    excel导出
    spring定时器
    maven添加自己的jar包到本地仓库
    activeMq 消费者整合spring
    linux操作命令
  • 原文地址:https://www.cnblogs.com/tbcaaa8/p/5014072.html
Copyright © 2011-2022 走看看