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+ Discussion :

Exporter l'image d'un GtkAda.Canvas


Sujet :

GTK+

  1. #1
    Invité
    Invité(e)
    Par défaut Exporter l'image d'un GtkAda.Canvas
    Bonjour,

    J'utilise un canevas pour dessiner un graphe de dépendance, et je souhaiterais exporter l'image final du canevas en format image.

    Est-ce possible auriez vous des info sur la méthode à adopter ?

    Merci.

  2. #2
    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
    Par défaut
    Bonjour,

    Tu dois récupérer le GdkWindow correspondant à ton image, en extraire le GdkPixbuf correspondant et l'enregistrer avec Gdk.Pixbuf.save.

    C'est la même technique que pour une capture d'écran. Voici un exemple de capture d'écran en GTK et python que tu pourras adapter.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Merci libreforce.


    Comme ceci j'aurais bien toute l'image du canvas, même ce qui est hors écran ?

  4. #4
    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
    Par défaut
    Tu veux dire, tout ton canevas même s'il la fenêtre est coupée par un bord de l'écran? J'aurais tendance à dire que oui, mais il faut réellement tester pour le savoir...

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par liberforce Voir le message
    Tu veux dire, tout ton canevas même s'il la fenêtre est coupée par un bord de l'écran? J'aurais tendance à dire que oui, mais il faut réellement tester pour le savoir...
    Non, j'ai bien toute ma fenêtre à l'écran, mais pas tout le canevas.

  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
    Par défaut
    Bon, alors c'est que je en comprends pas ce que tu entends par canevas... Tu parles des décorations de fenêtre ?

  7. #7
    Invité
    Invité(e)
    Par défaut
    C'est un dérivé de Gtk_Drawing_Area_Record.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    package Gtkada.Canvas is
     
       type Interactive_Canvas_Record is new
         Gtk.Drawing_Area.Gtk_Drawing_Area_Record with private;
     
    ...

  8. #8
    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
    Par défaut
    C'est une classe spécifique à GtkAda, elle n'existe pas dans les autres versions, donc je ne vais pas pouvoir t'aider sur ce point...

  9. #9
    Invité
    Invité(e)
    Par défaut
    Merci liberforce

    Je vais tester.

  10. #10
    Membre actif Avatar de poincare
    Homme Profil pro
    Architecte technique
    Inscrit en
    Mai 2007
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 48
    Par défaut Exporter un Canvas avec GTKAda en utilisant Cairo
    Bonjour

    En complément de ce qui a déjà été écrit, il me semble que la bibliothèque Cairo permet d'exporter une image au format PNG :

    Area : Gtk.Drawing_Area.Gtk_Drawing_Area;
    Win : constant Gdk.Window.Gdk_Window := Get_Window (Area);

    Dans le package Gdk.Cairo, il y a des primitives permettant de creer des objets Cairo à partir des pixmap/pixbuff.

    procedure Set_Source_Pixmap
    (Cr : Cairo_Context;
    Pixmap : Gdk_Pixmap;
    Pixmap_X : Gdouble;
    Pixmap_Y : Gdouble);
    -- Sets the given pixmap as the source pattern for the Cairo context.

  11. #11
    Invité
    Invité(e)
    Par défaut
    Bonjour, merci poincare
    Pour le moment j'exporte un jpeg avec Gdk.Pixbuf.save.
    Je n'ai pas encore essayer d'enregistré au delà de la fenêtre, mais je testerais également cette solution.

Discussions similaires

  1. Exportation en image
    Par sinicha dans le forum Flash
    Réponses: 2
    Dernier message: 28/01/2007, 14h42
  2. [WinDev 9] Exportation d'image à partir d'une Bdd HF
    Par Romanops dans le forum WinDev
    Réponses: 8
    Dernier message: 05/12/2006, 01h03
  3. Exportation d'image d'une base 4D compilé
    Par PacoBrown dans le forum 4D
    Réponses: 2
    Dernier message: 08/06/2006, 08h45
  4. [Tkinter] Insérer une image jpg sur un canvas avec PIL
    Par Kyojimbo dans le forum Tkinter
    Réponses: 2
    Dernier message: 23/02/2006, 16h46
  5. [canvas] exporter en image
    Par Invité(e) dans le forum Composants
    Réponses: 3
    Dernier message: 25/01/2004, 11h03

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