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

OpenGL Discussion :

Probleme de chargement d'une image avec opengl


Sujet :

OpenGL

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Mai 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Probleme de chargement d'une image avec opengl
    Bonjours a tous !
    Je cherche a effectuer le chargement d'une image en couleur avec opengl mais je n'arrive pas, j'ai un decalage des bits et je ne comprend pas d'ou ca viens.
    Merci de votre aide !!!

    voici l'image :

    voici mon code :

    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
    43
    44
    45
    46
    47
    48
    unsigned char*Bitmap::Open(char * filename, int * largeur, int * hauteur)
    {
    	FILE * file;
        long taille;
      	unsigned char * bmp;
    	struct
    	{
    		char type[2];
            int dim[2];
        } head;
     
     
    	file = fopen(filename,"rb");
        if (!file) return NULL;
     
     	fread(head.type,1,2,file);
    	if ((head.type[0]!='B') || (head.type[1] != 'M'))
        {  return NULL;  }
     
    	fseek(file,18,SEEK_SET);
    	fread(head.dim,sizeof(int),2,file);
     
      	*largeur = head.dim[0];
    	*hauteur = head.dim[1];
     
     	taille = head.dim[0]*head.dim[1]*3;
    	bmp = new unsigned char[taille];
    	//bmp = (char*) malloc(taille);
     
     
        if (!bmp)
        {  return NULL;  }
     
    	fseek(file,54,SEEK_SET);
    	fread(bmp,1,taille,file);
     
    	long k=0;
    	unsigned char t;
        while (k<taille)
        {
        t=*(bmp+k+2);
        *(bmp+k+2)=*(bmp+k);
        *(bmp+k)=t;
        k+=3;
        }
        fclose(file);
    	return bmp;
    }
    Images attachées Images attachées  

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Il faudrait voir comment tu génères ta texture à partir de ces données.

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Mai 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    bin c'est quand faite je ne gere pas encore la texture je crois.
    je sais pas vraiment comment m'y prendre. Je voulais juste afficher l'image et ensuite m'occuper des couleurs, mais apparement c'est beaucoup plus compliquer que se que je penser.
    Je voulais essayer en chargent le fichier avec fstream mais j'ai pas reussi.

  4. #4
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Bon ben alors... comment tu affiches ton image ?

  5. #5
    Membre émérite
    Avatar de Ti-R
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2003
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 683
    Points : 2 568
    Points
    2 568
    Par défaut
    Sinon regarde
    DevIL/OpenIL

    Qui va te simplifier la vie.

    Si cela ne te convient pas, une petite recherche dans le forum OpenGL "chargement image", devrait suffire à te combler

  6. #6
    Nouveau Candidat au Club
    Inscrit en
    Mai 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Je suis obligee de travailler avec opengl sur ce projet...
    Je vais regarder la FAQ !

    comment j'affiche mon image :

    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
    int main(int argc, char**argv)
    {
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB );
    glutInitWindowSize(400,400);
    glutInitWindowPosition (450, 300);  
    glutCreateWindow("Image");
    glClearColor(0,0,0,0);
    glShadeModel(GL_FLAT);
    BMP = new Bitmap("test.bmp");
    BMP->Parametres(&l,&h,&etatbmp);
    	if (!etatbmp) {  exit(1);  }
    glPixelStorei(GL_UNPACK_ALIGNMENT,1);
    glutDisplayFunc(display);
    glutReshapeFunc(reshape);
    glutKeyboardFunc (keyfunc); 
    glutMainLoop();
    return 0;
    }

  7. #7
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Ok, je pense que le plus simple, serait d'avoir ton programme entier ou du moins une version minimale, compilable...

    Car sinon, nous n'allons pas pouvoir dire grand chose,
    Jc

  8. #8
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Je suis obligee de travailler avec opengl sur ce projet...
    OpenGL ne fait pas le chargement d'images, alors de toute façon il faudra passer par autre chose. Autant que ce soit une bibliothèque complète qui marche, que du code que tu vas passer du temps à écrire et à déboguer.

  9. #9
    Membre émérite
    Avatar de Ti-R
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2003
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 683
    Points : 2 568
    Points
    2 568
    Par défaut
    Je suis obligee de travailler avec opengl sur ce projet...
    DevIl/OpenIL est fait pour openGL et Direct3D.

    Donc pas de problème !!

    Sinon la SDL à des fonctions très simples. (toujours pour OpenGL)

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    366
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 366
    Points : 440
    Points
    440
    Par défaut
    tu fait bien glPixelStorei(GL_UNPACK_ALIGNMENT,1);

    mais a priori apres le chargement de ta texture !!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    BMP = new Bitmap("test.bmp");

  11. #11
    Nouveau Candidat au Club
    Inscrit en
    Mai 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    c'est bon ca fonctionne, j'avais un probleme car je comprenais pas bien le format bitmap! Un "professeur" de l'universite m'a aider ! (j'ai eu du mal a lui expliquer le probleme mais bon maintenant c'est bon !)
    merci beaucoup
    Jily

  12. #12
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Pense à cliquer sur

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 avec FreeImage en C
    Par McBlender dans le forum Développement 2D, 3D et Jeux
    Réponses: 1
    Dernier message: 04/02/2008, 10h22
  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. Afficher une image avec opengl
    Par kmaniche dans le forum OpenGL
    Réponses: 4
    Dernier message: 07/02/2006, 09h04
  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