使用C ++使用GDK获取像素RGB色彩空间

时间:2019-07-04 14:40:52

标签: c++ gtk rgb pixel gdk

我正在尝试使用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();

0 个答案:

没有答案