Rotation d'image sur tkinter
Bonjour,
Je cherche à coder un jeu où 3 cercles concentriques rentrent en rotation ou les rotations dépendent des cliques. Je suis face au problème où avec Pillow et des angles non multiples de 90°, mes images se déforment. Je ne vois pas comment contrer ce problème graphique..
Quelqu'un peut m'aider à trouver un moyen pratique d'avoir des rotations avec des angles très petits sans déformations?
Cordialement.
Je cherche à coder un jeu où 3 cercles concentriques rentrent en rotation ou les rotations dépendent des cliques. Je suis face au problème où avec Pillow et des angles non multiples de 90°, mes images se déforment. Je ne vois pas comment contrer ce problème graphique..
Quelqu'un peut m'aider à trouver un moyen pratique d'avoir des rotations avec des angles très petits sans déformations?
Cordialement.
3 réponses
-
Contributeurbonjour,
peux-tu partager ton code, en tenant compte de: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code -
Voici le code en espérant avoir correctement respecté les normes du site. J'ai laissé l'angle de rotate à 90 mais vous pouvez essayer d'autres sans soucis, à vos risques et périls pour la qualité..
Ci-joint l'image
import tkinter as tk from PIL import Image, ImageTk import time root = tk.Tk () canvas = tk.Canvas (root, width = img.size[0], height = img.size[1], bg = "white") canvas.pack () def rotate (degré): global img img = img.rotate (degré) global tkimg tkimg = ImageTk.PhotoImage (img) canvas.create_image (img.size[0]/2,img.size[1]/2, image = tkimg, tags = "img") img = Image.open ("target1.png") rotate(0) def pressed (event): rotate (90) canvas.tag_bind ("img", "<B1-Motion>", pressed) root.mainloop ()-
-
-
@yg_beMais le but est de pouvoir faire tourner l'image peu importe l'angle et ce plusieurs fois sans déformation. Y a-t-il des solutions?
-
Contributeur@Yolnitil n'est pas nécessaire de faire tourner plusieurs fois la même image.
il faut éviter d'utiliser une image résultat d'une rotation.
il est préférable, chaque fois que tu veux afficher l'image, d'appliquer une seule rotation en repartant de l'image de départ.
-
-
L'unique erreur est ligne 22,
cnv.tag_bind ("img", "<B1-Motion>", pressed) est la correction de cette ligne.
SI vous avez une erreur c'est que le format de l'image enregistré ne correspond pas à celui dans open.Image ligne 16.