如何将当前窗口保存为图像文件,如png?使用gtk将当前窗口保存为图像#
我知道我可以从当前窗口获取gdkWindow。 我甚至可以得到一个图像。从这个图像结构我甚至可以查询每个像素。但根据我的理解,我真正需要的是获得pixbuf。
int width;
int height;
this.GetSize(width, height);
this.GdkWindow.GetImage(0,0,width,height).?
我如何从一个 GTK窗口或 一个GDK窗口或 一个GDK图像的pixbuf?
编辑
int width;
int height;
this.GetSize(out width, out height);
Pixbuf pixbuf = Pixbuf.FromDrawable (this.GdkWindow, this.Colormap, 0, 0, 0, 0, width, height);
pixbuf.Save("/tmp/out.png","png");
是有点儿工作。一个PNG导出的大小正确但模糊。
编辑2
该解决方案正在工作。该bluriness是侏儒的图像浏览器的漏洞
你使用的是GTK + 2还是3? – oldtechaa
我会说2作为gtk-sharp版本是2.12.0.0 – frenchone