[C++]Recorrer imagen pixel por pixel con SDL

Iniciado por SrCooper, 6 Diciembre 2013, 16:43 PM

0 Miembros y 3 Visitantes están viendo este tema.

SrCooper

Buenos días a todos, he estado un tiempo programando con SDL y he llegado a un punto en el que me sería muy útil poder recorrer una imagen pixel por pixel y obtener la información del color de cada uno y en función de este hacer unas cosas u otras.

No tengo ni idea de como se hace, pero aquí os dejo un código de como tengo pensado implementarlo. Mi pregunta es básicamente si existe un equivalente a las funciones que me he inventado en el código y si es así, si se pueden usar con SDL.

Código (cpp) [Seleccionar]
void recorreImagen(SDL_Texture* image)
{
    int img_w, img_h;
   
    SDL_QueryTexture(image, NULL, NULL, &img_w, &img_h);
   
    for (int i = 0; i < img_w; i++){
        for (int u = 0; u < img_h; u++){

            // Funciones inventadas
            Pixel p = image->getPixel(i, u);
            SDL_Color color = p.getColor();

            if (color.r == 0xFF){
                //Haz algo
            }else{
                //Haz algo
            }
        }
    }
}


Un saludo y muchas gracias por adelantado

amchacon

Sinceramente te recomiendo que dejes la SDL, está muy anticuada y le faltan bastantes funciones  :silbar:

SFML sería la mejor opción.
Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar

SrCooper

La verdad es que llevo bastante tiempo usando SDL y es cierto que puede resultar un tanto tedioso en algunas ocasiones, pero yo creo que tan anticuado no está. Además sigue siendo usado en muchos proyectos comerciales y grandes videojuegos.

Respecto a SFML, te agradecería que me dijeses algunas ventajas que la hagan mejor que SDL a tu modo de ver, porque he estado informandome por ahí y estoy algo indeciso respecto a cambiar o no.

De todas maneras, ¿podrías escribir el código de como se resolvería mi problema usando SFML? Me vendría bien hacerme una idea.

Un saludo y gracias por todo

amchacon

Cita de: SrCooper en  6 Diciembre 2013, 22:53 PMRespecto a SFML, te agradecería que me dijeses algunas ventajas que la hagan mejor que SDL a tu modo de ver, porque he estado informandome por ahí y estoy algo indeciso respecto a cambiar o no.
A diferencia de SDL, está hecho en C++. Aunque también tiene versiones para C, Pyhton, Ruby...

Pero la mayor ventaja esque triplica las funciones de SDL. Tiene funciones para casi todo. No mucho tiempo pero el código que tú pides no es díficil.

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar

vangodp

Cambia a la SDL2.0, pero eso si esta echa en c. Trae muchas cosillas nuevas :D
Y es mas nueva que SFML  :silbar:

SrCooper

Cita de: vangodp en  7 Diciembre 2013, 01:02 AM
Cambia a la SDL2.0, pero eso si esta echa en c. Trae muchas cosillas nuevas :D
Y es mas nueva que SFML  :silbar:

Ya estoy usando SDL 2.0, pero aún así voy a probar SFML. SDL está muy bien pero no está orientada a objetos y eso hace más complicado su uso, a mi modo de ver.

De todas maneras, ¿alguien sabe como hacer lo que pido, aunque sea con SFML?

Un saludo y gracias por su atención.

ivancea96

Esto lo acabo de buscar en google, no se si te vale:

http://sdl.beuc.net/sdl.wiki/Pixel_Access

A lo mejor esa función te vale :o

SrCooper

Cita de: ivancea96 en  7 Diciembre 2013, 15:27 PM
Esto lo acabo de buscar en google, no se si te vale:

http://sdl.beuc.net/sdl.wiki/Pixel_Access

A lo mejor esa función te vale :o

Sí, creo que sí. Muchas gracias.

Un saludo

dato000

Cita de: amchacon en  6 Diciembre 2013, 23:12 PM
A diferencia de SDL, está hecho en C++. Aunque también tiene versiones para C, Pyhton, Ruby...

Pero la mayor ventaja esque triplica las funciones de SDL. Tiene funciones para casi todo. No mucho tiempo pero el código que tú pides no es díficil.



allegroboy detected  :laugh: :laugh: :laugh:

SDL2.0 es mucho más incompleto que SDL1.2.