我正在尝试在窗口上绘制位图。我只需要在位图中绘制1位对应的像素;对应于 0 位的那些应保持不变。我正在使用这样的代码:
XImage *image;
uint8_t bitmap[8192]; /* 256 x 256 / 8 */
memset(bitmap, 0xaa, sizeof(bitmap));
XSetForeground(g_display, g_gc, 0x000000ff);
XSetBackground(g_display, g_gc, 0x00000000);
image = XCreateImage(g_display, g_visual, 1, XYBitmap,
0, (char *)bitmap, 256, 256, 32, 0);
XPutImage(g_display, g_wnd, g_gc, image, 0, 0, 10, 10, 255, 255);
XFree(image);
(是的,我知道像我这样直接指定颜色是错误的,但现在对我来说没问题)。
显然,位图的 0 位是用背景色(即黑色)绘制的。我希望它们根本不被绘制。实现它的最佳方法是什么?有什么方法可以指定掩码或其他东西吗?