IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement 2D, 3D et Jeux Discussion :

Chargement d'une image avec FreeImage en C


Sujet :

Développement 2D, 3D et Jeux

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 10
    Points : 4
    Points
    4
    Par défaut Chargement d'une image avec FreeImage en C
    Bonjour je cherche a charger une image avec FreeImage comme texture et la mapper sur un object.J'ai ecris une fonction qui me charge la texture et quand je lance le programme aucune texture apparait ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
        FreeImage_Initialise(TRUE);
        glMatrixMode(GL_PROJECTION);
    	FREE_IMAGE_FORMAT fifmt = FreeImage_GetFileType("Uvtest.png", 0);
    	FIBITMAP *dib = FreeImage_Load(fifmt,"Uvtest.png",0);
    	// Aucune garanti que l'image soit charger en GL_RGB donc on force FI
    	// a convertir l'image en GL_RGB
     
        dib = FreeImage_ConvertTo32Bits(dib);
        glGenTextures( 1, &g_textureID );
    	glBindTexture( GL_TEXTURE_2D, g_textureID );
    	glTexParameteri( GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER, GL_LINEAR );
        glTexParameteri( GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER, GL_LINEAR );
        // FreeImage charge les images au format BGR donc on echange 
        // la composante B et R non meme on fait donc les allocation necessaire
        BYTE *bits = malloc( FreeImage_GetWidth(dib) * FreeImage_GetHeight(dib) * 3 );
        BYTE *pixels = (BYTE*)FreeImage_GetBits(dib);
        int pix;
        		for(pix=0; pix<FreeImage_GetWidth(dib) * FreeImage_GetHeight(dib); pix++)
    		{
    			bits[pix*3+2]=pixels[pix*3+2];
    			bits[pix*3+1]=pixels[pix*3+1];
    			bits[pix*3+0]=pixels[pix*3+0];
     
    		}
        glTexImage2D( GL_TEXTURE_2D, 0, 3, FreeImage_GetWidth(dib), FreeImage_GetHeight(dib), 0,GL_RGB, GL_UNSIGNED_BYTE,  bits);
        FreeImage_Unload(dib);
        glBindTexture( GL_TEXTURE_2D, g_textureID );
    Merci a tous ceux qui me repondront

  2. #2
    Membre averti
    Homme Profil pro
    Game Graphics Programmer
    Inscrit en
    Août 2006
    Messages
    408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Game Graphics Programmer
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 408
    Points : 392
    Points
    392
    Par défaut
    pourquoi tu appelles FreeImage_Unload en milieu de programme?
    Et est-ce que tu fais un rendu d'une primitive sur laquelle appliquer la texture? Il me semble que non...
    J'espère que ca répond à ta question...

Discussions similaires

  1. Erreur TileNotCached lors du chargement d'une image avec WMS-C
    Par Hadrien29 dans le forum IGN API Géoportail
    Réponses: 2
    Dernier message: 22/06/2010, 11h25
  2. Chargement d'une image dans une Galerie photo avec Javascript
    Par zintelix3d dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 16/02/2009, 10h59
  3. chargement d'une image avec java
    Par mona_81 dans le forum Interfaces Graphiques en Java
    Réponses: 5
    Dernier message: 23/07/2007, 00h54
  4. Probleme de chargement d'une image avec opengl
    Par JilyJ dans le forum OpenGL
    Réponses: 11
    Dernier message: 30/05/2007, 14h11
  5. Chargement d'une image avec evc4.0
    Par gids01 dans le forum MFC
    Réponses: 1
    Dernier message: 14/11/2005, 20h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo