Estoy usando SDL + OpenGL y necesito guardar la imagen que hay en pantalla en jpg, o lo que sea, png, bmp, etc..
Existe alguna manera sencilla de hacerlo??
gracias a todos y un saludo
Si es guardar lo que estas renderizado tu mismo necesitas crear pbuffers que son como los render targets de direct3d, lo unico que tienes que mirar si tienes o no la extension.
pbuffers para que?
javiel: lo que puedes hacer es usar glReadPixels() para leer el contenido del framebuffer y guardarlo en una zona tuya de memoria. El siguiente paso sería volcarlo a disco en algún formato relativamente sencillo a mano (bmp, tga) o usando alguna librería externa para guardarlo en jpg, png etc.
En cone3d hay una función muy útil, la llamas y te guarda en un fichero (tga) la pantalla actual:
http://cone3d.gamedev.net/cgi-bin/index.pl...age=code/shotta
Aquí hay un ejemplo para guardarlo en tga.
No se si es el mismo que acaba de poner Ethernet.
Cita de: "marcode"Aquí hay un ejemplo para guardarlo en tga.
No se si es el mismo que acaba de poner Ethernet.
Es similar, quizás más completo y claro el que has puesto tú. Yo he usado el que he puesto yo y funciona perfectamente.
No se como funciona SDL+OGL. si realmente usas surfaces, o solo usas SDL para crear la pantalla a la que le pasas el contexto de ogl. En cualquier caso si finalmente trabajas con una surface como pantalla puedes usar la funcion SDL_SaveBMP que te pasa una surface a .bmp .
LinkSaludos!
DevIL hace todo ese trabajo por ti:
http://openil.sourceforge.net/te permite cargar varios tipos de imagenes.
además ha sido planeado para integrarse bien con opengl
y por si eso fuera poco, puedes guardar a varios formatos de imagen, asi como tomar Escrin Chots (ole)