如何保存MATLAB GUI界面中的图片

时间:2024-03-02 09:14:24

如何保存MATLAB GUI界面中的图片

csuzhangyang@gmail.com 有任何问题,接受反馈。

代码来源自网络,作者未知,侵删。

原生支持png,bmp,jpg格式。另外自行添加了清晰度比较高的eps格式(荐)。

新建一个按钮,按钮的代码如下。

其中第二行的new_axes=copyobj(handles.axes1,new_f_handle)的handles.axes1意思是保存的是axes1中的图,以此类推。

function pushbutton19_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton19 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% 以下内容拷贝到按钮函数下。
    new_f_handle=figure(\'visible\',\'off\'); %新建一个不可见的figure
    new_axes=copyobj(handles.axes1,new_f_handle); %axes1是GUI界面内要保存图线的Tag,将其copy到不可见的figure中
    set(new_axes,\'Units\',\'normalized\',\'Position\',[0.1 0.1 0.8 0.8]);%将图线缩放
    [filename pathname fileindex]=uiputfile({\'*.png\';\'*.bmp\';\'*.jpg\';\'*.eps\';},\'图片保存为\');
    if  filename~=0%未点“取消”按钮或未关闭
        file=strcat(pathname,filename);
        switch fileindex %根据不同的选择保存为不同的类型        
            case 1
                print(new_f_handle,\'-dpng\',file);% print(new_f_handle,\'-dpng\',filename);效果一样,将图像打印到指定文件中
                fprintf(\'>>已保存到:%s\n\',file);
            case 2
                print(new_f_handle,\'-dbmp\',file);
                fprintf(\'>>已保存到:%s\n\',file);
            case 3
                print(new_f_handle,\'-djpg\',file);
                fprintf(\'>>已保存到:%s\n\',file);
            case 4
                print(new_f_handle,\'-depsc\',file);
                fprintf(\'>>已保存到:%s\n\',file);
        end 
        msgbox(\'          图线已成功保存!\',\'完成!\');
    end