Bonjour à tous,

C'est la première fois que je post sur le forum, si je m'exprime mal ou que je n'ai pas posté au bon endroit, je m'en excuse d'avance.

Un ami et moi avons développé un petit programme Python permettant de légères modifications sur des images. Lorsque une modification est effectuée sur l'image (par exemple, l'application d'un filtre bleu), la modification s'effectue bien.
Cependant, si une nouvelle modification est apportée (filtre rouge cette fois-ci), le programme ne prend pas en compte le filtre bleu précédemment appliqué.
Nous avons essayé d'arranger cela en vain...
La partie de code actualisant l'image dans le Canvas ressemble à cela : (il y a beaucoup de commentaires mais cela nous permet de nous y retrouver)


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
def ActualisationDeImage () :
    Fond.destroy()                              # On detruit l'ancienne image
 
    NouvelleImage = Image.open(fichierSortie)   # Le paramètre image représente l'image que l'on veux insérer
 
    NouvellePhoto = ImageTk.PhotoImage(NouvelleImage)   # Avec la fonction ImageTk.PhotoImage (), on peut créer une image compatible Tkinter,
                                                        # qu'on pourra afficher dans un Canvas par la méthode create_image(position, **options)
                                                        # où position réprésente les 2 coordonnées du coin en haut à gauche de l'image,
                                                        # sachant que l'image sera aussi positionnée par rapport au paramètre anchor
                                                        # qui par défaut vaut CENTER. 
 
    NouveauFond = Tk.Canvas(fenetre, width = NouvelleImage.size[0], height = NouvelleImage.size[1])
 
                                                        # Le Canvas ne s'adapte pas par défaut à la place que prennent 
                                                        # les éléments que l'on à dessiner dedans. Donc si l'image que 
                                                        # l'on veux insére est trop grande, on peut être assuré qu'elle sera
                                                        # entièrement visible en renseignant les paramètres width et height à la création du Canvas.
 
    NouveauFond.create_image(0, 0, anchor = Tk.NW, image=NouvellePhoto)  # Pour que l'image soit positionnée en haut à gauche du Canvas,
                                                                         # on doit utiliser la position 0, 0 et rajouter le paramètre anchor = Tk.NW
    NouveauFond.place (x=2, y=2) # On place le Nouveau Fond
    NouveauFond.mainloop()       # On ouvre la Nouvelle Image

Une seconde question, l'une des fonctionnalités du programme est une modification de la luminosité. Pour que cette modification soit plus agréable pour l'utilisateur, nous avons choisi d'utiliser un curseur.
Cependant, celui met énormément de temps avant d'apparaître (tant qu'il n'est pas apparu, on voit uniquement un cadre noir). Est-ce normal ou est ce qu'il y a un moyen plus 'stable' ?
La partie du code liée au curseur est la suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
#Création d'un widget Luminosité ()
Luminosite=Label(fenetre, text=" Luminosite ", font="Comic 10")
Luminosite.place (x=695, y=35)
 
Valeur = StringVar() # On definit Valeur
Valeur.set(0)        # On donne la valeur que prendra le curseur au départ
 
    # Création d'un widget Curseur
echelle = Scale(fenetre,from_=-150,to=250, resolution=25, orient=HORIZONTAL, length=250, width=10, tickinterval=50, variable=Valeur, command=luminosite)
echelle.place(x=780, y=15)


Voilà, désolé nous sommes débutants et il est difficile au début de se confronter à ce genre d'obstacle ^^'


Merci d'avance et bonne journée.