如何將當前窗口保存爲圖像文件,如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