如何在没有 matlab 的计算机上保存将 运行 的 gui 图图形
how to save figure of gui plot which will run on a computer that does not have matlab
我制作了一个 Gui 程序,我将其编译为 EXE 应用程序,它将 csv 文件加载到图形数据中。我建立了一个保存按钮,但我不知道如何每次都使用不同的名称保存图形(savefig 和 uisave 都使用 matlab 程序)。如果你们知道如何将 gui 图形保存到图像或任何需要 matlab 打开的东西,我会在下面发布我的代码。最后一个函数是保存按钮的回调函数。
function ma_Callback(hObject, eventdata, handles)
% i tried uisave but not possible to run computer without matlab cause mcr
% does not run uisave
% i tried copyopbj but since i did not put a name on my figure it did not
% work
%savefig
如果你想从你的图形中保存一种图像,那么支持很多方面的最佳选择是使用 print
函数。
我已经在已编译的应用程序中完成了此操作,并且效果很好。使用打印功能,您可以设置不同的文件类型(也支持*.svg 等矢量格式)、分辨率(dpi) 等等。
虽然你可以直接在图中使用print
功能,但我发现最好的方法(更多自定义,如删除或添加一些对象和更改许多选项)是按照以下步骤操作:
- 用
Visible='on'
创建另一个图形,但位置在屏幕外,与主图形的宽度和高度相同。
归一化位置 = [-1, -1, ?, ?]。 (在启动时创建此图形,在您的应用程序退出之前不要销毁它,我们将其命名为 Print Figure
)。
- 使用
copyobj
将您的图形内容(或您感兴趣的部分)复制到该图形(您可能需要将面板等一些关键对象的父对象 属性 设置为该新图形) .它们看起来与主图中的外观完全一样,因为它们具有相同的属性。您可以在此步骤中添加或删除一些对象。
- 更改 "Print Figure" 的纵横比以获得更好的输出。
- 使用您需要的所有选项(文件格式、dpi、...)打印此图。在我自己的 GUI 中,我允许用户使用输入对话框更改此设置。
在我的应用程序中,当打印任务完成时,我使用 winopen
等函数向用户显示输出和输出目录。打印过程需要一些时间,特别是在 dpi 很大的情况下,因此停用按钮并显示等待光标也是一个好主意。
更新:
一个简单的用法是:
print(MainFigure, 'myFileName', '-dpng', '-r300')
我制作了一个 Gui 程序,我将其编译为 EXE 应用程序,它将 csv 文件加载到图形数据中。我建立了一个保存按钮,但我不知道如何每次都使用不同的名称保存图形(savefig 和 uisave 都使用 matlab 程序)。如果你们知道如何将 gui 图形保存到图像或任何需要 matlab 打开的东西,我会在下面发布我的代码。最后一个函数是保存按钮的回调函数。
function ma_Callback(hObject, eventdata, handles)
% i tried uisave but not possible to run computer without matlab cause mcr
% does not run uisave
% i tried copyopbj but since i did not put a name on my figure it did not
% work
%savefig
如果你想从你的图形中保存一种图像,那么支持很多方面的最佳选择是使用 print
函数。
我已经在已编译的应用程序中完成了此操作,并且效果很好。使用打印功能,您可以设置不同的文件类型(也支持*.svg 等矢量格式)、分辨率(dpi) 等等。
虽然你可以直接在图中使用print
功能,但我发现最好的方法(更多自定义,如删除或添加一些对象和更改许多选项)是按照以下步骤操作:
- 用
Visible='on'
创建另一个图形,但位置在屏幕外,与主图形的宽度和高度相同。 归一化位置 = [-1, -1, ?, ?]。 (在启动时创建此图形,在您的应用程序退出之前不要销毁它,我们将其命名为Print Figure
)。 - 使用
copyobj
将您的图形内容(或您感兴趣的部分)复制到该图形(您可能需要将面板等一些关键对象的父对象 属性 设置为该新图形) .它们看起来与主图中的外观完全一样,因为它们具有相同的属性。您可以在此步骤中添加或删除一些对象。 - 更改 "Print Figure" 的纵横比以获得更好的输出。
- 使用您需要的所有选项(文件格式、dpi、...)打印此图。在我自己的 GUI 中,我允许用户使用输入对话框更改此设置。
在我的应用程序中,当打印任务完成时,我使用 winopen
等函数向用户显示输出和输出目录。打印过程需要一些时间,特别是在 dpi 很大的情况下,因此停用按钮并显示等待光标也是一个好主意。
更新:
一个简单的用法是:
print(MainFigure, 'myFileName', '-dpng', '-r300')