1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
| class Context:
pass
def test_image ( size = (640,480)):
import Tkinter
from PIL import Image,ImageTk
self = Context()
self.PILimage = Image.new( "RGB",size )
self.index = 0
self.size = size
def resize ( e ):
new_size = ( e.width , e.height )
print 're(%dx%d)'%new_size
if self.size != new_size:
self.size = new_size
self.PILimage = self.PILimage.resize( self.size ,Image.BICUBIC )
update_image()
def update_image ():
print 'up(%d)-(%d x %d)(%d x %d)'%(self.index,self.size[0],self.size[1],self.PILimage.size[0],self.PILimage.size[1] )
im = self.PILimage.load()
for y in range( self.size[1] ):
for x in range( self.size[0] ):
im[x,y] = ( (x+self.index)%256 , (y+self.index*12)%256 , (x+y+self.index*13)%256 )
self.index += 1
self.TKimage = ImageTk.PhotoImage( self.PILimage )
self.can.create_image( 0,0, anchor = Tkinter.NW, image = self.TKimage )
self.can.pack()
self.root = Tkinter.Tk()
self.root.title( 'image' )
self.root.geometry('%dx%d+300+50' % self.size )
self.root.bind('<Escape>',lambda e : self.root.quit())
self.root.bind('<space>' ,lambda e : update_image())
self.root.bind('<Configure>' , resize )
self.can = Tkinter.Canvas( self.root,width = self.size[0],height = self.size[1] )
update_image()
self.can.pack()
self.root.mainloop()
test_image() |