Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: SrCooper en 6 Diciembre 2013, 16:43 pm



Título: [C++]Recorrer imagen pixel por pixel con SDL
Publicado por: SrCooper en 6 Diciembre 2013, 16:43 pm
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
  1. void recorreImagen(SDL_Texture* image)
  2. {
  3.    int img_w, img_h;
  4.  
  5.    SDL_QueryTexture(image, NULL, NULL, &img_w, &img_h);
  6.  
  7.    for (int i = 0; i < img_w; i++){
  8.        for (int u = 0; u < img_h; u++){
  9.  
  10.            // Funciones inventadas
  11.            Pixel p = image->getPixel(i, u);
  12.            SDL_Color color = p.getColor();
  13.  
  14.            if (color.r == 0xFF){
  15.                //Haz algo
  16.            }else{
  17.                //Haz algo
  18.            }
  19.        }
  20.    }
  21. }

Un saludo y muchas gracias por adelantado


Título: Re: [C++]Recorrer imagen pixel por pixel con SDL
Publicado por: amchacon en 6 Diciembre 2013, 20:48 pm
Sinceramente te recomiendo que dejes la SDL, está muy anticuada y le faltan bastantes funciones  :silbar:

SFML sería la mejor opción.


Título: Re: [C++]Recorrer imagen pixel por pixel con SDL
Publicado por: SrCooper en 6 Diciembre 2013, 22:53 pm
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


Título: Re: [C++]Recorrer imagen pixel por pixel con SDL
Publicado por: amchacon en 6 Diciembre 2013, 23:12 pm
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.
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.



Título: Re: [C++]Recorrer imagen pixel por pixel con SDL
Publicado por: 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:


Título: Re: [C++]Recorrer imagen pixel por pixel con SDL
Publicado por: SrCooper en 7 Diciembre 2013, 12:29 pm
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.


Título: Re: [C++]Recorrer imagen pixel por pixel con SDL
Publicado por: 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 (http://sdl.beuc.net/sdl.wiki/Pixel_Access)

A lo mejor esa función te vale :o


Título: Re: [C++]Recorrer imagen pixel por pixel con SDL
Publicado por: SrCooper en 7 Diciembre 2013, 17:37 pm
Esto lo acabo de buscar en google, no se si te vale:

http://sdl.beuc.net/sdl.wiki/Pixel_Access (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


Título: Re: [C++]Recorrer imagen pixel por pixel con SDL
Publicado por: dato000 en 7 Diciembre 2013, 18:47 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.