gpt4 book ai didi

c++ - 如何将 XImage 保存为位图?

转载 作者:太空狗 更新时间:2023-10-29 12:07:41 25 4
gpt4 key购买 nike


我正在尝试创建将捕获桌面视频(帧)的 JNI C++ 库。第一步是简单地制作桌面屏幕截图。代码是:

#include <iostream>
#include <X11/Xlib.h>

using namespace std;

int main()
{
Display *display;
int screen;
Window root;
display = XOpenDisplay(0);
screen = DefaultScreen(display);
root = RootWindow(display, screen);
XImage *img = XGetImage(display,root,0,0,400,400,XAllPlanes(),ZPixmap);

if (img != NULL)
{
//save image here
}
return 0;
}

但是,如何将 img 保存为位图文件?因为目标库是 JNI - 它不能使用第三方库。 (据我了解)。
请帮忙。
谢谢。

最佳答案

为此,您必须为所有可能的 XImage 格式编写一个转换例程,或者至少为您的用户可能拥有的所有格式编写一个转换例程。

例如,参见开罗的 _get_image_surface():

如果您不能使用第三方库,您将不得不重新实现类似的东西。请注意,对于某些格式,它链接到 libpixman,因此代码比它在此处显示的还要复杂。

关于c++ - 如何将 XImage 保存为位图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4049877/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com