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

Tkinter Python Discussion :

Traitement d'une entrée [Python 3.X]


Sujet :

Tkinter Python

  1. #1
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 608
    Points : 2 072
    Points
    2 072
    Par défaut Traitement d'une entrée
    Bonjour,

    J'ai réalisé quelques opérations de traitement d'image et j'aimerais passer cela en tkinter.
    tkinter ne peut pas afficher les jpg, d'après ce que j'ai compris.
    Je passe donc les images en gif

    Dans le code suivant :
    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
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    from PIL import Image as Im
    import os
    from tkinter import Entry, Label, Tk
    from tkinter import Canvas, PhotoImage, Button
     
    def jpg_gif(nom1,nom2):
        """ 
        conversion de format, par exemple jpg en gif
        """
        os.system('convert %s %s' % (nom1,nom2))
     
    def negatif_couleur(image1):
        """
        conversion couleur en négatif couleur, donc avec 3 canaux
        """
        image2 = Im.new('RGB',(largeur,hauteur))
        for colonne in range(largeur):
            for ligne in range(hauteur):
                pixel=image1.getpixel((colonne,ligne))
                rouge = 255 - pixel[0]
                vert = 255 - pixel[1]
                bleu = 255 - pixel[2]
                image2.putpixel((colonne,ligne),(rouge,vert,bleu))
        return(image2)
     
    def conv_negatif_couleur():
        """ conversion négatif couleur puis conversion de format
        pour avoir les aperçus dans tkinter"""
        res = negatif_couleur(mon_image)
        res.save(cible_jpg)
        jpg_gif(source_jpg,source_gif)
        jpg_gif(cible_jpg,cible_gif)
     
     
    fen1 = Tk()
     
    # création de widgets 'Label' et 'Entry' :
    txt1 = Label(fen1, text ='Nom de fichier (sans extension)')
    entr1 = Entry(fen1)
    # Mise en page entr1
    txt1.grid(row =1, column=1, sticky ='EW')
    entr1.grid(row =1, column =2)
     
    #champ 2
    txt2 = Label(fen1, text ='Extension')
    entr2 = Entry(fen1)
    # Mise en page entr2
    txt2.grid(row =2, column=1, sticky ='EW')
    entr2.grid(row =2, column =2)
     
    #nom_fich=entr1.get()
    #nom_ext = entr2.get()
    nom_fich = 'lena'
    nom_ext = 'jpg'
    ext1 = '.jpg'
    ext2 = '.gif'
    nom_fichier = nom_fich + '.' + nom_ext
    source_jpg = nom_fich + ext1
    source_gif = nom_fich + ext2
    cible_jpg = nom_fich + 'conv' + ext1
    cible_gif = nom_fich + 'conv' + ext2
     
    mon_image = Im.open(source_jpg)
    largeur,hauteur = mon_image.size
     
    ## Bouton pour convertir
    Button(fen1,text='Négatif couleur',command=conv_negatif_couleur).grid(row=3 , column=1) 
     
    # création d'un widget 'Canvas' contenant les images gif :
    can1 = Canvas(fen1, width =160, height =160, bg ='white')
    photo1 = PhotoImage(file = source_gif)
    image1 = can1.create_image(80, 80, image =photo1)
    can2 = Canvas(fen1, width =160, height =160, bg ='white')
    photo2 = PhotoImage(file = cible_gif)
    image2 = can2.create_image(80, 80, image =photo2)
     
    can1.grid(row =1, column =3, rowspan =3, padx =10, pady =5)
    can2.grid(row =1, column =4, rowspan =3, padx =10, pady =5)
     
    # fermeture
    Button(fen1,text='Quitter',command=fen1.destroy).grid(row=4, column=1) 
    # démarrage :
    fen1.mainloop()
    Tout fonctionne.
    Lorsque je commente / décommente les lignes 51 à 54 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    #nom_fich=entr1.get()
    #nom_ext = entr2.get()
    nom_fich = 'lena'
    nom_ext = 'jpg'
    cela ne fonctionne plus.

    J'ai le message suivant (ligne 69 non réelle, en fait 63) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
      File "/media/marco3/Données 1,9To/Informatique/python_marco/tkinter/tk-photo_inter.py", line 69, in <module>
        mon_image = Im.open(source_jpg)
     
      File "/usr/lib/python3/dist-packages/PIL/Image.py", line 1991, in open
        fp = builtins.open(fp, "rb")
     
    FileNotFoundError: [Errno 2] No such file or directory: '.jpg'
    Je subodore un souci de variable globale mais j'ai du mal à me dépatouiller.
    Si quelqu'un peut me donner un coup de main, sachant que ma connaissance de tkinter est proche du niveau zéro...
    Bon dimanche
    Pas d'aide par mp.

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Salut,

    Je suppose que si tu fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    nom_fich=entr1.get()
    nom_ext = entr2.get()
    alors que tu n'as pas fini de construire ta fenêtre, nom_fich est égal à ''.

    C'eût été mieux d'avoir une erreur, mais bon.

    Ceci explique donc:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    FileNotFoundError: [Errno 2] No such file or directory: '.jpg'

  3. #3
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 608
    Points : 2 072
    Points
    2 072
    Par défaut
    Merci VinsS.
    En fait, après quelques recherches, je ne comprends toujours pas.
    Je ne vois pas où je peux mettre ces lignes pour que cela fonctionne.
    Pas d'aide par mp.

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Salut,

    Citation Envoyé par marco056 Voir le message
    Je ne vois pas où je peux mettre ces lignes pour que cela fonctionne.
    Vous pensez programmation séquentielle alors qu'avec un GUI tel que Tk, on doit programmer piloté par les événements.
    Ajoutez un Bouton qui lorsqu'on clique dessus ira récupérer les chaînes de caractères que l'utilisateur a mis dans entr1 et entr2.
    Le chapitre 10 du Swinnen explique tout cela fort bien.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Et bien peut-être qu'en ajoutant un bouton à la suite de ton entry pour lancer le processus de conversion de l'image ce sera le plus simple.

    Quand on clique sur ce bouton, une fonction est appelée, elle relève le contenu de l'entry, vérifie l'existence du fichier (os.path.isfile() et puis lance le travail.

    Mais il faut clairement que ta fenêtre soit affichée avant de faire quoi que ce soit avec les widgets.

  6. #6
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 608
    Points : 2 072
    Points
    2 072
    Par défaut
    Ok, merci bien.
    J'avoue ne pas avoir trop de temps pour potasser bien le Swimmen.
    Je regarde cela et je reviens ce soir vous dire quoi
    Pas d'aide par mp.

  7. #7
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 608
    Points : 2 072
    Points
    2 072
    Par défaut
    Bon, grâce à votre aide, j'ai réussi à avancer.

    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
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    from PIL import Image as Im
    import os
    from tkinter import Entry, Label, Tk
    from tkinter import Canvas, PhotoImage, Button
     
    def recup():
    #    nom_fich = 'lena'
    #    nom_ext = 'jpg'
        nom_fich=entr1.get()
        nom_ext = entr2.get()
        ext1 = '.jpg'
        ext2 = '.gif'
        global cible_jpg, cible_gif
        global source_jpg, source_gif
        nom_fichier = nom_fich + '.' + nom_ext
        source_jpg = nom_fich + ext1
        source_gif = nom_fich + ext2
        cible_jpg = nom_fich + 'conv' + ext1
        cible_gif = nom_fich + 'conv' + ext2
        global mon_image, largeur, hauteur
        mon_image = Im.open(source_jpg)
        largeur,hauteur = mon_image.size
        # print(nom_fichier)
     
    def jpg_gif(nom1,nom2):
        """ 
        conversion de format, par exemple jpg en gif
        """
        os.system('convert %s %s' % (nom1,nom2))
     
    def negatif_couleur(image1):
        """
        conversion couleur en négatif couleur, donc avec 3 canaux
        """
        image2 = Im.new('RGB',(largeur,hauteur))
        for colonne in range(largeur):
            for ligne in range(hauteur):
                pixel=image1.getpixel((colonne,ligne))
                rouge = 255 - pixel[0]
                vert = 255 - pixel[1]
                bleu = 255 - pixel[2]
                image2.putpixel((colonne,ligne),(rouge,vert,bleu))
        return(image2)
     
    def conv_negatif_couleur():
        """ conversion négatif couleur puis conversion de format
        pour avoir les aperçus dans tkinter"""
        res = negatif_couleur(mon_image)
        res.save(cible_jpg)
        jpg_gif(source_jpg,source_gif)
        jpg_gif(cible_jpg,cible_gif)
     
    def rafraichissement():
        can1 = Canvas(fen1, width =160, height =160, bg ='white')
        if os.path.isfile(source_gif) == True:
            photo1 = PhotoImage(file = source_gif)
            image1 = can1.create_image(80, 80, image =photo1)
        can2 = Canvas(fen1, width =160, height =160, bg ='white')
        if os.path.isfile(cible_gif) == True:
            photo2 = PhotoImage(file = cible_gif)
            image2 = can2.create_image(80, 80, image =photo2)
        can1.grid(row =1, column =3, rowspan =3, padx =10, pady =5)
        can2.grid(row =1, column =4, rowspan =3, padx =10, pady =5)
     
    fen1 = Tk()
    # création de widgets 'Label' et 'Entry' :
    txt1 = Label(fen1, text ='Nom de fichier (sans extension)')
    entr1 = Entry(fen1)
    # Mise en page entr1
    txt1.grid(row =1, column=1, sticky ='EW')
    entr1.grid(row =1, column =2)
     
    #champ 2
    txt2 = Label(fen1, text ='Extension')
    entr2 = Entry(fen1)
    # Mise en page entr2
    txt2.grid(row =2, column=1, sticky ='EW')
    entr2.grid(row =2, column =2)
     
    ## Bouton pour convertir
    Button(fen1,text='Acquisition',command=recup).grid(row=3 , column=1)
     
    ## Bouton pour convertir
    Button(fen1,text='Négatif couleur',command=conv_negatif_couleur).grid(row=4 , column=1) 
    ## Rafraichissement
    Button(fen1,text='Rafraichissement',command=rafraichissement).grid(row=4 , column=3,columnspan=2)
     
    # création d'un widget 'Canvas' contenant les images gif :
    can1 = Canvas(fen1, width =160, height =160, bg ='white')
    if os.path.isfile(source_gif) == True:
        photo1 = PhotoImage(file = source_gif)
        image1 = can1.create_image(80, 80, image =photo1)
    can2 = Canvas(fen1, width =160, height =160, bg ='white')
    if os.path.isfile(cible_gif) == True:
        photo2 = PhotoImage(file = cible_gif)
        image2 = can2.create_image(80, 80, image =photo2)
     
    can1.grid(row =1, column =3, rowspan =3, padx =10, pady =5)
    can2.grid(row =1, column =4, rowspan =3, padx =10, pady =5)
     
    # fermeture
    Button(fen1,text='Quitter',command=fen1.destroy).grid(row=5, column=1) 
    # démarrage :
    fen1.mainloop()
    J'imagine qu'il doit vous faire mal aux yeux mais avec mon niveau, je me contente pour l'instant de cela.
    Je n'ai pas réussi à me passer des variables globales.

    J'ai un souci, c'est que lorsque les fichiers gif existent, ils sont insérés automatiquement (cela, ce n'est pas grave) mais lorsqu'ils existent, je n'arrive pas à les voir (à rafraîchir l'affichage).
    Pas d'aide par mp.

  8. #8
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Citation Envoyé par marco056 Voir le message
    J'ai un souci, c'est que lorsque les fichiers gif existent, ils sont insérés automatiquement (cela, ce n'est pas grave) mais lorsqu'ils existent, je n'arrive pas à les voir (à rafraîchir l'affichage).
    C'est une facétie de tkinter avec PhotoImage lorsque la référence à l'image est détruite. Par exemple lorsque la référence est variable locale d'une fonction. A la sortie de la fonction, l'image est détruite... Placez là dans une variable globale.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  9. #9
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 608
    Points : 2 072
    Points
    2 072
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    C'est une facétie de tkinter avec PhotoImage lorsque la référence à l'image est détruite. Par exemple lorsque la référence est variable locale d'une fonction. A la sortie de la fonction, l'image est détruite... Placez là dans une variable globale.

    - W
    Merci, mais elle est déjà déclarée en variable globale dans "recup()".
    Je ne dois pas la redéclarer, si ?
    Pas d'aide par mp.

  10. #10
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Citation Envoyé par marco056 Voir le message
    Merci, mais elle est déjà déclarée en variable globale dans "recup()".
    Je ne dois pas la redéclarer, si ?
    C'est la fonction rafraichissement qui vous joue des tours. Et ma lecture de votre code en diagonale dit que c'est la que vous mettez à jour le canvas.
    Et il n'y a pas de "global" dans cette fonction là

    Ceci dit, votre code est très instable et plein de bugs partout. Essayez de refaire çà "plus propre".

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  11. #11
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 608
    Points : 2 072
    Points
    2 072
    Par défaut
    J'ai essayé de faire un peu de nettoyage mais j'avoue ne pas trop savoir où placer mes "global".
    Avec le code ci-dessous, j'aperçois de façon très fugace les images voulues.
    Elles ne veulent pas rester.
    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
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    from PIL import Image as Im
    import os
    from tkinter import Entry, Label, Tk
    from tkinter import Canvas, PhotoImage, Button
     
    def recup():
        """
        récupération du nom de fichier et de l'extension
        ouverture de l'image
        """
        nom_fich=entr1.get()
        nom_ext = entr2.get()
        ext1 = '.jpg'
        ext2 = '.gif'
        source_jpg = nom_fich + '.' + nom_ext
        source_gif = nom_fich + ext2
        cible_jpg = nom_fich + 'conv' + ext1
        cible_gif = nom_fich + 'conv' + ext2
        global mon_image, largeur, hauteur
        mon_image = Im.open(source_jpg)
        largeur,hauteur = mon_image.size
     
    def jpg_gif(nom1,nom2):
        """ 
        conversion de format, par exemple jpg en gif
        """
        os.system('convert %s %s' % (nom1,nom2))
     
    def negatif_couleur(image1):
        """
        conversion couleur en négatif couleur, donc avec 3 canaux
        """
        image2 = Im.new('RGB',(largeur,hauteur))
        for colonne in range(largeur):
            for ligne in range(hauteur):
                pixel=image1.getpixel((colonne,ligne))
                rouge = 255 - pixel[0]
                vert = 255 - pixel[1]
                bleu = 255 - pixel[2]
                image2.putpixel((colonne,ligne),(rouge,vert,bleu))
        return(image2)
     
    def conv_negatif_couleur():
        """ conversion négatif couleur puis conversion de format
        pour avoir les aperçus dans tkinter"""
        res = negatif_couleur(mon_image)
        res.save(cible_jpg)
        jpg_gif(source_jpg,source_gif)
        jpg_gif(cible_jpg,cible_gif)
     
    def rafraichissement():
        """
        rafarichissement des images source et cible dans les fenêtres de visualisation
        """
        global cible_gif, source_gif, photo1,image1,photo2,image2,can1,can2
        if os.path.isfile(source_gif) == True:
            photo1 = PhotoImage(file = source_gif)
            image1 = can1.create_image(80, 80, image =photo1)
        if os.path.isfile(cible_gif) == True:
            photo2 = PhotoImage(file = cible_gif)
            image2 = can2.create_image(80, 80, image =photo2)
        can1 = Canvas(fen1, width =160, height =160, bg ='white')
        can1.grid(row =1, column =3, rowspan =3, padx =10, pady =5)
        can2 = Canvas(fen1, width =160, height =160, bg ='white')
        can2.grid(row =1, column =4, rowspan =3, padx =10, pady =5)
     
    fen1 = Tk()
     
    txt1 = Label(fen1, text ='Nom de fichier (sans extension)')
    entr1 = Entry(fen1)
    txt1.grid(row =1, column=1, sticky ='EW')
    entr1.grid(row =1, column =2)
     
    txt2 = Label(fen1, text ='Extension')
    entr2 = Entry(fen1)
    txt2.grid(row =2, column=1, sticky ='EW')
    entr2.grid(row =2, column =2)
     
    # création d'un widget 'Canvas' contenant les images gif :
    can1 = Canvas(fen1, width =160, height =160, bg ='white')
    can1.grid(row =1, column =3, rowspan =3, padx =10, pady =5)
    can2 = Canvas(fen1, width =160, height =160, bg ='white')
    can2.grid(row =1, column =4, rowspan =3, padx =10, pady =5)
     
    ## Bouton pour convertir
    Button(fen1,text='Acquisition',command=recup).grid(row=3 , column=1)
    ## Bouton pour convertir
    Button(fen1,text='Négatif couleur',command=conv_negatif_couleur).grid(row=4 , column=1) 
    ## Raffraichissement
    Button(fen1,text='Rafraichissement',command=rafraichissement).grid(row=4 , column=3,columnspan=2)
    # fermeture
    Button(fen1,text='Quitter',command=fen1.destroy).grid(row=5, column=1)
     
    # démarrage :
    fen1.mainloop()
    Pas d'aide par mp.

  12. #12
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Salut,

    Maintenant vous recréez dans rafraîchissement can1 et can2.
    Autrement dit, vous créez les images dans des Canvas que vous masquez ensuite (pour les détruire, c'est .destroy) par d'autres qui ne contiennent rien.
    Les seules variables à déclarer "global" sont photo1 et photo2 et éventuellement image1 et image2.

    Côté item du canvas dits "image", ils sont aussi à ne créer qu'une seule fois.
    Les coups suivant on remplace l'image associé. Sinon çà s'empile par dessus. Tant que la nouvelle image a des dimensions plus grandes ou égales à la précédente, vous ne le verrez pas mais çà consomme de la mémoire pour rien.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  13. #13
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 608
    Points : 2 072
    Points
    2 072
    Par défaut
    YES !!!
    Merci wiztricks, pour votre aide et votre patience.
    Cela fonctionne.
    Reste à gérer les erreurs et autres mochetés de mon code.
    Pas d'aide par mp.

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

Discussions similaires

  1. traitement d'une entrée analogique sous Step7
    Par kevary dans le forum Automation
    Réponses: 7
    Dernier message: 31/05/2012, 13h17
  2. Réponses: 2
    Dernier message: 17/04/2010, 23h30
  3. Réponses: 0
    Dernier message: 03/11/2008, 15h12
  4. Réponses: 6
    Dernier message: 31/01/2008, 06h34
  5. Réponses: 3
    Dernier message: 21/06/2004, 11h20

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