OpenGL : redirection vers un fichier
Forum Programmation : OpenGL : redirection vers un fichier
TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique.
Pour obtenir de l'aide, inscrivez-vous gratuitement !
Salut,
je programme en C, en utilisant OpenGL, sous Dev C++ et j'aurais voulu savoir si quelq'un sait comment redirigé l'affichage de la fenetre vers un fichier.
Ce que je veux en fait, c'est ne pas afficher la fenetre, mais la redirigé dans un fichier jpeg par exemple, merci
pour lire le frame buffer:
Code :
|
voilà, ça met dans buffer les pixels, après pour l'enregistrement, il te faut une lib adaptée.
Merci CRicky, en fait je veux pouvoir stocké une prise d'ecran dans un fichier, j'ai trouvé ce code sur le net :
#include <stdio.h>
#include <stdlib.h>
#include <GL/glut.h>
#include <windows.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
void glScreenCapture(const char *filename) {
GLint viewport[4] ;
int l;
glGetIntegerv(GL_VIEWPORT, viewport) ;
int x=viewport[0], y=viewport[1] ;
int width=viewport[2], height=viewport[3] ;
unsigned int lineSize = width*3 ;
unsigned char *data ;
data = (unsigned char*) malloc( height*lineSize*sizeof(unsigned char) );
glReadBuffer(GL_FRONT) ;
glReadPixels(x, y, width, height, GL_RGB, GL_UNSIGNED_BYTE, data) ;
int fd = open(filename,O_CREAT) ;
char buffer[256] ;
sprintf(buffer, "P6\n%d %d\n255\n", width, height) ;
write(fd, buffer, strlen(buffer)) ;
for (l=height-1; l>=0; --l) {
unsigned char *ptr = data + l*lineSize ;
write(fd, ptr, lineSize) ;
}
close(fd) ;
free(data) ;
}
main(int argc, char** argv)
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB);
glutInitWindowSize(800,800);
int winid=glutCreateWindow("ma fenetre" );
glScreenCapture("ecran" );
glutMainLoop();
system("PAUSE" );
return 0;
}
Mais le fichier généré est vide, il fait 0octet.
Quelqu'un a une idée ?
Petit up
ça utilise bien glReadPixels ;-)
Sinon, moi j'utiliserais plutôt des fopen, fwrite, puis fflush et fclose, plutôt que ces fonctions.
Oui j'ai trouvé ce source grace à la fonction que tu ma dis, es que tu saurais pourquoi le fichier généré est vide ?
Il y a 2493 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.
