[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

  • Votes
  • Date
  • Date décroissante
  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. Modérateur
      Un canvas tkinter ?

      PIL (Python Imaging Library) devrait permettre de faire ça.
      http://www.pythonware.com/products/pil/
      ( Voir ImageTk.PhotoImage() )
      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.
    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 ?