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