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 :

[Python] Chargement et affichage d'une image


Sujet :

OpenGL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 119
    Points : 106
    Points
    106
    Par défaut [Python] Chargement et affichage d'une image
    Slt,

    Le titre parle de lui-même.
    Je voudrai connaitre les outils OpenGL pour afficher une image bitmap (au préalable il faudra que je la charge - Python - mais sa si vous ne savez pas j'irai me renseigner ailleurs)

    Merci

  2. #2
    Expert confirmé
    Avatar de shenron666
    Homme Profil pro
    avancé
    Inscrit en
    Avril 2005
    Messages
    2 527
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : avancé

    Informations forums :
    Inscription : Avril 2005
    Messages : 2 527
    Points : 5 195
    Points
    5 195
    Par défaut
    tu peux :

    -afficher ton image en brut avec glDrawPixels -> lent donc pas pour s'amuser avec du temps réel

    -ou alors en faire une texture, ton image doit alors être de dimensions puissance de 2 (sinon il faut la découper, voir http://www.developpez.net/forums/vie....php?t=476225)
    et dans ce cas tu te sert de glVertex et glTexCoord pour l'afficher

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 119
    Points : 106
    Points
    106
    Par défaut
    J'ai un exemple de texturage dans mon code mais le bitmap est monochrome c pas nécessaire qu'il le soit pour faire une texture ??

  4. #4
    Expert confirmé
    Avatar de shenron666
    Homme Profil pro
    avancé
    Inscrit en
    Avril 2005
    Messages
    2 527
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : avancé

    Informations forums :
    Inscription : Avril 2005
    Messages : 2 527
    Points : 5 195
    Points
    5 195
    Par défaut
    il faut que ton bitmap soit d'un format connu par OpenGL (voir glTexImage2D) sinon il faudra convertir

  5. #5
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Points : 9 860
    Points
    9 860
    Par défaut
    Bonjour,

    arretez moi si je dis une bétise, mais ne faut il pas dabord mettre l'image dans un glubytes avant de la faire afficher par gldrawpixel ?

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 119
    Points : 106
    Points
    106
    Par défaut
    Pour l'instant je vais essayer avec les textures.

    Est-ce que le format .bmp est reconnu ??
    Normalement oui puisque mon exemple se fait ac un .bmp monochrome, je pense pas que le fait qu'il soit en couleur change qqchose. Non ??

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    glTexImage2D(GL_TEXTURE_2D, 0, 4, taille_x, taille_y, 0, GL_RGB, GL_UNSIGNED_BYTE, image)
    Ces paramètres sont-ils correct ??

  7. #7
    Expert confirmé
    Avatar de shenron666
    Homme Profil pro
    avancé
    Inscrit en
    Avril 2005
    Messages
    2 527
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : avancé

    Informations forums :
    Inscription : Avril 2005
    Messages : 2 527
    Points : 5 195
    Points
    5 195
    Par défaut
    non, ils ne sont pas corrects vis à vis de ce que t udisais à propos de ton image

    pour commencer, opengl ne sait pas lire des images, il faut que tu la charge et que tu passes un tableau contenant les informations des pixels (le dernier paramètre de glTexImage2D)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    glTexImage2D(GL_TEXTURE_2D, 0, 4, taille_x, taille_y, 0, GL_RGB, GL_UNSIGNED_BYTE, image)
    9 paramètres :
    -1er : GL_TEXTURE_2D : ok
    -2ème : 0 : ok
    -3ème : 4 composantes = rouge, vert, bleu, alpha, c'est pas monochrome déjà, à ma connaissance OpenGL ne gère pas les textures monochromes, il faut la convertir en niveaux de gris
    -4ème : taille_x : ok
    -5ème : taille_y : ok
    -6ème : 0 : ok, pas de bordure
    -7ème : GL_RGB : comme pour le 3ème, tu définis l'image en rouge, vert, bleu, ou est passé l'alpha ?
    -8ème : GL_UNSIGNED_BYTE défini le contenu du 9ème paramètre
    -9ème : qu'est-ce que "image" ? si c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GL_UNSIGNED_BYTE* image
    alors c'est bon
    sinon, c'est pas bon

    pour conclure, je me répète mais, tu dois convertir ton image monochrome au moins en niveaux de gris, auquel cas tu pourras utiliser glTexImage2D comme suis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    glTexImage2D(GL_TEXTURE_2D, 0, 1, taille_x, taille_y, 0, GL_LUMINANCE, GL_UNSIGNED_BYTE, image)

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 119
    Points : 106
    Points
    106
    Par défaut
    Je fais déjà l'affichage d'une image monochrome, le problème n'est pas là.
    Ce que je souhaite faire maintenant, c'est affiché une image couleur bitmap.
    J'ai fait qq recherche et est-ce que pour un .bmp je doit mettre ça ??

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    glTexImage2D(GL_TEXTURE_2D, 0, 4, ix, iy, 0, GL_COLOR_INDEX, GL_BITMAP, image)
    J'utilise le langage Python donc mes variables n'ont pas de type explicite.

  9. #9
    Expert confirmé
    Avatar de shenron666
    Homme Profil pro
    avancé
    Inscrit en
    Avril 2005
    Messages
    2 527
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : avancé

    Informations forums :
    Inscription : Avril 2005
    Messages : 2 527
    Points : 5 195
    Points
    5 195
    Par défaut
    Citation Envoyé par Corpio
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    glTexImage2D(GL_TEXTURE_2D, 0, 4, ix, iy, 0, GL_COLOR_INDEX, GL_BITMAP, image)
    J'utilise le langage Python donc mes variables n'ont pas de type explicite.
    si ton image est en couleurs indexées (256 couleurs) alors GL_COLOR_INDEX est approprié
    pour les images en 24 ou 32 bits, c'est GL_RGB, GL_RGBA, ect

    et GL_BITMAP n'est pas un type OpenGL connu

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 119
    Points : 106
    Points
    106
    Par défaut
    C'est bon j'ai réglé le problème, j'avais des problèmes d'affichage parcequ'il manquait des paramètres pour le texturage.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        glPixelStorei(GL_UNPACK_ALIGNMENT,1)
        glTexImage2D(GL_TEXTURE_2D, 0, 3, ix, iy, 0, GL_RGB, GL_UNSIGNED_BYTE, image)
        glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST)
        glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST)
        glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL)

  11. #11
    Expert confirmé
    Avatar de shenron666
    Homme Profil pro
    avancé
    Inscrit en
    Avril 2005
    Messages
    2 527
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : avancé

    Informations forums :
    Inscription : Avril 2005
    Messages : 2 527
    Points : 5 195
    Points
    5 195
    Par défaut
    yeah c'est mieux comme code ça

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. affichage d'une image svg en python
    Par maissaab dans le forum Calcul scientifique
    Réponses: 1
    Dernier message: 14/04/2011, 08h02
  2. Chargement et affichage d'une image
    Par rin01 dans le forum OpenCV
    Réponses: 1
    Dernier message: 13/11/2008, 14h07
  3. affichage d'une image à la fin de son chargement
    Par Invité dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 23/05/2008, 19h39
  4. Affichage d'une image pendant le chargement
    Par abbd dans le forum Windows Forms
    Réponses: 3
    Dernier message: 25/04/2008, 21h34
  5. affichage d'une image apres le chargement de la page
    Par Krubi dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 27/04/2006, 16h44

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