Durch folgendes Skript werden jeweils die letzten 12 Bilder aus einem Verzeichnis geladen und in einem Frame dargestellt. Dieser Vorgang
sollte jedoch zyklisch(automatisch) erfolgen, wenn wieder durch eine
Kamera ein neues Bild ins Verzeichnis gelangt. Im Frame sollten also die
jeweils 12 aktuellen Bilder angezeigt werden. Wenn ich mein Skript in eclipse
starte geschieht dies jedoch nur einmalig, ich finde keinen Lösungsansatz.
Code: Alles auswählen
from Tkinter import *
from PIL import Image,ImageTk
import sys,os
from time import *
root=Tk()
root.title(' TK 5 FormenScan')
b=[]
filenames=[]
highestno={}
highestfi={}
for filename in os.listdir("C:\\Python26\\AVT\\"):
basename,extension = filename.split('.')
filenames.append(filename)
prefix,number=basename.split('AVT')
if number>highestno.get(prefix,0):
highestno[prefix]=number
highestfi[prefix]=filename
prefixes=highestno.values()
bildno=prefixes[len(prefixes)-1]
bildno=int(bildno)
#print'filenames =',filenames
#print'Type number=',type(number)
#print 'BildNo=',bildno
z=number
print z
print 'type Z=',type(z)
for n in range(12):
image=Image.open("C:\Python26\AVT\AVT%s.png"%(z))
image=image.resize((240,200),Image.ANTIALIAS)
bild =ImageTk.PhotoImage(image)
b.append(bild)
print 'ZZ =',z
z=int(z)
if (100000>z>10000):
z=z-1
z='0000'+str(z)
elif (10000>z>1000):
z=z-1
z='00000'+str(z)
elif (1000>z>=101):
z=z-1
z='000000'+str(z)
print 'z =',z
elif (100>=z>=11):
z=z-1
print 'n',z
z='0000000'+str(z)
print 'all',z
else :
z=z-1
z='00000000'+str(z)
bz=0
bno=len(filenames)
frame=Frame(root,width=600,height=800,borderwidth=4,bg='yellow')
frame.pack(side=TOP,fill=BOTH,expand=True)
for n in range(3):
for i in range(4):
label=Label(frame,image=b[bz])
print 'Image =',image
print 'BZ =',bz
bildlabel=Label(frame,text=filenames[((bno-1)-bz)])
label.grid(row=n,column=i,padx=5,pady=7)
bildlabel.grid(row=n,column=i,sticky='N',padx=3,pady=5)
bz=bz+1
if __name__ =='__main__':
root.mainloop()