как сделать скриншот в вале - PullRequest
1 голос
/ 04 декабря 2011

у меня следующая программа не работает

ПРИМЕЧАНИЕ: скомпилировано в Windows 7.

Gdk.Screen screen = Gdk.Screen.get_default ();      
Gdk.Window rootWin2 = screen.get_active_window ();
int width, height;
rootWin2.get_size (out width, out height);
Gdk.Colormap? colormap= rootWin2.get_colormap (); 
Gdk.Pixbuf? dest = new Gdk.Pixbuf (Gdk.Colorspace.RGB, false, 8, width, height);
Gdk.pixbuf_get_from_drawable (dest, rootWin2, colormap, 0, 0, 0, 0, width, height);     

try {
    dest.save("screenShoot2.jpg", "jpeg");
} catch (Error e) {
    stdout.printf("\n eerorrr   " + e.message + "\n");           
}

1 Ответ

4 голосов
/ 17 апреля 2012

с использованием Gtk;

int main (string[] args) {
    Gtk.init (ref args);

    int  width, height;

    Gdk.Window win = Gdk.get_default_root_window();

    width = win.get_width();
    height = win.get_height();

    Gdk.Pixbuf screenshot = Gdk.pixbuf_get_from_window(win, 0, 0, width, height);

    screenshot.save("screenshot.png","png");
    return 0;
}

//  valac --pkg gtk+-3.0 --pkg gdk-3.0  screenshot.vala 
...