linux - 需要在 X11 中使用 imLib2 库拍摄快照

标签 linux x11 embedded-linux

您好,我们需要在单击按钮时拍摄当前运行的应用程序窗口的快照。这应该在代码中自动完成。为此,我们使用了 Imlib2 库并使用了以下 API 的 imlib_create_image_from_drawable 和 imlib_copy_drawable_to_image。这是我们用来拍摄快照的代码,但它不起作用请帮助我们提前感谢。

Imlib_Image buffer;
buffer = imlib_create_image_from_drawable(pixmap, 0, 0, glb.windowWidth, glb.windowHeight, 0); 
imlib_context_set_image(buffer);
imlib_copy_drawable_to_image(pixmap, 0, 0, glb.windowWidth, glb.windowHeight, 0, 0, 0);
imlib_context_set_image(buffer);
imlib_image_set_format("png");
imlib_save_image("screenshot");
imlib_free_image();

最佳答案

谢谢。我已经更正了我的代码,我可以使用 Imlib 库拍摄正在运行的应用程序的快照。在上面我忘记设置可绘制对象。这是更正后的代码,它工作正常

Imlib_Image buffer;

buffer = imlib_create_image(glb.windowWidth, glb.windowHeight); 
imlib_context_set_image(buffer);
imlib_context_set_display(display);
imlib_context_set_visual(DefaultVisual(display, 0));
imlib_context_set_drawable(window);
imlib_copy_drawable_to_image(0, 0, 0, glb.windowWidth, glb.windowHeight, 0, 0, 1);
imlib_context_set_image(buffer);
imlib_image_set_format("png");
imlib_save_image("screenshot");
imlib_free_image();

关于linux - 需要在 X11 中使用 imLib2 库拍摄快照,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15478405/

相关文章:

linux - 指向其父目录没有执行权限的文件夹的符号链接(symbolic link)

linux - “make dep”因缺少分隔符而失败?

C++ 和 XGrabKeyboard 键盘锁定

ruby - (Ruby || Python) 窗口管理器

linux-kernel - 用于 ARM 的 Linux 中的矢量页面映射

c - 在linux环境下模拟不同IP地址的不同PC

linux - 来自 shell 脚本的后台 rsync 和 pid

x11 - Xlib中的窗口位置

embedded-linux - Yocto 中层和元数据之间的区别

linux - Linux中的进程终止通知