Comment faire pour afficher l'image et d'obtenir de la souris cliquez sur la coordination des il
Je me demande si c'est possible en Python (Windows) pour afficher une image, puis cliquez avec la souris sur cette image et obtenir les coordonnées de ce "clic" par rapport aux bords de l'image.
Merci!
Vous devez vous connecter pour publier un commentaire.
Oui c'est possible et assez facile une fois que vous comprenez tkinter, voici un petit script:
Inédits, il va imprimer à l'aide de la fenêtre par défaut du système de coordonnées de la console. La toile widget rend le coin supérieur gauche de l'0,0 point de sorte que vous pouvez avoir à s'amuser avec les printcoords fonction. Pour obtenir l'image chargée dimension vous utiliser de la toile.bbox(TOUS), et vous pouvez passer à l'utilisation de canvasx et canvasy coords au lieu de la façon dont il est. Si vous êtes nouveau à tkinter; google devrait être en mesure pour vous aider à terminer d'ici :).
from PIL import Image, ImageTk
Voici une version que j'avais bricolé il y a un moment à l'aide de wxPython et divers wxPython tutoriels. Ce imprime de la souris cliquez sur les coordonnées à un autre de la fenêtre de sortie. (Utilise Python 2.6.2, wxPython 2.8.10.1)
Entrez le chemin de votre image dans la
filepath
variable en bas.Voici une version révisée de bigjim de réponse. Il fonctionne en python 3.4+ (ne pas tester n'importe quoi d'autre). Je ne vous embêtez pas avec le PIL partie depuis tkinter est PhotoImage peut gérer les formats gif et pgm qui est suffisant pour cette démo.
La fonction lambda poignées de conversion entre l'événement (fenêtre), les coordonnées et les coordonnées de l'image.
J'ai aussi ajouté le support pour la presse vs libération depuis que j'ai eu besoin de cette fonctionnalité particulière.
Vous pouvez utiliser Tkinter pour ce faire et ses construit en python déjà.
http://www.pythonware.com/library/tkinter/introduction/
Une bonne alternative à Tkinter est à l'aide de QT en Python. Vous pouvez le faire avec PyQT, ou PySide.