我正在尝试使用c ++中的GDK捕获某些屏幕。我设法做到了并将其保存到文件中,但是现在我需要获取COLORSPACE RGB中的所有像素值。因此,例如,黑色为0 0 0,白色为255 255 255。 在python中,我像这样在pixbuffer中设置了COLORSPACE.RGB:
buf = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB,False,8,1,1)
然后我正在绘制/保存它,并使用buf.get_pixels_array()获取具有rgb值的像素
我无法在c ++中获取rgb值。我正在使用gdk 2.0
GdkPixbuf *screenshot;
GdkWindow *wind = gdk_get_default_root_window();
GdkColormap *cm = gdk_drawable_get_colormap(wind);
screenshot = gdk_pixbuf_get_from_drawable(NULL, wind, cm, 0, 0, 0, 0, 500, 500);
gdk_pixbuf_save(screenshot, "ss.png", "png",NULL,NULL);
guchar *px = gdk_pixbuf_get_pixels(screenshot);
ofstream myfile;
myfile.open("px.txt");
myfile << px;
myfile.close();