在我编写的MATLAB函数中,我生成了一张图。当执行该函数时,图形将被显示出来。我需要将这个图形保存为JPEG格式的图片。为此,我可以在显示图形的窗口中进行“文件”->“另存为”的操作。但我想自动化这个过程。我尝试使用saveas()函数来实现自动保存,但结果得到的图像不理想。下面是一个演示问题的示例图像,以说明我的意思:
手动使用MATLAB图形窗口中的“文件”->“另存为”保存的JPEG图像: 使用saveas()函数保存的JPEG图像(请注意,绘图不那么好看,标题重叠): 以下是我用来生成图形并使用saveas()函数将其保存为JPEG格式的MATLAB函数:
当执行JpgSaveIssueDemo()时显示的图形并非最大化。因此,我认为如果在执行saveas()之前在JpgSaveIssueDemo()中使用函数调用/ s来最大化它,则保存的JPEG图像将会很好。因此,在JpgSaveIssueDemo()中的saveas()行之前,我使用了以下代码来最大化该图形:
手动使用MATLAB图形窗口中的“文件”->“另存为”保存的JPEG图像: 使用saveas()函数保存的JPEG图像(请注意,绘图不那么好看,标题重叠): 以下是我用来生成图形并使用saveas()函数将其保存为JPEG格式的MATLAB函数:
function JpgSaveIssueDemo( )
figure( 1 );
t = 0:0.1:8;
subplot( 2, 2, 1 );
plot( t, sin(t) );
title( 'Plot 1 of Example to Demonstrate JPG Save Issue', 'FontSize', 18 );
subplot( 2, 2, 2 );
plot( t, sin(t) );
title( 'Plot 2 of Example to Demonstrate JPG Save Issue', 'FontSize', 18 );
subplot( 2, 2, 3 );
plot( t, sin(t) );
title( 'Plot 3 of Example to Demonstrate JPG Save Issue', 'FontSize', 18 );
subplot( 2, 2, 4 );
plot( t, sin(t) );
title( 'Plot 4 of Example to Demonstrate JPG Save Issue', 'FontSize', 18 );
saveas( gcf, 'DemoPlot', 'jpg' );
end
当执行JpgSaveIssueDemo()时显示的图形并非最大化。因此,我认为如果在执行saveas()之前在JpgSaveIssueDemo()中使用函数调用/ s来最大化它,则保存的JPEG图像将会很好。因此,在JpgSaveIssueDemo()中的saveas()行之前,我使用了以下代码来最大化该图形:
drawnow;
jFrame = get(handle(gcf),'JavaFrame');
jFrame.setMaximized(true);
然后,显示的图像被最大化。 然而,结果是相同的:JPEG图像仍然不理想。
对此应该怎么办?