xlib实现截图报错

我要用x11的客户端xlib实现一个截图窗口的功能,程序现在是这样,但是遇到了一个报错,请大家看看
用代码块功能插入代码

代码如下:

#include Xlib.h>
#include 
#include 
#include 

int main(int argc, char **argv)
{
    Display *display = XOpenDisplay(NULL);
    int screen_num = DefaultScreen(display);
    int width = DisplayWidth(display,screen_num), height = DisplayHeight(display,screen_num);

    Window window = XCreateSimpleWindow(display, RootWindow(display, screen_num), 0, 0, width, height, 1, 0, 0);
/*
    struct timeval start,end;
    gettimeofday(&start,NULL);
*/
    XImage *ximage = XGetImage(display,RootWindow(display,screen_num),0,0,width,height,XAllPlanes(),ZPixmap);
/*
    gettimeofday(&end,NULL);
    int timeuse = 1000000 * (end.tv_sec - start.tv_sec) + end.tv_usec - start.tv_usec;
    fprintf(stdout,"%d\n",timeuse);
  */
    XSelectInput(display, window, ButtonPressMask | ExposureMask);
    XMapWindow(display, window);
    XEvent ev;
    while(1)
    {
        XNextEvent(display, &ev);
        switch(ev.type)
        {
            case Expose:
                XPutImage(display, window, DefaultGC(display, screen_num), ximage, 0, 0, 0, 0, width, height);
                break;
            case ButtonPress:
                exit(0);
        }
    }
    return 0;
}

gcc image.c -lX11 -o image
./image
报错如下:

X Error of failed request:  BadMatch (invalid parameter attributes)
  Major opcode of failed request:  73 (X_GetImage)
  Serial number of failed request:  8
  Current serial number in output stream:  8