[python] image tif

Salut
est ce que quelqu'un saurait comment on peut ouvrir et afficher une image tif dans un canevas avec python ?
Configuration: Windows XP
Internet Explorer 6.0

3 réponses

  1. Modérateur
    Désolé pour la réponse tardive:
    Voici comment afficher une image Tiff dans un Canvas Tkinter:

    from Tkinter import*
    from tkFileDialog import*
    
    import Image
    import ImageTk
    
    fenetre=Tk()
    fenetre.title("Binning")
    
    cnv=Canvas(fenetre,width=512,height=512)
    cnv.pack()
    
    mbar=Menu(fenetre)
    fenetre.configure(menu=mbar)
    fichiermenu=Menu(mbar,tearoff=0)
    mbar.add_cascade(label="Fichier",menu=fichiermenu)
    
    im = Image.open('image.tif')
    im.load()
    
    w,h=im.size
    image = ImageTk.PhotoImage(im)
    cnv.create_image(0,0,anchor=NW,image=image)
    cnv.monimage = image
    cnv.configure()
    cnv.pack() 
    
    #Menu fichier
    
    def open(event=None):
        pass
        
    fichiermenu.add_command(label='Ouvrir',command=open)
    
    fenetre.mainloop() 
    1
    1. Modérateur
      Un canvas tkinter ?

      PIL (Python Imaging Library) devrait permettre de faire ça.
      http://www.pythonware.com/products/pil/
      ( Voir ImageTk.PhotoImage() )
      0
      1. en fait voici ce que j'ai écrit :

        ---------------------------------------------------------------
        from Tkinter import*
        from tkFileDialog import*
        from PIL import *

        fenetre=Tk()
        fenetre.title("Binning")

        cnv=Canvas(fenetre,width=512,height=512)
        cnv.pack()

        mbar=Menu(fenetre)
        fenetre.configure(menu=mbar)
        fichiermenu=Menu(mbar,tearoff=0)
        mbar.add_cascade(label="Fichier",menu=fichiermenu)

        img=PhotoImage("kiwi.gif")
        w,h=img.width(),img.height()
        cnv.create_image(0,0,anchor=NW,image=img)

        #Menu fichier

        def open(event=None):
        fn=Image.open(askopenfilename())
        img.configure(file=fn)
        if fn:
        w,h=img.width(),img.height()
        cnv.create_image(0,0,anchor=NW,image=fn)
        img.configure(file=fn)
        w,h=img.width(),img.height()
        cnv.configure(width=w,height=h)

        fichiermenu.add_command(label='Ouvrir',command=open)

        fenetre.mainloop()

        ---------------------------------------------------------------------
        si je rajoute une ligne pour que le prog affiche le format et la taille de l'image fn, il m'indique bien que c'est du tif mais il ne l'affiche pas.
        0
    2. ce programme marche bien pour des images tif codées en 8 bit mais je n'arrive pas à lire des images tif codées en 16 bit, comment je peux faire ?
      0