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

DevIL Discussion :

[devIL] iluGetImageInfo segmentation fault


Sujet :

DevIL

  1. #1
    Membre habitué
    [devIL] iluGetImageInfo segmentation fault
    Bonjour,

    A chaque jour son problème et aujourd'hui j'en ai un beau.
    Désireux de connaitre de manière dynamique la résolution des images qui me servent de sprite pour mon moteur 2D, j'utilise la librairie devIL qui avec la fonction iluGetImageInfo de récupérer ses précieuses informations.

    Seulement ça plante dans un joli segmentation fault lorsque je decide de remplir la structure.
    j'aimerais savoir si ça viendrais d'une incompréhension sur la façon d'user de la fonction ou d'une version de la librairie bugué.


    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    #include <iostream>
    #include <stdlib.h>
    #include <IL/ilu.h>
    #include <IL/il.h>
     
    using namespace std;
     
    int main(){
     
     iluInit();
     ilInit();
     
     short int reso[2] ;
     
     ILinfo info ;
     
     if (ilLoadImage("image/zelda.jpg") ==  IL_FALSE)  
    	 cout<<"Erreur La librarie Devil ne peu charger l'image "<<endl;
     else    cout<<"Charge avec succes"<<endl;
     
     
     
    //recupere les infos de l'image
     
    cout<<"AvantDeVIL"<<endl;
     
    iluGetImageInfo(&info); //PLANTE ICI
     
    cout<<"Entre2 DeVIL"<<endl;
     
    reso[1] = (short int)(info.Height) ; //y
    reso[0] = (short int)(info.Width) ; //x
     
    cout<<"Entre3 DeVIL"<<endl;
     
    cout<<"Resolution - X : "<<reso[0]<<endl;
    cout<<"Resolution - Y : "<<reso[1]<<endl;
     
    cout<<"Apres DeVIL"<<endl;
     
    return 0 ;
    }



    Si quelqu'un pouvait me dire ce qu'il va pas.
    Merci

  2. #2
    Membre habitué
    je met ceci a titre d'information si un jour prochain quelqu'un à le même problème.
    Si vous souhaitez récupérer les informations sur la résolutions de l'image, évitez cette fonctions qui à l'air encline au segmentation fault et faites plutot ceci :


    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if (ilLoadImage(path) ==  IL_FALSE)			
    	cout<<"Erreur La librarie Devil ne peu charger l'image : "<<nom_fichier<<" *classe image* à l'adresse : "<<path<<endl;
     
    reso[0] = (short int)ilGetInteger(IL_IMAGE_WIDTH); //X
    reso[1] = (short int)ilGetInteger(IL_IMAGE_HEIGHT); //Y


    Ca donne exactement les mêmes renseignements mais d'une manière qui à l'air d'être mieux supporté par le système.

###raw>template_hook.ano_emploi###