如何保存App desginer GUI - MATLAB

jyztefdp  于 2023-08-06  发布在  Matlab
关注(0)|答案(3)|浏览(167)

我试图保存所有的GUI,而它正在运行使用一个按钮(基于应用程序设计器)。我使用了gca,正如预期的那样,它只保存轴(使用gcf结果是白色图像),有什么想法如何解决它?以及如何阻止图1弹出?
代码:

function saveGUIButtonPushed(app, event)
        guiImage = gca;
        exportgraphics(guiImage,'E:/screenExportgraphics.tif','Resolution',500)
        disp('done');
    end

字符串

kyvafyod

kyvafyod1#

我不值得信贷,因为它是一个答案从MATLAB答案https://www.mathworks.com/matlabcentral/answers/410919-capturing-and-saving-an-image-of-a-running-using-code-in-matlab-s-appdesigner
代码:

robot = java.awt.Robot();
            pos = [0 0 1680 1050]; % [left top width height]
            rect = java.awt.Rectangle(pos(1),pos(2),pos(3),pos(4));
            cap = robot.createScreenCapture(rect);
            % Convert to an RGB image
            rgb = typecast(cap.getRGB(0,0,cap.getWidth,cap.getHeight,[],0,cap.getWidth),'uint8');
            imgData = zeros(cap.getHeight,cap.getWidth,3,'uint8');
            imgData(:,:,1) = reshape(rgb(3:4:end),cap.getWidth,[])';
            imgData(:,:,2) = reshape(rgb(2:4:end),cap.getWidth,[])';
            imgData(:,:,3) = reshape(rgb(1:4:end),cap.getWidth,[])';
            % Show or save to file
            imshow(imgData)
            imwrite(imgData,'I:/screenCap.tif', 'Resolution', 500)

字符串
这是一个捕获屏幕的选项,工作得很好,只是最大化您的窗口。

jum4pzuy

jum4pzuy2#

您可以使用以下步骤保存和加载文件:
1.将应用的CloseRequestFcn回调函数中的值保存到MAT。链接到Matlab文档是可用的here
1.在应用程序的StartupFcn回调函数中,从MAT文件加载值,并使用此值设置数值字段。App Designer的启动回调函数的文档可以在以下链接中找到:https://www.mathworks.com/help/matlab/creating_guis/app-designer-startup-function.html

ukdjmx9f

ukdjmx9f3#

要转换Matlab文件,您必须将数据从**.mat加载到Matlab中,然后您可以将其转换为.tif**文件。
设data为矩阵,xminxmaxyminymax 分别为最小和最大经度和纬度。您可以使用以下命令将此数据转换为.tif文件:

% Write the data into geotiff 
R = georasterref('RasterSize',size(data),'LatitudeLimits',[ymin,ymax],'LongitudeLimits',[xmin,xmax]);
geotiffwrite('myfile.tif',data,R)
%%Read geotiff file
[A, R] = geotiffread(tiffile);
figure
mapshow(A, R)

字符串

这将解决您的问题

相关问题