xlib 主要就是图像展示效果,这个时候就可以体现出 pixmap 的作用了。
- 创建 pixmap 类型的 bitmap
int rc = XReadBitmapFile(display, win, "icon.bmp", &bitmap_width, &bitmap_height, &bitmap, &hotspot_x, &hotspot_y);
- 如果创建有问题,做个错误处理
/* check for failure or success. */ switch (rc) { case BitmapOpenFailed: fprintf(stderr, "XReadBitmapFile - could not open file 'icon.bmp'.\n"); exit(1); break; case BitmapFileInvalid: fprintf(stderr, "XReadBitmapFile - file '%s' doesn't contain a valid bitmap.\n", "icon.bmp"); exit(1); break; case BitmapNoMemory: fprintf(stderr, "XReadBitmapFile - not enough memory.\n"); exit(1); break; }
- 重复拷贝
XCopyPlane(display, bitmap, win, gc, 0, 0, bitmap_width, bitmap_height, j*bitmap_width, i*bitmap_height, 1);