2
창에 비트 맵을 그리려합니다. 비트 맵에서 1 비트에 해당하는 픽셀 만 그리면됩니다. 0 비트에 해당하는 것은 그대로 둔다. 나는 다음과 같은 코드를 사용하고 있습니다 :Xlib - 비트 맵의 비트 세트 만 창에 그립니다.
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);
은 (예, 나는 내가 같은 직접 지정 색상은 단지 잘못된 것을 알고 있지만, 지금 나를 위해 OK입니다).
분명히 비트 맵의 0 비트는 배경색 (검정색)으로 그려집니다. 나는 그들이 전혀 그려지지 않기를 바란다. 이를 구현하는 가장 좋은 방법은 무엇입니까? 마스크 등을 지정하는 방법이 있습니까?