2009年3月3日星期二

如何保存GUI面板AXES中的图像

1#
如何保存GUI面板AXES中的图像
请问如何保存GUI面板AXES中的图像?我做了个gui,希望能把gui上axes中显示的图像保存起来,已有做word报告文档用,axes2 =handles.axes2; %得到axes2的句柄值
if isempty(axes2)
return;
end
[filename,pathname] = uiputfile({ '*.jpg','figure type(*.jpg)'}, 'save axes2');
if (isequal([filename,pathname],[0,0]))
return;
end

cd(pathname)
%save(filename,'axes2');
%hgsave(axes2,'filename')
saveas(axes2,'filename.jpg')
保存的结果是整个GUI面板的图像,而且uiputfile中设置的filename在saveas(axes2,'filename.jpg')中并没有用,请问这是怎么回事啊?是不是不应用axes2这个坐标轴句柄?好像用figure的句柄就能保存成功,我是新手 看help看不太懂 请教各位




3#
[filename,pathname] = uiputfile({ '*.jpg','figure type(*.jpg)'}, 'save axes2');
%gcf换成你的
saveas(gcf,[pathname,filename])




4#
谢谢版主 我通过你的方法能够保存figure的图像,对我有很大的帮助。可我现在希望保存gui中的axes2中的图像 可如果按你的方法 保存的是gui界面左下角的图像,我也不知道是怎么回事。希望的到大家的指点:)






6#
通过这样的程序可将图像填满
newFig = figure; %生成一个新fig
newAxes = copyobj(gca,newFig); %将当前轴对象复制到新fig中
set(newAxes,'Units','default','Position','default'); % 改变图象的大小,否则图象不能充满绘图区
saveas(newFig,file); %保存新fig的图像
close(newFig); %关闭新fig


7#
办法不错,不过要重新生成一个图像不大方便,再琢磨一下


8#
那个先生成figure再保存的方法我通过set(gcf,'Visible','off')解决了


9#
最近在用,感觉还是前面提到复制的这个方法比较好,如果直接保存的话,有些东西会比例失调,很难看

newFig = figure('Visible','off'); %生成一个新fig而且不显示给用户

newAxes = copyobj(gca,newFig); %将当前轴对象复制到新fig中

set(newAxes,'Units','default','Position','default'); % 改变图象的大小,否则图象不能充满绘图区

saveas(newFig,‘filename’,‘jpg’); %保存新fig的图像

close(newFig); %关闭新fig


10#
[sFileName sFilePath]=uiputfile({'*.jpg','JPEG-Files (*.jpg)'; ...

'*.*','All Files (*.*)'},'保存图像文件','untitled.jpg');

if ~isequal([sFileName,sFilePath],[0,0])

sFileFullName=[sFilePath sFileName];

axes(handles.axes1)

i=getframe(gca);

imwrite(i.cdata,sFileFullName,'jpg');

else

msgbox('图像未保存','保存失败');

end





我是这么做的,把gca改成相应的axes就可以了



11#
I = getframe(handles.axes1)

imwrite(I.cdata, 'myplot.jpg')

试试看,我用这个可以。


12#
这个方法很好,但是没有那些xlabel,ylabel了。

没有评论:

发表评论

标签