Ich versuche, den RGB-Wert eines Bildschirmpixel Tun zu lesen:glReadPixels mit Bildschirmpixel
#include "stdafx.h"
#include<windows.h>
#include<stdio.h>
#include <gl\GL.h>
int main(int argc, char** argv)
{
GLubyte color[3];
glReadPixels(800, 800, 1, 1, GL_RGB, GL_UNSIGNED_BYTE, &color);
printf("R:%d G:%d B:%d", color[0], color[1], color[2]);
while (1);
}
Aber es spielt keine Rolle, welche Koordinaten bitte ich um. Es gibt mir immer wieder R: 204 G: 204 B: 204
Was mache ich falsch?
Was versuchen Sie zu tun? Sie haben nicht einmal einen OpenGL-Kontext erstellt ... –
Ich versuche den RGB-Wert des Pixels in Position zu lesen x = 800 y = 800 – sergio
glReadPixels funktioniert nur in einem Bildschirm, dem ein OpenGL-Kontext zugeordnet ist. In den glReadPixels-Dokumenten gibt es einen Hinweis: "Werte für Pixel, die außerhalb des Fensters liegen, das mit dem aktuellen GL-Kontext verbunden ist, sind nicht definiert". Mit anderen Worten, Sie können nur sicher sein, dass Sie tatsächliche Pixelwerte erhalten, wenn Sie: 1. ein Fenster haben und 2. einen GL-Kontext damit verbunden haben. –