rgb-Werte einer Grafik

Previous topic - Next topic

Baggi

Hi,

super, das Forum funktioniert wieder.

Ich hab mal ne Frage zu rgb-Werten von Grafiken. Ich hätte gerne die rgb-Werte eines Bildes in einem N x 3 Array. Also für alle N Pixel einer Grafik jeweils die 3 Farbwerte.

Man kann sowas natürlich in GLBasic programmieren, indem ich das Bild von vorne bis hinten durchgehe und jeden Pixel nach seiner Farbe frage. Aber vielleicht gibt es sowas ja schon halbwegs vorgefertigt und Gernot könnte sowas einbauen als Befehl. Entweder direkt beim laden eines Bildes zB.
rgb_array=LOADSPRITE_RGB("bild.bmp")
oder vielleicht die rgb-Werte eines Bildausschnitts auf dem Schirm rgb_array=GETRGB(x,y,x+dx,y+dy).

Die Rücktransformation wäre auch nicht schlecht als ein einziger Befehl (geht aber natürlich auch über ne Schleife).

Also ich denke so ein Befehl ist sehr speziell und wahrscheinlich nicht unbedingt nötig, aber wie gesagt, vielleicht ist die Umsetzung ja ganz einfach ansonsten kann ich auch ohne leben ;) .

Nochwas, mIt SCREENSHOT (hab jetzt gerade nicht den ganuen Befehl) kann man ja den Bildschirminhalt auf Platte schreiben, geht das auch für einen Bildausschnitt?




Danke,
Baggi

Kitty Hello

Für einen Bildausschnitt nimmst Du GRABSPRITE und SAVESPRITE.
Die RGB auslesen ist net so einfach, weil ich mir die nach dem Laden nicht mehr merke. Man kann sie aber aus der/in die Grafikkarte schreiben:
http://www.glbasic.com/forum/viewtopic.php?pid=4031#p4031
Die Pixel bekommst Du mit
Code (glbasic) Select
glBindTexture(GL_TEXTURE_2D, id);
unsigned char* pixels = new unsigned char[sx*sy*4];
glGetTexImage(GL_TEXTURE_2D, 0, GL_BGRA_EXT, GL_UNSIGNED_BYTE, pixels);

Baggi

Hi Gernot,

die rgb-Werte aus der Grafikkarte hört sich genau richtig an, ist wahrscheinlich auch schnell, oder?

Aber leider läuft der Code von hier http://www.glbasic.com/forum/viewtopic.php?pid=4031#p4031
bei mir nicht.

Es gibt eine Fehlermeldung in dieser Zeile:
} // end namespace __GLBASIC__ - see manual for INLINE

Baggi