如何保存App设计师GUI - MATLAB

3

我正在尝试使用一个按钮(基于App Designer)保存GUI运行时的所有内容。我使用了gca,但是如预期地只保存了坐标轴(使用gcf结果是一张白色图片),有什么办法可以解决这个问题吗?还有,如何阻止Figure 1弹出?

代码:

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

2
我不应该得到这个功劳,因为这是从MATLAB Answers中的一个答案。 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)

这是一个非常好用的屏幕截图选项,只需将窗口最大化即可。

0

如何将GUI保存为tif格式有什么帮助?如何将MAT转换为tif格式? - hs100

0

将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)

这应该可以解决你的问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接