Bonjour,

Cela fait plusieurs semaines que je tourne en rond sur 3 fonctions, vous allez peut être pouvoir m'aider:

1: Dans le code ci-dessous je voudrais redimensionner mes images pour qu'elles rentrent à tous les coups dans le canvas en hauteur (et que la largeur se redimensionne proportionnellement) j'ai trouver la fonction à intégrer juste après image.open(s) seulement je voudrais redimensionner après "photoimage" à chaque itération du compteur ce qui aurai pour effet de ne redimensionner qu'une image à chaque fois.

2: Je cherche à définir le bouton "Modérer" qui permettrai de vider le canvas et de supprimer l'image affichée "physiquement"

3: Je voudrais récupérer les données EXIF de l'image à chaque itération pour qu'elle s'affiche "droite" à tous les coups (car les images vont provenir de téléphones portables dans le cadre d'une animation)

Je cherche les codes et méthodes qui permettent d'arriver à ces résultats
Merci d'avance pour votre aide !

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
105
106
107
108
109
110
111
mport glob
import os
from Tkinter import *
import Tkinter as Tk
import tkFont
import time
from PIL import Image, ImageTk, ExifTags
 
 
#creation fenetre tkinter
fen1 = Tk.Tk()
fen1.title('DiapoMail-SlideShow')
 
 
#Chargement de toutes les images dans une liste pour la premiere fois
print "Regarder dans le dossier de sortie et lister"
 
listeimage = []
for s in glob.glob(os.getcwd()+"/sortie/*.jpg"):
 print s
 
 image = Image.open(s)
 
 
 
 photo = ImageTk.PhotoImage(image)
 
 listeimage.append(photo)
 
 
def lister():
    #Chargement de toutes les images dans une liste pour toutes les autres fois
    print "Regarder dans le dossier de sortie et lister"
    del listeimage[:]
    #listeimage = []
    for s in glob.glob(os.getcwd()+"/sortie/*.jpg"):
     print s
     image = Image.open(s)
 
     photo = ImageTk.PhotoImage(image)
 
 
     listeimage.append(photo)
 
 
 
## l'affichage se fera sur un canvas
 
can1 = Tk.Canvas(fen1,bg='black',height=900,width=1950)
 
can1.pack(side=TOP,expand=True, fill=BOTH)
 
 
 
#increment
 
j = 0
## affichage des images
def diapo():
 
    can1.delete(ALL) #on efface le canvas
    global j
 
    ## on essaie d'afficher une image dans le canvas
 
    item=can1.create_image(975,450, anchor ='center', image=listeimage[j])
 
 
 
    #except: exit ## on a passe en revu toutes les images
 
 
    j+=1
 
    if j == len(listeimage):
        j=0
        #time.sleep()
        lister()
 
 
 
 
    fen1.after(2000, diapo)  ## on rappelle la fonction diapo dans 2 secondes
 
 
 
fen1.after(100, diapo)
#j=0
 
#Boutons de commande
bou1 = Button(fen1, text='Quitter', command = fen1.destroy)
bou1.pack(side=LEFT, padx =0, pady =0)
bou2 = Button(fen1, text='Moderer', command = can1.delete(ALL))
bou2.pack(side=LEFT, padx =0, pady =0)
#texte d'information dans la fenetre
text1 = Label(fen1, text = 'Pour participer au diaporama:')
text1.pack(side =TOP, padx =3, pady =3)
text2 = Label(fen1, text = 'pa@outlook.fr')
text2.pack(side =BOTTOM, padx =3, pady =3)
#Configuration du texte dans la fenetre
font10 = "-family {FreeSans} -size 28 "
text1.configure(font=font10,fg='black')
text2.configure(font=font10,fg='red')
 
j=0
 
 
#demarrage
 
 
fen1.mainloop()