C++ 如何将XImage保存为位图?
C++ 如何将XImage保存为位图?,c++,linux,java-native-interface,x11,xlib,C++,Linux,Java Native Interface,X11,Xlib,我试图创建JNI C++库,它将捕获桌面视频(框架)。 第一步是简单地做一个桌面截图。代码是: #include <iostream> #include <X11/Xlib.h> using namespace std; int main() { Display *display; int screen; Window root; display = XOpenDisplay(0); sc
我试图创建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;
}
#包括
#包括
使用名称空间std;
int main()
{
显示*显示;
int屏幕;
窗根;
显示=xOpen显示(0);
屏幕=默认屏幕(显示);
根=根窗口(显示,屏幕);
XImage*img=XGetImage(display,root,0,0400400,XAllPlanes(),ZPixmap);
如果(img!=NULL)
{
//在此处保存图像
}
返回0;
}
但是,如何将img保存为位图文件?
因为目标库是JNI,所以它不能使用第三方库。(据我所知)。请帮忙
谢谢。要做到这一点,您必须为所有可能的XImage格式编写转换例程,或者至少为您的用户可能拥有的所有格式编写转换例程 例如,请参见开罗的_get_image_surface():