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

Delphi Discussion :

Sauvegarder une scène GLScene sous forme d'une image


Sujet :

Delphi

  1. #1
    Membre à l'essai
    Homme Profil pro
    Ingénieur de déploiement réseaux
    Inscrit en
    Décembre 2013
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Ingénieur de déploiement réseaux
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2013
    Messages : 16
    Points : 14
    Points
    14
    Par défaut Sauvegarder une scène GLScene sous forme d'une image
    bonjour les amis
    je travaille avec glscene delphi ,je veux que faire une capture de mon scene et la sauvegarder sous forme d'image.s'il vous plait quelques idées peux m'aider

  2. #2
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 448
    Points
    28 448
    Par défaut
    regarde dans les sources de GLScene si tu vois quelque part glReadPixels qui permet de le faire, sinon tu le fais directement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    var
      Bitmap: TBitmap;
    begin
      Bitmap := TBitmap.Create;
      Bitmap.PixelFormat := pf32Bit;
      Bitmap.Width := ClientWidth;
      Bitmap.Height := ClientHeight;
      glReadPixels(0, 0, Bitmap.Width, Bitmap.Height, GL_RGBA, GL_UNSIGNED_BYTE, Bitmap.ScanLine[Bitmap.Height - 1]);
    end;

  3. #3
    Membre à l'essai
    Homme Profil pro
    Ingénieur de déploiement réseaux
    Inscrit en
    Décembre 2013
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Ingénieur de déploiement réseaux
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2013
    Messages : 16
    Points : 14
    Points
    14
    Par défaut
    dans ton code vous utilisez glReadPixels malgré n'est pas défini dans glscene ? je l'ai essayé mais pas de résultat

  4. #4
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 448
    Points
    28 448
    Par défaut
    Citation Envoyé par essof_salhi Voir le message
    dans ton code vous utilisez glReadPixels malegré n'est pas définit dans glscene?
    glReadPixels est une fonction de OpenGL, pas de GLScene...comme GLScene encapsule l'API OpenGL dans un modèle orienté objet, il est "possible" qu'une des classe de GLScene propose la copie d'écran.

    mais ce qui est bien avec OpenGL, c'est qu'à partir du moment ou il existe un contexte OpenGL initialisé quelque part dans le process (que ce soit avec GLScene ou autre) il est possible d'interagir avec lui.

    la fonction est déclarée dans l'unité OpenGL qu'il suffit d'ajouter à la clause Uses et le code devrait fonctionner.

    Citation Envoyé par essof_salhi Voir le message
    je l'ai essayé mais pas de résultat
    il peut ne pas compiler, provoquer une erreur ou retourner une image vierge, mais pas "pas de résultat"...

  5. #5
    Membre à l'essai
    Homme Profil pro
    Ingénieur de déploiement réseaux
    Inscrit en
    Décembre 2013
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Ingénieur de déploiement réseaux
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2013
    Messages : 16
    Points : 14
    Points
    14
    Par défaut
    merci infiniment paul mais voila la solution

    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
    implementation
     
    uses Unit1, Unit2,GLGraphics,GLUtils;
     
     
     
    procedure TForm5.BitBtn1Click(Sender: TObject);
    var
      bm : TBitmap;
      bmp32 : TGLBitmap32;
    begin
      bmp32:=GLSceneViewer1.Buffer.CreateSnapShot;
      try
        bm:=bmp32.Create32BitsBitmap;
        try
          SavePictureDialog1.DefaultExt := GraphicExtension(TBitmap);
          SavePictureDialog1.Filter := GraphicFilter(TBitmap);
          if SavePictureDialog1.Execute then
            bm.SaveToFile(SavePictureDialog1.FileName);
          finally
            bm.Free;
          end;
      finally
        bmp32.Free;
      end;
    end;

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 06/09/2012, 18h15
  2. [Débutant] sauvegarder le contenu d'un axis sous forme d'une image
    Par miss_angel dans le forum Images
    Réponses: 10
    Dernier message: 20/01/2011, 16h10
  3. [Toutes versions] Regrouper sous forme d'une seule chaine les résultats d'une requete
    Par dacid dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 22/09/2009, 09h39
  4. Exportation des données d'une base Oracle sous forms
    Par moezsokrati dans le forum Forms
    Réponses: 4
    Dernier message: 13/10/2005, 08h55
  5. créer une arborescence windows sous forme d'arbre java
    Par chupachoc dans le forum Composants
    Réponses: 3
    Dernier message: 01/10/2002, 16h48

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