matlab GUI保存axes(坐標軸)上的圖像


1.默認方式

matlab GUI默認菜單的保存圖像默認為保持全部GUI,包括使用" 菜單->編輯->復制圖形"。

2 保存可見區域

2.1 代碼

[FileName,PathName] = uiputfile({'*.jpg','JPEG(*.jpg)';...
                                             '*.bmp','Bitmap(*.bmp)';...
                                             '*.gif','GIF(*.gif)';...
                                             '*.*',  'All Files (*.*)'},...
                                             'Save Picture','Untitled');
if FileName==0
      disp('保存失敗');
      return;
else
      h=getframe(picture);%picture是GUI界面繪圖的坐標系句柄
      imwrite(h.cdata,[PathName,FileName]);
end           

2.2 說明

函數getframe()是為了獲取坐標軸中的一幀圖像,其返回的對象中有cdata和colormap兩個成員。

2.3 效果

保存可見區域

3 保存帶坐標軸的區域

3.1代碼

new_f_handle=figure('visible','off');
new_axes=copyobj(picture,new_f_handle); %picture是GUI界面繪圖的坐標系句柄
set(new_axes,'units','default','position','default');
[filename,pathname,fileindex]=uiputfile({'*.jpg';'*.bmp'},'save picture as');
if ~filename
     return
else
      file=strcat(pathname,filename);
      switch fileindex %根據不同的選擇保存為不同的類型
      case 1
                  print(new_f_handle,'-djpeg',file);
      case 2
                  print(new_f_handle,'-dbmp',file);
      end
end
delete(new_f_handle);

3.2 說明

實際上是新建一個新的坐標圖形,將GUI復制到新的圖像上,輸出新的圖像,最后刪除新建的圖形句柄。

3.3 效果

保存帶坐標軸的區域

參考文獻


免責聲明!

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



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