Как нарисовать изображение из файла в окне с Xlib
Это мой код:
int main()
{
Display *d = XOpenDisplay(0);
unsigned int bitmap_width, bitmap_height;
int x, y;
Pixmap bitmap;
if ( d )
{
Window w = XCreateWindow(d, DefaultRootWindow(d), 0, 0, 400,
400, 0, CopyFromParent, CopyFromParent,CopyFromParent, 0, 0);
GC gc = XCreateGC ( d, w, 0 , NULL );
int rc = XReadBitmapFile(d, w,
"1.bmp",
&bitmap_width, &bitmap_height,
&bitmap,
&x, &y);
XCopyPlane(d, bitmap, w, gc,0, 0, bitmap_width, bitmap_height,0, 0, 1);
XMapWindow(d, w);
XFlush(d);
sleep(10);
}
return 0;
}
Но окно ясно. Я не понимаю, почему это не работает. Где я ошибся?
1 ответ
Решение
Как правило, вы создаете свой собственный загрузчик для захвата пикселей из любого формата изображения, который вам нужен.
Затем вы используете XCreateImage
сделать XImage
, который вы положили, используя XPutImage
, на закадровом изображении, которое вы генерируете с XCreatePixmap
, Как только у вас есть ваше растровое изображение, вы рисуете его в окно с XCopyArea
, Вы должны повторно скопировать изображение на любых выставленных событиях.