Получение RGB цветового пространства пикселей с помощью GDK с использованием C ++ - PullRequest
1 голос
/ 04 июля 2019

Я пытаюсь сделать снимок экрана с помощью GDK в c ++.Мне удалось сделать это и сохранить его в файл, но теперь мне нужно получить все значения пикселей в COLORSPACE RGB.Так, например, черный это 0 0 0, а белый это 255 255 255. В python я устанавливал COLORSPACE.RGB в pixbuffer так:

buf = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB,False,8,1,1)

А потом я рисовал / сохранял его и получал пиксели со значениями rgb, используя buf.get_pixels_array ()

Мне не удалось получитьЗначение RGB в C ++.Я использую 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();
...