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 效果
參考文獻
- guopanfeng
- Chris_Lee的博客
寫作匆忙,參考的部分網頁資料未能找到,請各位致力於分享的同仁見諒。