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

GTK+ avec C & C++ Discussion :

modifier une image toutes les X secondes


Sujet :

GTK+ avec C & C++

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2007
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2007
    Messages : 58
    Points : 34
    Points
    34
    Par défaut modifier une image toutes les X secondes
    bonjour, je suis débutante avec GTK et je souhaiterai modifier l'image que j'affiche toutes les 1 seconde par exemple.
    le problème que je rencontre est qu'a chaque fois il me met la dernière image, je ne vois pas les autres.
    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
    49
    50
    51
    52
    53
    54
    55
    56
    57
    #include <stdlib.h>
    #include <stdio.h>
    #include <string.h>
    #include <gtk/gtk.h>
    #include <time.h>
    #include <conio.h>
     
     
    int main(int argc, char **argv)
    {
        // Variables 
        GtkWidget * MainWindow;//fenêtre principale
        GtkWidget *pVBox;      //container
        GtkWidget *pImage;     //image
        char montage[10], ci[5];//création du nom de l'image
        int i = 0,nbImages = 47;//création du nom de l'image
     
        // Initialisation de GTK+ 
        gtk_init(&argc, &argv);
     
        // Création de la fenêtre 
        MainWindow = gtk_window_new(GTK_WINDOW_TOPLEVEL);
        g_signal_connect(G_OBJECT(MainWindow), "delete-event", G_CALLBACK(gtk_main_quit), NULL);
     
        while(i<nbImages)
        {
           if(i != 0)      gtk_container_remove(GTK_CONTAINER(MainWindow), pVBox);
           //création du nom de l'image
           strcpy(montage,"montage");
           sprintf(ci,"%d",i);
           strcat(montage,ci);
           strcat(montage,".bmp");
     
           //incrémentation des images (1 sur 4 pour une plus grande fluidité)
           i+=4;    
     
           //création du container
           pVBox = gtk_hbox_new(FALSE, 0);
           gtk_container_add(GTK_CONTAINER(MainWindow), pVBox);
     
           // Chargement d'une image à partir d'un fichier 
           pImage = gtk_image_new_from_file(montage);
           //place les images de haut en bas
           gtk_box_pack_start(GTK_BOX(pVBox), pImage, FALSE, FALSE, 5);
     
           // Affichage  
           gtk_widget_show_all(MainWindow); 
           //attente
           _sleep(1);
        }
     
       gtk_main();
     
        // Fermeture de GTK+
        gtk_exit(EXIT_SUCCESS);
        return EXIT_SUCCESS;
    }
    merci pour votre aide

  2. #2
    Nouveau membre du Club
    Femme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2007
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2007
    Messages : 58
    Points : 34
    Points
    34
    Par défaut
    en continuant à chercher sur le net, j'ai vu cette ligne
    gtk_image_set_from_file(GTK_IMAGE(pImage),montage);
    qui permet de modifier une image.
    le problème est que lorsque je la met dans mon programme, il compile mais à l'exécution, il me met une erreur et me demande d'envoyer un rapport d'erreur.

    quelqu'un saurait-il pourquoi ça me fait ça?

    merci

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2007
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2007
    Messages : 58
    Points : 34
    Points
    34
    Par défaut
    j'avance petit à petit mais c'est pas encore ça!!
    j'ai initalisé le widget pImage à NULL et maintenant je n'ai plus de message d'erreur windows, c'est déjà ça!!
    par contre, aucune image ne s'affiche, même pas la dernière.

    je vous passe mon code, si quelq'un pouvait l'essayer. je suis sous devcpp et je code en c.
    merci
    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
    49
    50
    51
    52
    53
    54
    #include <stdlib.h>
    #include <stdio.h>
    #include <string.h>
    #include <gtk/gtk.h>
    #include <time.h>
    #include <conio.h>
     
     
    int main(int argc, char **argv)
    {
        // Variables 
        GtkWidget * MainWindow = NULL;//fenêtre principale
        GtkWidget *pImage = NULL;     //image
        char montage[10], ci[5];//création du nom de l'image
        int i = 0,nbImages = 47;//création du nom de l'image
     
        // Initialisation de GTK+ 
        gtk_init(&argc, &argv);
     
        // Création de la fenêtre 
        MainWindow = gtk_window_new(GTK_WINDOW_TOPLEVEL);
        gtk_window_set_title(GTK_WINDOW(MainWindow), "Tracking vidéo"); // Titre de la fenêtre
        gtk_window_set_default_size(GTK_WINDOW(MainWindow), 300, 500); // Taille de la fenêtre
        g_signal_connect(G_OBJECT(MainWindow), "delete-event", G_CALLBACK(gtk_main_quit), NULL);
     
        while(i<nbImages)
        {
          //création du nom de l'image
          strcpy(montage,"montage");
          sprintf(ci,"%d",i);
          strcat(montage,ci);
          strcat(montage,".bmp");
     
          //incrémentation des images (1 sur 4 pour une plus grande fluidité)
          i+=1;    
     
          // Chargement d'une image à partir d'un fichier 
          gtk_image_set_from_file(GTK_IMAGE(pImage),montage);
     
          //place les images dans la fenêtre
          gtk_container_add(GTK_CONTAINER(MainWindow), pImage);
     
          // Affichage  
          gtk_widget_show_all(MainWindow); 
          //attente
          _sleep(1);
        }
     
        gtk_main();
     
        // Fermeture de GTK+
        gtk_exit(EXIT_SUCCESS);
        return EXIT_SUCCESS;
    }
    j'aimerai comprendre pourquoi je n'ai pas une image différente qui s'affiche toutes les secondes. si quelqu'un a une idée, il est le bienvenue.

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 81
    Points : 39
    Points
    39
    Par défaut
    Salut,

    je ne vais certainement pas répondre a ta question comme tu le voudrais,
    mais pourquoi ne fait tu pas un gif animé avec toutes tes images ?

    C'est très simple a faire et ne bloque pas ton programme pendant 1 seconde a chaque image.

    Pou créer un gif animé avec toutes tes images je te conseil gimp, il n'y aurais pas pour plus de deux minutes, et ton code serais allégé et plus clair.
    Tu affiche ensuite ton image comme n'importe quelle image et elle s'anime.

    voilà, sinon moi aussi je suis débutant donc je ne peux pas répondre directement a ta question.

    Si l'idée te plaît et que tu veux des renseignements rapides pour créer des gif (si tu ne sais pas déjà le faire) je suis dans les parages.

  5. #5
    Nouveau membre du Club
    Femme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2007
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2007
    Messages : 58
    Points : 34
    Points
    34
    Par défaut
    merci de ta réponse
    le problème, c'est que je récupère ces images après les avoir traitées et je voudrais les afficher directement pour que ça ait l'air d'un film.
    je ne peux donc pas passer par un logiciel intermédiaire.

Discussions similaires

  1. [SDL 1.2] Afficher une image toutes les X secondes ?
    Par Odawin dans le forum SDL
    Réponses: 19
    Dernier message: 06/06/2013, 08h42
  2. Afficher une image toutes les 5 secondes
    Par Bois990 dans le forum Général JavaScript
    Réponses: 14
    Dernier message: 30/03/2012, 08h57
  3. Changer une image toutes les x secondes
    Par ApocKalipsS dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 11/02/2010, 17h02
  4. Modifier une structure toutes les secondes
    Par jmathon dans le forum Débuter
    Réponses: 1
    Dernier message: 20/10/2008, 14h49
  5. Afficher une image toutes les 20 secondes
    Par sab_etudianteBTS dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 16/02/2008, 18h27

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