【发布时间】:2016-10-08 23:02:42
【问题描述】:
如何将当前窗口保存为 png 等图像文件?
我知道我可以从当前窗口中获取 gdkWindow。 我什至可以得到一个图像。从这个图像结构中,我什至可以查询每个像素。但据我了解,我真正需要的是获得一个 pixbuf。
int width;
int height;
this.GetSize(width, height);
this.GdkWindow.GetImage(0,0,width,height).?
我如何从 gtk 窗口或 gdk 窗口或 gdk 图片?
编辑
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
解决方案有效。模糊是 gnome 图像查看器的错误
【问题讨论】:
-
你使用的是 GTK+2 还是 3?
-
我会说 2 因为 gtk-sharp 版本是 2.12.0.0
标签: gtk gtk# gtk2 gdk gdkpixbuf