[SDL] Obtener valores RGB y RGBA sin 32 bits

ALTAIR - altairdiv at hotmail.com
Sun Jul 16 01:25:29 PDT 2006


Estoy mirando en Internet y en manual de SDL y hay una cosa que no entiendo. 
Teniendo_

SDL_Surface *escenario;

Tanto si "escenario" es una surface en la que luego pintamos cosas como si 
cargamos una imagen en ella; ¿hay alguna forma de obtener los valores RGB y 
RGBA de una coordenada XY cualquiera, que no este necesariamente en 32 bit?.

Lo mas parecido que he encontrado en Internet es:

Uint32 get_pixel32( SDL_Surface *surface, int x, int y )
{
//Convert the pixels to 32 bit

Uint32 *pixels = (Uint32 *)surface->pixels;
//Get the requested pixel
return pixels[ ( y * surface->w ) + x ];
}


void put_pixel32( SDL_Surface *surface, int x, int y, Uint32 pixel )
{
//Convert the pixels to 32 bit

Uint32 *pixels = (Uint32 *)surface->pixels;

//Set the pixel
pixels[ ( y * surface->w ) + x ] = pixel;
}


Pero de esta forma lo que obtenemos, si lo he entendido bien, son los 
valores RGBA de unas coordenadas XY de una surface que esta a 32 bit.

Por tanto; asumiendo que la imagen tiene mas de 8 bit, y puede que tenga 
menos de 32 bit, ¿es posible obtener los RGB y RGBA de un pixel cualquiera 
de esa surface?

Por cierto, estoy usando SDL 1.2.9, la estable por aquel entonces.

Gracias.






More information about the SDL mailing list