Problème sous PIL pour configurer des images pour Tkinter
Bonjour,
J'ai un programme qui fonctionne bien sous Tkinter, mais je veux faire quelque chose qui me semble à priori assez simple : redimensionner l'image que j'affiche dans un canevas à la taille de celui ci.
Après de multiples tentatives, j'ai compris qu'il fallait que j'en passe par PIL, mais ça foire totalement.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| from tkinter import *
from PIL import Image, ImageTk
import random
img = Image.open("vache.gif")
print(img)
(larg1,haut1)= img.size
print(larg1)
print(haut1)
#img.show()
#photo1 = ImageTk.PhotoImage(img) |
Le code que je viens d'écrire fonctionne. Mais quand j'enlève un des deux dièses, ça ne va plus.
Quand j'enlève le premier, je n'ai pas de message d'erreur, ça n'affiche rien, et j'ai dans la console :
Citation:
Le programme n'a pas pu ˆtre lanc‚, ou aucun programme n'est associ‚ au fichier sp‚cifi‚.
ShellExecuteEx a ‚chou‚: SuccŠs.
Quand j'enlève le second, j'ai un message d'erreur avec :
Citation:
Traceback (most recent call last):
File "<string>", line 566, in run_nodebug
File "Z:\...\essai_images.py", line 17, in <module>
photo1 = ImageTk.PhotoImage(img)
File "c:\EduPython\App\lib\site-packages\PIL\ImageTk.py", line 117, in __init__
self.__photo = tkinter.PhotoImage(**kw)
File "c:\EduPython\App\lib\tkinter\__init__.py", line 3421, in __init__
Image.__init__(self, 'photo', name, cnf, master, **kw)
File "c:\EduPython\App\lib\tkinter\__init__.py", line 3362, in __init__
raise RuntimeError('Too early to create image')
RuntimeError: Too early to create image
Je ne sais pas si ça peut avoir un rapport, mais je code sous EduPython. Que j'ai installé sur mon ordi Linux avec Wine.
Merci d'avance de vos réponses !
PS : si quelqu'un connait un équivalent de Edupython ou Pyscripter qui fonctionne bien directement sous Linux, sans avoir à passer par un émulateur Windows, je suis partant !