Post by Bryan OakleyPost by skanemuppmapq = PhotoImage(file = 'C:\Users\saftarn\Desktop\elmapovic.gif')
w.create_image(10, 10, image = mapq, anchor = NW)
after doing this is there any possibility of getting the
characteristics of the GIF-picture(or bitmap if i use that)?
it would be very helpfull if i for example could do something like
canvas.getcolor(image, mouseclick.x,mouseclick.y) if u get the point.
get the color of the image where i clicked.
The image isn't "painted" on the canvas, so to answer your specific
question, no, you can't get the color of a pixel on the canvas in the
way that you ask.
However, when you click on the canvas you can get the item that was
clicked on and the x/y of the click. From that you can figure out which
pixel of the image is under the cursor. And from that you can query the
image for the color of a specific pixel.
how do i get the item?
http://effbot.org/tkinterbook/canvas.htm#Tkinter.Canvas.create_image-...
with any of those methods?
when i click the mouse i can get event.object u mean?
You can use find_closest to find the object closest to the x,y of the
event. You can also do find_withtag(tk.CURRENT) which returns the item
under the mouse pointer.
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Python25\lib\lib-tk\Tkinter.py", line 1403, in __call__
return self.func(*args)
File "C:\Users\saftarn\Desktop\pythonkod\mapexperiments
\mapgetobject.py", line 17, in callback
undermouse=find_closest(master.CURRENT)
NameError: global name 'find_closest' is not defined
from Tkinter import *
master = Tk()
w = Canvas(master, width=400, height=625)
w.pack(expand = YES, fill = BOTH)
mapq = PhotoImage(file = 'C:\Users\saftarn\Desktop\images
\something.gif')
w.create_image(30, 30, image = mapq, anchor = NW)
def key(event):
print "pressed", repr(event.char)
def callback(event):
clobj=event.widget
## undermouse=find_withtag(master.CURRENT)
undermouse=find_closest(master.CURRENT)
print repr(undermouse)
w.bind("<Key>", key)
w.bind("<Button-1>", callback)
w.pack()
mainloop()