OVH Cloud OVH Cloud

Redimessionement dynamique de jpg avce Tkinter.

2 réponses
Avatar
Yann.K
Hello tous.

Je suis agénérerment sur une appli de gestion d'albums audio/vifichierthon.
Pour chaque album, je dispose d'un fichier data (contenant toutes les infos
sur le support) et d'une image jpeg d'environ 100K de sa couverture (cahier
des charges...).

Lors de la présentation de la fiche produit, je voudrais pouvoir afficher
une vignette alors que l'image est beaucoup plus grande.
Je voudrais éviter de générer une miniature en dur ce qui me rajouterais un
fichier pour chaque entrée de la liste et pour pas grand chose.

J'ai essayer en utilisant PIL sans résultat probant.

Existe-t'il (ds une appli utilisant Tkinter) une fonction permettant
d'afficher un fichier image en le redimensionnant uniquement à l'affichage?

Sinon une bon lien sur PIL serait le bienvenue (les liens officielles
manquant cruellement d'exemples concrets)..

Merci à tous et bonne soirée.

--
Yann.K

2 réponses

Avatar
Richard Delorme

Lors de la présentation de la fiche produit, je voudrais pouvoir afficher
une vignette alors que l'image est beaucoup plus grande.
Je voudrais éviter de générer une miniature en dur ce qui me rajouterais un
fichier pour chaque entrée de la liste et pour pas grand chose.


Il suffit de ne pas sauvegarder l'image réduite...


J'ai essayer en utilisant PIL sans résultat probant.

Existe-t'il (ds une appli utilisant Tkinter) une fonction permettant
d'afficher un fichier image en le redimensionnant uniquement à l'affichage?


A mon avis, il faut utiliser PIL avec les modules Image et ImageTk pour
réduire l'image (par Image.thumbnail()) et la convertir en PhotoImage
affichable dans un widget (Label, Canvas, ...) de Tk. Voici un cours
exemple :

#------8<----------------------
import Image, ImageTk
import Tkinter

image = Image.open("img.jpg")
image.thumbnail((160, 120), Image.ANTIALIAS)

root = Tkinter.Tk()
canvas = Tkinter.Canvas()
canvas.pack()

thumb = ImageTk.PhotoImage(image)
display = canvas.create_image(0, 0, anchor = Tkinter.NW, image = thumb)

root.mainloop()
#------8<----------------------


Sinon une bon lien sur PIL serait le bienvenue (les liens officielles
manquant cruellement d'exemples concrets)..


Je ne connais pas mieux que le manuel officiel :
http://www.pythonware.com/library/pil/handbook/index.htm


--
Richard

Avatar
Yann.K
Richard Delorme wrote:

A mon avis, il faut utiliser PIL avec les modules Image et ImageTk pour
réduire l'image (par Image.thumbnail()) et la convertir en PhotoImage
affichable dans un widget (Label, Canvas, ...) de Tk.Merci.
Effectivement, j'étais parvenu à mes fins ce matin en utilisant la methode

thumbnail...

Merci.
--
Yann.K