代码之家  ›  专栏  ›  技术社区  ›  DavidG

Xorg加载图像

  •  2
  • DavidG  · 技术社区  · 17 年前

    3 回复  |  直到 15 年前
        1
  •  3
  •   Havoc P    15 年前

    你可能从2008年就发现了这一点,但为了未来读者的利益。。。

    XCreatePixmapFromBitmapData()将文字位图(即1位黑白)数据加载到pixmap中。如果目标是从PNG加载,那么这很可能不是您想要的。

    现在人们通常推荐的做事方式是:

    • 与服务器端绘图API相比,更喜欢cairo(或类似的库,Skia就是其中之一)

        2
  •  1
  •   Johan Dahlin Idelic    17 年前

    XCreatePixmapFromBitmapData应该做到这一点。请记住,您需要输入与xserver使用的位深度相同的数据。

        3
  •  0
  •   Dave    15 年前

    你必须和XCreateImage、XCreatePixmap和XCopyArea跳一段舞。有点像这样:

    struct Image img = get_pixels_and_geometry_from_libpng("filename.png");
    XImage *img = XCreateImage(/*5000 paremeters*/);
    Pixmap pixmap = XCreatePixmap(dpy, img.width, img.height, 24);
    XPutImage(dpy, pixmap, gc, 0, 0, img.width, img.height);
    XCopyArea(dpy, pixmap, window, 0, 0, img.width, img.height, x, y);
    
    推荐文章