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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM