Wenn ich durch create_image ein image Canvas Item erzeugt habe, bekomme ich mit img = self.itemcget(self.item_id,'image') nur den Namen des images, etwa 'pyimage2'.
Kann ich mit Hilfe dieses Names auch das PhotoImage bekommen?
image in Canvas
Hi Alfons
Kannst du das folgenden einmal angucken:
Gruss wuf
Kannst du das folgenden einmal angucken:
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from functools import partial
try:
# Tkinter for Python 2.xx
import Tkinter as tk
except ImportError:
# Tkinter for Python 3.xx
import tkinter as tk
APP_TITLE = "Image in Canvas1"
APP_XPOS = 100
APP_YPOS = 100
APP_WIDTH = 300
APP_HEIGHT = 200
class Application(tk.Frame):
def __init__(self, master):
self.master = master
tk.Frame.__init__(self, master)
canvas = tk.Canvas(self, bg='steelblue', highlightthickness=0)
canvas.pack(fill='both', expand=True)
self.image = tk.PhotoImage(file="test_image.gif")
name_photoimage = str(self.image)
print("Bildname des Photoimage", name_photoimage)
# Erzeugen des Bildes mittels 'pyimage1'
canvas.create_image(10, 10, image=name_photoimage, anchor='nw')
def main():
app_win = tk.Tk()
app_win.title(APP_TITLE)
app_win.geometry("+{}+{}".format(APP_XPOS, APP_YPOS))
app_win.geometry("{}x{}".format(APP_WIDTH, APP_HEIGHT))
app = Application(app_win).pack(fill='both', expand=True)
app_win.mainloop()
if __name__ == '__main__':
main()
Take it easy Mates!
-
- User
- Beiträge: 1715
- Registriert: Freitag 31. Juli 2015, 13:34
@wuf: Danke, ja das geht schon. Ich hatte aber im image einen filenamen angefügt und dachte ich könnte das image wieder bekommen. Das geht aber nicht. Daher muss ich es so lassen und den filenamen mitführen oder eine Referenz auf das image-
Bei Gelegenheit mache ich eine Referenz auf das image, weil ich da eine weitere Information ablegen kann, nämlich wo es herkommt, aus PhotoImage oder aus ImageTk.PhotoImage(Image(open(filename)))
Damit ich es dann nicht wegen der File Extension (.gif) als PhotoImage wieder erzeuge, sondern nur, wenn die Herkunft ein PhotoImage war.
Bei Gelegenheit mache ich eine Referenz auf das image, weil ich da eine weitere Information ablegen kann, nämlich wo es herkommt, aus PhotoImage oder aus ImageTk.PhotoImage(Image(open(filename)))
Damit ich es dann nicht wegen der File Extension (.gif) als PhotoImage wieder erzeuge, sondern nur, wenn die Herkunft ein PhotoImage war.