Wie kann ich Bilder verzögert in ein Canvas updaten ohne "sleep()".
Ich habe Verzeichnisse in denen bis zu 60 Bilder in der Minute gespeichert weden können es kann aber auch nur 1 pro Stunde sein. Die geschieht aber nicht mit einem von mir erstellten Programm.
Ich möchte jetzt immer nur das Aktuellste angezeigt bekommen. Dazu habe ich volgen Code.
Code: Alles auswählen
def PrintPicture_update(self):
ts = 0
found = "Data\Test.jpg"
for file_name in glob.glob("C:\Test, recursive=True):
fts = os.path.getmtime(file_name)
if fts > ts:
ts = fts
found = file_name
print (found)
time_string = datetime.datetime.fromtimestamp(os.stat(found).st_mtime)
datum = time_string.strftime("%d.%m.%Y %H:%M:%S")
self.PrintPicture_threshold.set(datum)
baseheight = 70
ip = Image.open(found)
width, height = 1800, 70
wpercent = baseheight/height
newwidth = width * wpercent
newwidth = int(newwidth)
newsize = (1800, 70)
imnew = ip.resize(newsize, PIL.Image.ANTIALIAS)
self.PrintPicture.image = ImageTk.PhotoImage(imnew)
self.PrintPicture.itemconfig(self.PrintPicture_image, image = self.PrintPicture.image)
self.restart = self.after(5000, self.PrintPicture_update)
an sich würde es funktioinieren doch es kommt immer wieder zu dem Problem, das ich eine "Lese" Fehlermeldung der Datei bekomme!
Ich Denke das es daran liegt die Aktualisierung ungünstig mit dem Schreibvorgang aufeinander trift.
Ich brächte nun Hilfe dabei das ich quasie die letzte Datei Suche... was bisher Funktioniert dann kurz warte und dann erst das Bild geladen wird.
Oder würdet ihr die Sache anders angehen...