Zoom sur l'image

Messages postés
37
Date d'inscription
samedi 29 octobre 2016
Statut
Membre
Dernière intervention
31 mai 2019
-
Bonjour à tous et bonne année.
Je soumets à votre appréciation ce code consistant à zoomer sur une image.
Cela fonctionne bien mais en réalité je me retrouve avec deux images l'une fixe occupant tout le canevas et une seconde que l'on peut agrandir ou diminuer en utilisant la molette de la souris.
Je ne comprends pas pourquoi j'ai cette premières images fixes alors que je ne veux que l'image à zoomer.
Par ailleurs je n'ai pas testé comment cela fonctionne sur Linux mais je suppose que cela ne fonctionne pas non plus.
Pourriez-vous me trouver la solution et si possible même m'indiquait s'il y a quelque chose qui vous paraît incorrecte dans ma programmation.
Je vous remercie par avance de la que vous pourrez m'apporter.
Dan
PS : dans photos il faut lui fournir l'adresse d'une image JPEG, j'ai simplement indiqué comme nom de fichier « image. JPEG »

import tkinter as tk
from PIL import Image, ImageTk, ImageEnhance
from tkinter import *
from PIL import Image

root = Tk()
global rap
rap = 1

def ZOOMIMAGE(event):
global rap
global photo1
photo =photo1.copy()
x, y = photo.size
if event.delta<0:
rap =rap - 1
rap1=-1
elif event.delta>0:
rap = rap + 1
rap1 =1
DX=x *(1 +(rap/10) )
DY = y *(1+(rap/10) )
#canvas.configure( height=800,width=800)
#photo.thumbnail((DX, DY))


photo=photo.resize((int(DX),int(DY)),Image.ANTIALIAS)
photo.thumbnail((600, 600), Image.BICUBIC)
logo = ImageTk.PhotoImage(photo)

# canvas.itemconfigure("img_fond", image=photo1)
canvas.create_image(((0),(0)), image=logo, anchor=NW)

logo.pack()




#ggggggggggggggggggggggggggggggggg
my_font = "{arial} 18 bold italic"
canvas = Canvas(root)
canvas.place(x=450,y=75)
canvas.configure( height=650, width=900,bg='yellow')
global photo
photo = Image.open("image.jpg")
# on ajuste la frnetre a la dimention ecran
global widthg1
global heightg1

photo.thumbnail((600, 600), Image.BICUBIC)
global photo1
photo1 =photo.copy()
logo = ImageTk.PhotoImage(photo)

# canvas.itemconfigure("img_fond", image=photo1)
canvas.create_image(0,0, image=logo, anchor=NW)
canvas.pack()

canvas.bind("<MouseWheel>",ZOOMIMAGE)

root.mainloop()

Afficher la suite