|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Étudiant Inscription : janvier 2012 Messages : 28 ![]() |
Bonjour à tous,
J'utilise Python en version 3.3, et suis donc obligé d'utiliser la classe PhotoImage pour traiter mes images (PIL n'étant pas encore sortit pour les versions 3.x de Python). J'aimerai rétrécir/agrandir une image que j'affiche dans un Canvas pour que sa taille corresponde à la taille du Canvas. Ainsi à l'ouverture elle le remplirait, et lors de l'agrandissement/rétrécissement de la fenêtre, l'image remplirait automatiquement les nouvelles dimensions du Canvas. J'ai donc trouvé deux méthodes zoom, et subsample, cependant elles ne prennent pas en paramètres de float (uniquement des entiers). Je suis donc coincé. Auriez vous une solution ? Toute aide est la bienvenue.
|
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Étudiant Inscription : janvier 2012 Messages : 28 ![]() |
La valeur en float correspond au facteur d'agrandissement/rétrécissement de l'image pour qu'elle puisse remplir le widget. Elle ne correspond pas à la valeur d'un pixel.
Je ne veux pas zoomer sur une partie de l'image, je veux pouvoir voir toute mon image dans mon widget. |
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() ![]() Inscription : octobre 2008 Messages : 936 ![]() |
Oui, d'accord le facteur de zoom est un float, mais cela ne change rien.
En pseudo-code: nouvelle_largeur = largeur_image * facteur_zoom nouvelle_hauteur = hauteur_image * facteur_zoom image_resize(int(nouvelle_largeur), int(nouvelle_hauteur)) La perte sera inférieure à un pixel. On procède de la même manière avrc d'autre frameworks graphiques. |
|
|
00
|
|
|
#5 | ||
|
Invité de passage
![]() Étudiant Inscription : janvier 2012 Messages : 28 ![]() |
Je n'utilises pas PIL je n'ai donc pas de méthode resize sur mon objet :/.
Code :
EDIT; suis tombé sur cet article, qui me fait un peu peur... http://effbot.org/zone/tkinter-photo...scale-ramp.htm |
||
|
|
00
|
|
|
#6 | ||||
|
Membre Expert
![]() ![]() Inscription : octobre 2008 Messages : 936 ![]() |
Citation:
Citation:
Par contre, mon exemple, un peu simpliste est bugué puisqu'il fait usage de deux facteurs différents ce qui entraînera une distorsion de l'image. Il faudra, donc ajouter une ligne de code pour choisir celui des deux facteurs de zoom qui donnera une taille d'image la plus proche de celle du canevas. Le lien que tu donnes dit justement que Tk ne peux faire plus que cela en matière de redimensionement. Tu es sous Windows ? Il existe une compilation de PIL pour Python3 http://www.lfd.uci.edu/~gohlke/pythonlibs/ Pour Linux il y a Pillow, un fork de PIL http://blog.aclark.net/2013/01/10/pillow-python-3/ |
||||
|
|
00
|
|
|
#7 | |||||||||
|
Invité de passage
![]() Étudiant Inscription : janvier 2012 Messages : 28 ![]() |
Salut,
Les possibilités de Tkinter étant trop limité j'ai cherché à installer PIL, je suis donc passé sur une version python 2.7. Depuis 2-3 jours j'essaye de résoudre des problèmes liés à l'installation... j'ai tellement tenté de trucs que j'aimerai bien faire un pit remove de tout ça^^. Je ne trouves pas les réponses a mon problème donc je vais vous poster le TraceBack à l'import d'une image de format quelconque (gif, jpg,...) : Citation:
Citation:
Citation:
|
|||||||||
|
|
00
|
|
|
#8 | |||
|
Expert Confirmé
![]() Patrice BLANGARINTechnicien Help Desk, maintenance, réseau, système et + Inscription : juin 2006 Messages : 2 608 ![]() |
Bonsoir,
Léger mélange dans tout cela Code :
Edit : pour ce qui est de l'erreur Citation:
Code :
self.orig_img = Image.open(self.chemin_image) Code :
self.image = PhotoImage(file=self.orig_img) @++
__________________
Merci d'utiliser le forum pour les questions techniques. |
|||
|
|
00
|
|
|
#9 | ||||
|
Invité de passage
![]() Étudiant Inscription : janvier 2012 Messages : 28 ![]() |
Je vois, il existe deux classe nommée de la même manière et la mauvaise était utilisée...
Par contre cela me renvoi une nouvelle erreur : Code :
Code :
|
||||
|
|
00
|
|
|
#10 |
|
Expert Confirmé
![]() Patrice BLANGARINTechnicien Help Desk, maintenance, réseau, système et + Inscription : juin 2006 Messages : 2 608 ![]() |
Là, effectivement il y a un souci d'installation.
Regardez si vous avez le fichier _imagingtk.dll (Windows)/ _imagingtk.so (Linux - Votre cas il me semble). Sinon quel packet/deb avez vous installé ?
__________________
Merci d'utiliser le forum pour les questions techniques. |
|
|
00
|
|
|
#11 |
|
Invité de passage
![]() Étudiant Inscription : janvier 2012 Messages : 28 ![]() |
Sur le site officiel http://www.pythonware.com/products/pil/
PIL 1.1.7 -> Python Imaging Library 1.1.7 Source Kit (all platforms) (November 15, 2009) J'ai fais une recherche dans usr/lib, le fichier semble manquant. |
|
|
00
|
|
|
#12 | |
|
Expert Confirmé
![]() Patrice BLANGARINTechnicien Help Desk, maintenance, réseau, système et + Inscription : juin 2006 Messages : 2 608 ![]() |
Citation:
__________________
Merci d'utiliser le forum pour les questions techniques. |
|
|
|
00
|
|
|
#13 |
|
Invité de passage
![]() Étudiant Inscription : janvier 2012 Messages : 28 ![]() |
Ubuntu 12.10
Je vais regarder dans les dossiers PIL mais il me semble pas les avoir vus. EDIT: Effectivement seuls _imaging.so, _imagingcms.so, imagingft.so et _imagingmath.so sont dans le dossier. (usr/lib/python2.7/PIL) EDIT: J'avais mal compris votre citation, j'ai testé ça ne renvoie rien. Merci pour l'astuce d'ailleurs. |
|
|
00
|
|
|
#14 |
|
Expert Confirmé
![]() Patrice BLANGARINTechnicien Help Desk, maintenance, réseau, système et + Inscription : juin 2006 Messages : 2 608 ![]() |
Sous Quantal le deb a installer via la logithèque est python-imaging et ImageTk est dans le deb python-imaging-tk.
__________________
Merci d'utiliser le forum pour les questions techniques. |
|
|
00
|
|
|
#15 |
|
Expert Confirmé
![]() Patrice BLANGARINTechnicien Help Desk, maintenance, réseau, système et + Inscription : juin 2006 Messages : 2 608 ![]() |
Je n'avais pas cet edit : Installez python-imaging-tk via la logithèque.
__________________
Merci d'utiliser le forum pour les questions techniques. |
|
|
00
|
|
|
#16 |
|
Invité de passage
![]() Étudiant Inscription : janvier 2012 Messages : 28 ![]() |
It works ! Merci je vais enfin pouvoir me remettre à coder ! Milles merci
|
|
|
00
|
Copyright © 2000-2013 - www.developpez.com