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 :

Comment afficher une image bitmap dans une fenêtre 2D ?


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Inscrit en
    Décembre 2004
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 5
    Par défaut Comment afficher une image bitmap dans une fenêtre 2D ?
    Bonjour,

    Je voudrais afficher une image bitmap dans une fenêtre 2D, parce qu'à terme je dois pouvoir aller modifier la valeur des pixels en cliquant dessus. Je code en C et avec Glut comme système de fenêtrage.

    J'arrive à réaliser de telles choses avec une image pgm en niveaux de gris, mais je n'ai sais pas comment m'y prendre avec une bmp : il existe une fonction glutBitmap, je crois, mais j'aimerais qu'on m'explique un peu comment elle fonctionne.

    Merci.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 36
    Par défaut
    A mon avis, ce serait encore plus simple si tu récupérais toi-même les valeurs de ton image bmp.

    Etudie le file format de bmp, et récupère les composantes RVB dans une matrice de la taille de ton image. On alors utilise la bibliothèque GD qui fait ça tout seul.
    Il ne te restera ensuite plus qu'à parcourir ta matrice pour afficher les pixels à l'écran en fonction des valeurs RVB que tu as récupérées.
    De plus, si ta fenetre est de la taille de ta matrice, un clic de souris en (i, j) te permettra directement d'accéder à la case (i, j) de ta matrice et de la modifier comme souhaité.

    Seb

  3. #3
    Nouveau membre du Club
    Inscrit en
    Décembre 2004
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 5
    Par défaut Merci
    Merci pour ta réponse : je commençais à croire que personne ne le ferait

    J'arrive à récupérer les valeurs rgb des pixels mais ensuite je n'arrive pas à me servir de glDrawPixels pour les afficher.
    Mais tes conseils m'encouragent à poursuivre dans cette voie...

    Encore merci.

    Minik.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 36
    Par défaut
    Pourquoi pas faire ça a la main non plus ? (au lieu de glDrawPixel)

    du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    DisplayPixel(int i, int j)
    {
      glColor3f(mat[i][j]->R, mat[i][j]->V, mat[i][j]->B);  //la couleur du pixel (i, j)
      glBegin(GL_POINT);  //tu dessines un point (donc un pixel)
      glVertex2i( i, j );  //que tu places à la position (i, j)
      glEnd();
    }
    Le code est surement pas adapté, mais c'est juste une idée...

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 108
    Par défaut
    Il vaut mieux dessiner un quad sur toute la surface de l'écran et de le texturer avec ton image. Par contre il faudra être en ortho et utiliser gluUnProject pour transfomer la position écran en prosition image. Après, tu n'as plus qu'à modifier la texture et le tour est joué.

  6. #6
    Rédacteur
    Avatar de bafman
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    2 574
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2003
    Messages : 2 574
    Par défaut
    et glutBitmap n'est pas du tout fait pour ca, ca affiche ce qu'ils appellent des bit map, c'est a dire des map de bits (on s'en serait douté ) qui ne sont en fait qu'un tableau deffinissant si un point de l'image est allumé ou pas (donc tu n'a que du noir et blanc, pas de couleurs...)

    ca fait un moment que les bitmap openGL ne sont plus utilisée...
    * Il est infiniment plus simple de faire rapidement un code qui marche que de faire un code rapide qui marche
    * pour faciliter les recherches, n'oubliez pas de voter pour les réponses pertinentes
    Mes articles

  7. #7
    Nouveau membre du Club
    Inscrit en
    Décembre 2004
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 5
    Par défaut :D
    Merci à tous les 3 !!

    J'ai suivi les conseils de Seb (afficher des points avec les composantes RVB des points de l'image) et ça marche exactement comme je le voulais

    Sinon, pour le quad texturé, j'y avais pensé, ça marche aussi (pour l'aspect) mais la, je peux aller modifier la valeur des pixels rien qu'en cliquant dessus : est ce aussi possible avec les textures ... ?

    Et, pour ce qui est des "bits maps", merci bafman pour ton explication CLAIRE : j'avoue que j'ai lu de la doc en anglais et je n'avais pas compris que ce n'était que des tableaux...

    Encore merci.

Discussions similaires

  1. Réponses: 33
    Dernier message: 30/01/2011, 19h17
  2. Réponses: 0
    Dernier message: 07/06/2009, 12h31
  3. Utilisation d'une image bitmap dans une DLL
    Par colorid dans le forum Débuter
    Réponses: 5
    Dernier message: 27/02/2009, 15h41
  4. Réponses: 4
    Dernier message: 19/06/2008, 15h41
  5. position dans une image (selection dans une image)
    Par kaiseresis dans le forum Images
    Réponses: 3
    Dernier message: 31/05/2008, 13h30

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