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.