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

VB 6 et antérieur Discussion :

Sauver un graphe


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Mars 2011
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2011
    Messages : 54
    Par défaut Sauver un graphe
    Bonjour,


    Je voudrais sauver un graphe résultat d'un calcul VB6 ( picture x) sous forme d'une image Jpeg ou autre pour l'inclure dans un document.

    Merci de m'indiquer la procédure à suivre...

    nota : j'ai lu un post récent pour imprimer mais ce n'est pas mon cas

  2. #2
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 420
    Par défaut
    Citation Envoyé par MSDN pour VB6
    SavePicture, instruction

    Enregistre dans un fichier un élément graphique provenant des propriétés Picture ou Image d'un objet ou d'un contrôle qui lui serait associé.

    Syntaxe
    SavePicture picture, stringexpression
    La syntaxe de l'instruction SavePicture comprend les éléments suivants :
    Élément Description
    picture Contrôle Picture ou Image à partir duquel le fichier graphique doit être créé.
    stringexpression Nom du fichier graphique à enregistrer.

    Remarques
    Si un élément graphique a été chargé dans la propriété Picture d'un objet à partir d'un fichier, que ce soit au moment de la création ou à l' exécution, et si c'est un fichier bitmap ou icône, un métafichier ou un métafichier étendu, il est enregistré au même format que son fichier d'origine. Pour les fichiers GIF ou JPEG, il est enregistré en tant que fichier bitmap.
    Les éléments graphiques d'une propriété Image sont toujours enregistrés comme images bitmap (fichiers .bmp), quel que soit leur format d'origine.

    SavePicture, instruction, exemple

    L'exemple suivant utilise l'instruction SavePicture pour enregistrer un élément graphique dessiné dans la propriété Picture d'un objet Form. Pour tester cet exemple, collez le code dans la section des déclarations d'un objet Form, lancez l'exemple et cliquez sur l'objet Form.
    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
    Private Sub Form_Click ()
    ' Déclare les variables.
       Dim CX, CY, Limit,Radius as Integer, Msg as String
       ' Définit l'échelle en pixels.
       ScaleMode = vbPixels
       ' Active la propriété AutoRedraw.
       AutoRedraw = -True 
       ' Modifie la largeur pour qu'elle soit égale à la
       ' hauteur.
       Width = Height
       ' Définit la position sur l'axe des x
       CX = ScaleWidth / 2 
       ' Définit la position sur l'axe des y.
       CY = ScaleHeight / 2
       ' Limite la dimension des cercles.
       Limit = CX
       ' Définit le rayon.
       For Radius = 0 To Limit
          Circle (CX, CY), Radius, _
             RGB(Rnd * 255, Rnd * 255, Rnd * 255)
          ' Cède la main pour d'autres traitements.
          DoEvents
       Next Radius
       Msg = "Cliquez sur OK pour enregistrer l'élément"
       Msg = Msg & " graphique de cette feuille dans un"
       Msg = Msg & " fichier d'image bitmap."
       MsgBox Msg
       ' Enregistre l'image dans un fichier.
       SavePicture Image, "TEST.BMP" 
    End Sub
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

  3. #3
    Membre averti
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Mars 2011
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2011
    Messages : 54
    Par défaut
    Re Bonjour,

    Merci de ta réponse

    J'avais bien essayé avec ce code MSDN de récupérer l'image de mon graphe "picture1 /form1" mais sans succès d'où ma question.

    J'ai essayé de donner une adresse ou mettre ce fichier SavePicture Image, "C:\TEST.BMP" pas mieux. En fait je ne vois pas de référence à picture1 objet à récupérer ni d'adresse ou le fichier doit être stocké. Par contre si je laisse les lignes de codes relatives à Radius, il trace un cercle de couleur sur form1 et derrière picture1 ?


    En fait est-ce que je me suis bien exprimé ?
    mon code actuel me trace un graphe résultat du calcul effectué. La picturebox picture1 de la forme1 montre ce graphe. Je veux donc registrer une image bitmap ou Jpeg dans un fichier à une adresse donnée du contenu de cette picturebox.

  4. #4
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 420
    Par défaut
    La picturebox picture1 de la forme1 montre ce graphe
    Dans ce cas, ajoute un bouton de commande(CommandButton) sur Form1 puis ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Command1_Click()
        SavePicture Picture1.Image, "C:\TEST.BMP"
        ' ou encore
        '     SavePicture Picture1.Picture, "C:\TEST.BMP"
    End Sub
    Private Sub Picture1_Change()
        Command1.Enabled = Picture1.Picture <> 0
    End Sub
    Le graphique doit au préalable être tracé sur Picture1 et mets également la propriété Enabled de Command1 à False.
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

  5. #5
    Membre averti
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Mars 2011
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2011
    Messages : 54
    Par défaut
    Merci, ça commence à ressembler à ce que je recherche...

    - la formulation SavePicture Picture1.Image, "C:\TEST.BMP" ' me fait apparaitre mon graphe dans un .bmp, ouf !

    - Reste l'échelle qui n'est pas la bonne.

    * Est-ce que pour une image .bmp il faut au départ que le graphe soit dans un format donné ?

    * dans le code de l'exemple apparait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim CX, CY, Limit,Radius as Integer, Msg as String
       ' Définit l'échelle en pixels.
        ScaleMode = vbPixels
       ' Active la propriété AutoRedraw.
       AutoRedraw = -True 
       ' Modifie la largeur pour qu'elle soit égale à la
       ' hauteur.
       Width = Height
    etc.

    Est-ce qu'il faut alors redéfinir le format dans l'événement Private Sub Command1_Click()

  6. #6
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 420
    Par défaut
    Est-ce que pour une image .bmp il faut au départ que le graphe soit dans un format donné ?
    Non
    dans le code de l'exemple apparait.....
    Est-ce qu'il faut alors redéfinir le format dans la sub "Private Sub Command1_Click()"
    Non car c'était un code exemple.
    Reste l'échelle qui n'est pas la bonne
    Ajoute un autre contrôle PictureBox(Picture2) n'importe où sur Form1 avec les propriétés suivantes :
    - Très petite taille(150x150 par exemple)
    -Visible = False
    -AutoRedraw = True
    -ScaleMode doit être la même que pour Picture1
    -Remplace le code précédemment envoyé par celui-ci(Pour le bouton Command1) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub Command1_Click()
       With Picture2
        'On redimensionne Picture2 à 2 fois Picture1
         .Width = 2 * Picture1.Width: .Height = 2 * Picture1.Height
        ' On copie l'image de Picture1 dans Picture2 en doublant sa largeur et sa longueur
        .PaintPicture Picture1.Image, 0, 0, 2 * Picture1.Width, 2 * Picture1.Height, , , , , vbSrcCopy
        ' On enregistre l'image de Picture2
        SavePicture .Image, "C:\Test.bmp"
      End With
    End Sub
    J'ai choisi de dédoubler la taille mais tu peux utiliser d'autres valeurs pour Picture2 cible.
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

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

Discussions similaires

  1. Edition de graphe qui ne s'enregistre pas
    Par nenette69 dans le forum IHM
    Réponses: 1
    Dernier message: 11/03/2013, 22h21
  2. Réponses: 8
    Dernier message: 12/07/2012, 20h05
  3. récupération edit text pour graphe
    Par Allaedine dans le forum Interfaces Graphiques
    Réponses: 1
    Dernier message: 07/05/2012, 07h03
  4. Classe pour la création d'un graphe xy
    Par Bob dans le forum MFC
    Réponses: 24
    Dernier message: 03/12/2009, 17h20
  5. Image et rich edit
    Par :GREG: dans le forum C++Builder
    Réponses: 2
    Dernier message: 13/05/2002, 11h33

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