On Jan 9, 9:51 pm, "Alf P. Steinbach" <al...@start.no> wrote: > * Lie Ryan: > > > On 1/9/2010 8:43 AM, suresh.amritapuri wrote: > >> Hi, > > >> In PIL, how to display multiple images in say m rows and n colums when > >> I have m*n images. > > >> suresh > > > Tkinter has PhotoImage widget and PIL has support for this widget: > >http://www.pythonware.com/library/pil/handbook/imagetk.htm > > Maybe I've misunderstood something (in that case glad to learn!), but I > believe > PhotoImage is not a widget, and that a PhotoImage has to be presented in e.g. > a > Label widget or some other widget that's able to display images. > > Cheers, > > - Alf
Hi, Let me paste the code I have adapted from somewhere. I dont get a clue on how to go further so that all the images would stay in their respective positions. thanks suresh def button_click_exit_mainloop (event): event.widget.quit() # this will cause mainloop to unblock. root = Tkinter.Tk() root.bind("<Button>", button_click_exit_mainloop) root.geometry('+%d+%d' % (100,100)) names = ["me1.jpg","me2.jpg","me1.jpg","me2.jpg","me1.jpg","me2.jpg"] shape = (2,3) xlen,ylen = 0,0 for i in range(shape[0]): for j in range(shape[1]): try: images = [Image.open(f) for f in names] images = [x.resize((300,200)) for x in images] xsize = sum(im.size[0] for im in images) ysize = sum(im.size[1] for im in images) root.geometry('%dx%d' % (xsize,ysize)) tkpi = [ImageTk.PhotoImage(im) for im in images] index = i*shape[1]+j label_image = Tkinter.Label(root, image=tkpi[index]) label_image.place(x=xlen,y=ylen,width=images[index].size [0],height=images[index].size[1]) if j == shape[1]-1: ylen = ylen + images[index].size[1] xlen = 0 else: xlen = xlen + images[index].size[0] print index,xlen,ylen root.mainloop() # wait until user clicks the window except Exception, e: # This is used to skip anything not an image. # Image.open will generate an exception if it cannot open a file. # Warning, this will hide other errors as well. pass -- http://mail.python.org/mailman/listinfo/python-list