function testcopyfigure(figsize)
width = figsize(1);
height = figsize(2);
figure('visible','off','Units','Points', 'Position',[0 0 width
height],...
??? 'PaperUnits','points','PaperPosition',[0 0 width
height]);
surf(peaks(10));
print -dmeta
close(gcf)
?
就这么一小段程序, 折腾了一天, 有的时候是
Warning: Problems in UIW_SetUpGLPrinting
> In graphics\private\render at 142
? In print at 267
? In testcopyfigure at 7
Warning: Failed in CloseEnhMetaFile, last error code 00000006
from-hDC 00000000
> In graphics\private\render at 142
? In print at 267
? In testcopyfigure at 7
Warning: Problems in UIW_SetUpGLPrinting
> In graphics\private\render at 142
? In print at 267
? In testcopyfigure at 7
?有的时候是error, 具体错误忘了, 大体是说printopt.m调用不了, 参数格式不符合之类的
采用的修改方法包括:
加一句set(gcf, 'Renderer', 'none');或set(gcf, 'Renderer',
'Painters');或set(gcf, 'Renderer', 'zbuffer');
把print -dmeta改成print -zbuffer -dmeta;
去掉figure一句;
将文件存储目录中有中文的地方全改成英文;
重装显卡驱动,等等
然而最后终于解决, 导致错误的原因却是:figrue中的position首字母没有大写...
多亏没有冲动的去买个显卡回来换上
话说回来, 要是再改成小写, warning, 再改回大写, 仍然warning. 这时要是用print -zbuffer
-dmeta就ok了. zbuffer的作用可见一斑吧.