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 :

Sauvegarder une image cairo avec gtk


Sujet :

GTK+ avec C & C++

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 9
    Points : 6
    Points
    6
    Par défaut Sauvegarder une image cairo avec gtk
    Bonjour,

    Je suis à la recherche d'une fonction qui pourrait sauvegarder mon image cairo que j'arrive à afficher.
    Voici en gros comment ma fonction marche:
    J'envoie la fenêtre sur laquelle je vais travailler et les coordonnées des points à tracer
    Puis je trace les courbes voulues.
    Et je quitte
    J'aimerais pouvoir enregistrer entre temps l'image tracée dans un format jpeg,pdf, png,gif.... "qu'importe"
    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
     
    void callback_expose_event(GtkWidget *widget,GdkEventExpose *event,gpointer pdata)
    {
        cairo_t *cr;
        COORDONNEES *coord=(COORDONNEES *) pdata;
     
        cr = gdk_cairo_create (widget->window);
     
     
        /* Trace les courbes selectionnees */
     
        /* Trace les angles et les cercles */
     
        cairo_destroy(cr);
    }
    Merci de votre aide

  2. #2
    Membre actif Avatar de Gamall
    Profil pro
    Étudiant ENSEA
    Inscrit en
    Août 2009
    Messages
    252
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant ENSEA

    Informations forums :
    Inscription : Août 2009
    Messages : 252
    Points : 221
    Points
    221
    Par défaut
    Il faut que tu utilises la fonction cairo_surface_write_to_png

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Je te remercie pour ta réponse.
    Cependant, j'avais déjà essayé cette fonction avec widget->window comme surface et cette fonction n'acceptait pas ce paramètre.
    Connait-tu un moyen d'esquiver cette erreur ou une autre fonction qui marche avec widget->window?

    Cordialement

  4. #4
    Membre actif Avatar de Gamall
    Profil pro
    Étudiant ENSEA
    Inscrit en
    Août 2009
    Messages
    252
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant ENSEA

    Informations forums :
    Inscription : Août 2009
    Messages : 252
    Points : 221
    Points
    221
    Par défaut
    Là t'essai de ranger des batavias dans une caisse à outil (ou l'inverse)

    La propriété "window" d'un GtkWidget, est un pointeur sur GdkWindow. Or la fonction demande un pointeur sur cairo_surface_t.
    Du coup, il faut que tu récupère une cairo_surface_t à partir d'un cairo_t, grâce à la fonction cairo_get_target

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Oui et encore tu est gentil pour les batavias, je pense que c'est pire que ca encore
    J'ai légerement du mal avoir tout ces "objets" , gtk,gdk, pango, cairo, pixmap, drawing area... c'est légèrement confus surtout le lien entre chaque.

    En tous cas, je te remercie, ca marche.

  6. #6
    Modérateur

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    1 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 395
    Points : 2 002
    Points
    2 002
    Par défaut
    ça ira beaucoup mieux avec GTK3, tout le graphisme se fera via cairo, une grosse partie de GDK deviendra transparente pour toi. Donc autant t'habituer à cairo

    http://blogs.gnome.org/otte/2010/07/...ering-cleanup/
    http://live.gnome.org/GnomeGoals/GDKtoCairo
    http://blogs.gnome.org/otte/2010/08/12/a-thank-you/

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

Discussions similaires

  1. sauvegarder une image traiter avec flash
    Par dawla123 dans le forum ActionScript 3
    Réponses: 3
    Dernier message: 20/05/2008, 11h21
  2. Réponses: 1
    Dernier message: 13/05/2008, 19h46
  3. Sauvegarder une image sous GTK+
    Par poukram13 dans le forum GTK+ avec C & C++
    Réponses: 2
    Dernier message: 20/06/2007, 14h41
  4. Sauvegarde une image jpeg avec la qualité
    Par morgan47 dans le forum VB.NET
    Réponses: 1
    Dernier message: 19/02/2007, 10h48
  5. Sauvegarder une image (.GIF/.JPG) avec CppWebBrowser
    Par Argol_Medusa dans le forum C++Builder
    Réponses: 12
    Dernier message: 12/12/2005, 11h27

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