begin process at 2012 05 27 16:44:22
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

OpenGL

 > GL-SCRENSHOOT-TGA

GL-SCRENSHOOT-TGA


 Information sur la source

Note :
7,67 / 10 - par 6 personnes
7,67 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :OpenGL Niveau :Débutant Date de création :15/05/2004 Vu / téléchargé :2 573 / 185

Auteur : xarier

Ecrire un message privé
Site perso
Commentaire sur cette source (11)
Ajouter un commentaire et/ou une note

 Description

voila la fonction suivante sert pour faire des captures d'écran sous opengl et les enregistre sous format TGA.

vous pouvez l'inclure dans un evenement clique de touche par exemple F11 pour la capture d'ecran.

la source presente ici et mon ancien prog Electronic-Ball mais avec la fonction de capture ecran essayer la touche 5 :

*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* -

void MAKEPICTURE()
{
FILE * file;

//Cherche le nom a suavegarder soit PICTURE1 ou PICTURE2 [ de 1 jusqu'a 2000 ]
char filename[32];

for(int i=0; i<2000; i++)
{
sprintf(filename, "PICTURE%03d.tga", i);

//essey d'ouvrir ce fichier si c impossible alors en le crer pour sauvegarder l'image
file=fopen(filename, "rb");

if(!file)
{
break;
}

//sinon si le fichier existe alors en continue a chercher le suivant
fclose(file);


}


    /*Structure de des fichiers TGA*/
GLubyte TGAheader[12]={0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0}; // entete TGA non compresser
GLubyte infoHeader[6];

unsigned char * data=new unsigned char[4*WHIDTH*HEIGHT];


//Lire les donné depuis l'écran
glReadPixels(0, 0, WHIDTH, HEIGHT, GL_RGBA, GL_UNSIGNED_BYTE, data);

//les donné doivent etre au format RGB [ RED , GREEN , BLUE]
//echange le Blue et le Red
for(i=0; i<(int)WHIDTH*HEIGHT*4; i+=4)
{
//repete le XOR pour echangé les bytes 0 et 2
data[i] ^= data[i+2] ^= data[i] ^= data[i+2];
}

//ouvrir le fichier
file = fopen(filename, "wb");

//Enregistre l'entete
fwrite(TGAheader, 1, sizeof(TGAheader), file);

//Enregiste les entetes
infoHeader[0]=(WHIDTH& 0x00FF);
infoHeader[1]=(WHIDTH & 0xFF00) >> 8;
infoHeader[2]=(HEIGHT& 0x00FF);
infoHeader[3]=(HEIGHT & 0xFF00) >> 8;
infoHeader[4]=32;
infoHeader[5]=0;

//Enregi stre les info sur le header
fwrite(infoHeader, 1, sizeof(infoHeader), file);

//Enregistre l'image
fwrite(data, 1, WHIDTH*HEIGHT*4, file);

fclose(file);

}

*-*-*-*-*-*-*-*-*-*-*-* -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* -*-*-*-*-*-*-*-*-*-*-*-*-



 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip Source avec une capture REFLECTION D'OBJ (OPENGL)
Source avec Zip Source avec une capture ENVIRENEMENT MAPPING (OPENGL)
Source avec Zip Source avec une capture FEU D'ARTIFICE [OPENGL PARTICULES)
Source avec Zip HELO_DOS_INFO
Source avec Zip Source avec une capture Source .NET (Dotnet) PREMIERE APPLICATION.NET

 Sources de la même categorie

Source avec Zip Source avec une capture AFFICHER DES COURBES DE BEZIER par shorzy
Source avec Zip Source avec une capture BASE/MOTEUR 3D EN QT/OPENGL (COMPLET ET FONCTIONNEL!) POUR U... par envi33
Source avec Zip Source avec une capture CLASSE AVEC OPENGL - OBJETS 3D ET ANIMATIONS par rasta63
Source avec Zip Source avec une capture LETTRES 3D AVEC OPENGL ET QT par opossum_farceur
Source avec Zip CUBE 3D GLUT32 VC++ ET DEVC++ par bobby03

Commentaires et avis

Commentaire de LordBob le 16/05/2004 10:17:13

dommage que le exe que tu fournit avec le zip ne contienne pas le code pour la capture... ca aurrait été mieux que de devoir l'inclure nous meme (une mise a jour peut etre?)... sinon j'aime toujours autant tes sources et en plus je note chez toi une "amélioration", une "progression" de tes codes, et ca c'est bien !!!

Commentaire de Funto66 le 16/05/2004 11:21:03

C'est une source qui pourra s'avérer utile, genre si l'utilisateur veut enregistrer une capture d'écran de son jeu. Merci.

Commentaire de CRAzy-flaSH le 16/05/2004 19:15:19

Merci pour ta source, je l'ai testée dans mon projet OpenGL et elle marche très très bien ;)
Ca m'évite de devoir fouiller pour voir comment est fait un fichier TGA... (il faudra quand même que j'y passe un jour...).

Il y a juste un truc qui me perturbe...  Un fichier TGA qui est codé en 32bits ce n'est pas seulement pour la transparence ?  Pourquoi ne pas enregistrer en 24bits dans ce cas ?  Ca permettrait d'économiser un peu de place non ?

Enfin, quoi qu'il en soit, c'est très fonctionnel, bravo !

Commentaire de xarier le 16/05/2004 20:34:50

merci mais personellement j'ai lus un tutorial qui decrit comment realiser un fichier tga alors je l'ai traduit par mot :) mais moi aussi j'ai pas bien comprie le FORMAT TGA
mais je c que FUNTO PEUT NOUS AIDER CAR IL A UNE GRAND CONNAISSANCE DANS CE DOMAINE :)
Ok funto explique please :) mais moi j'ai juste creé la fonction pour la capture d'ecran
et merci a tous

Commentaire de Funto66 le 16/05/2004 23:50:00

Ouais une grande connaissance faut pas pousser lol
J'ai juste créé un loader (http://www.cppfrance.com/code.aspx?ID=21912) en utilisant la doc ici : http://www.csdn.net/Dev/Format/graphics/tga.htm
En fait le format TGA permet plusieurs "variantes", et cette page détaille l'organisation des fichiers RLE couleurs pleines et non compressés couleurs pleines, avec ou sans utilisation de "color map" (je sais pas traduire lol).

Si vous voulez tout savoir sur le format TGA c'est ici (http://www.csdn.net/Dev/Format/graphics/tga.htm).

Commentaire de Galmiza le 20/05/2004 21:09:23

Excellent programme !

Elle est cool la fonction glReadPixels !
Y a-t-il un equivalent pour directX ?
Ou alors comment acceder a la memoire de l'ecran ?

Sinon, effectivement, le programme est bien commenté et permet d'apprendre pas mal de chose sur le format tga.

Encore bravo !

Commentaire de xarier le 23/05/2004 20:53:08

merci !!!

Commentaire de 064242127 le 27/05/2004 17:37:50

c ziat di merci

Commentaire de Alucards le 07/09/2005 01:53:21

ben je dois pas etre doué car chez moi ca marche pas, :/
j'ai inclus la fonction a mon projet et quand je vais voir mon screenshot,
ben c'est tout gris je comprends pas,
si quelqu'un pouvais m'aider ca serait cool.

merci d'avance :)

Commentaire de Mattpbem le 23/11/2005 16:32:43

j'ai essayé le lien de funto et je tombe sur un site tout écris en japonais c'est normal ?
sinon merci pour la source je vais reexploiter les headers ^^

Commentaire de Funto66 le 17/12/2005 12:27:32

Non c'est pas normal...la page a disparu apparemment, dommage :(

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,406 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales