Making a screenshot using Xlib and Cairo libs [fail]

后端 未结 2 2051
野趣味
野趣味 2020-12-18 15:59

I\'m trying to make a screenshot using Xlib and Cairo, however I\'m not sure to do it the good way, \"stride\" is really confusing me.

2条回答
  •  醉酒成梦
    2020-12-18 16:47

    Instead of doing all this complicated magic, let cairo do it for you:

    #include 
    #include 
    #include 
    
    int main(int argc, char** argv) {
        Display *disp;
        Window root;
        cairo_surface_t *surface;
        int scr;
    
        disp = XOpenDisplay(NULL);
        scr = DefaultScreen(disp);
        root = DefaultRootWindow(disp);
    
        surface = cairo_xlib_surface_create(disp, root, DefaultVisual(disp, scr),
                DisplayWidth(disp, scr), DisplayHeight(disp, scr));
        cairo_surface_write_to_png(
                surface,
                "test.png");
        cairo_surface_destroy(surface);
    
        return 0;
    }
    

提交回复
热议问题