[python] image tif

sab29 -  
Sab29 Messages postés 4 Statut Membre -
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. sebsauvage Messages postés 33284 Date d'inscription   Statut Modérateur Dernière intervention   15 684
     
    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
  2. sebsauvage Messages postés 33284 Date d'inscription   Statut Modérateur Dernière intervention   15 684
     
    Un canvas tkinter ?

    PIL (Python Imaging Library) devrait permettre de faire ça.
    http://www.pythonware.com/products/pil/
    ( Voir ImageTk.PhotoImage() )
    0
    1. Sab29 Messages postés 4 Statut Membre
       
      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
  3. Sab29 Messages postés 4 Statut Membre
     
    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