使用xlib将图像加载到窗口上

时间:2011-06-17 11:19:44

标签: c++ imagemagick x11 xlib

我已经创建了窗口类,我想插入一个图像作为该窗口的背景。文件格式需要是png。我使用magick ++的XImage加载图像。但不知道如何将其作为我窗口的背景。知道怎么做吗?

1 个答案:

答案 0 :(得分:3)

使用

创建一个Pixmap
Pixmap XCreatePixmap(display, d, width, height, depth)
      Display *display; // The display
      Drawable d;       // The Window for which to set the background

为Pixmap创建图形上下文

GC XCreateGC(display, d, valuemask, values)

将XImage绘制到Pixmap

XPutImage(display, pixmap, gc, image, src_x, src_y, dest_x, dest_y, width, height)
        Drawable d; // The Pixmap
        XImage *image; // your XImage

最后将Pixmap设置为窗口的背景

XSetWindowBackgroundPixmap(display, w, background_pixmap)
      Display *display;
      Window w;
      Pixmap background_pixmap;

然后释放不再需要的所有资源。