Как нарисовать изображение из файла в окне с Xlib - PullRequest
1 голос
/ 07 июля 2011

Это мой код:

int main()
{
    Display *d = XOpenDisplay(0);
    unsigned int bitmap_width, bitmap_height;
    int x, y;
    Pixmap bitmap;

    if ( d )
    {
        Window w = XCreateWindow(d, DefaultRootWindow(d), 0, 0, 400,
                   400, 0, CopyFromParent, CopyFromParent,CopyFromParent, 0, 0);
        GC gc = XCreateGC ( d, w, 0 , NULL );

        int rc = XReadBitmapFile(d, w,
             "1.bmp",
             &bitmap_width, &bitmap_height,
             &bitmap,
             &x, &y);

        XCopyPlane(d, bitmap, w, gc,0, 0, bitmap_width, bitmap_height,0, 0, 1);
        XMapWindow(d, w);
        XFlush(d);
        sleep(10);
    }
    return 0;
}

Но окно ясно.Я не понимаю, почему это не работает.Где я ошибся?

1 Ответ

5 голосов
/ 21 июля 2011

Как правило, вы создаете свой собственный загрузчик для захвата пикселей из любого необходимого формата изображения.

Затем вы используете XCreateImage, чтобы создать XImage, который вы положили, используя XPutImage,на закадровом растровом изображении, которое вы генерируете с XCreatePixmap.Как только у вас есть ваше растровое изображение, вы рисуете его в окно с XCopyArea.Вы должны повторно скопировать изображение на любых выставленных событиях.

...