IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

ouverture d'image en python avec PIL


Sujet :

Python

  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2018
    Messages : 10
    Par défaut ouverture d'image en python avec PIL
    Salut,
    je sais que le sujet a déja beaucoup été traité mais je n'ai rien trouvé pour mon problème:
    j'essaye d'ouvrir une image avec PIL sur python 2.7:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    import tkinter as tk
     
    fenetre = tk.Tk()
     
    photo = tk.PhotoImage(file='/home/pi/Desktop/2007 Trial Chile/BILD0001.jpg')
     
    label = tk.Label(fenetre, image=photo)
    label.pack()
     
    fenetre.mainloop()
    mais python me renvoie le message d'erreur:

    ============== RESTART: /home/pi/Desktop/testouvertureimage.py ==============
    Traceback (most recent call last):
    File "/home/pi/Desktop/testouvertureimage.py", line 5, in <module>
    photo = tk.PhotoImage(file='/home/pi/Desktop/2007 Trial Chile/BILD0001.JPG')
    File "/usr/lib/python3.5/tkinter/__init__.py", line 3406, in __init__
    Image.__init__(self, 'photo', name, cnf, master, **kw)
    File "/usr/lib/python3.5/tkinter/__init__.py", line 3362, in __init__
    self.tk.call(('image', 'create', imgtype, name,) + options)
    _tkinter.TclError: couldn't recognize data in image file "/home/pi/Desktop/2007 Trial Chile/BILD0001.jpg"
    >>>
    comment je peux faire pour changer ca et qu'il ouvre l'image (sachant que je travaille sur un raspberry pi)?
    merci d'avance

  2. #2
    Membre Expert
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 617
    Par défaut
    Déjà, en python 2.7, c'est Tkinter et non tkinter.
    Ensuite, vu ton message d'erreur, j'ai l'impression que c'est python 3.5 qui s'ouvre.
    Si tu as le 3.5, pourquoi utiliser le 2.7 ?

  3. #3
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 752
    Par défaut
    Salut,

    Citation Envoyé par jejzis Voir le message
    je sais que le sujet a déja beaucoup été traité mais je n'ai rien trouvé pour mon problème:
    j'essaye d'ouvrir une image avec PIL sur python 2.7:
    Non seulement, vous utilisez Python 3.5 mais en plus vous n'utilisez pas PIL mais tkinter directement... Et comme le sujet a beaucoup été traité il y a même des exemples dans la FAQ.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  4. #4
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2018
    Messages : 10
    Par défaut
    C'est vrai désolé c'est en python 3.5 .
    Mon probleme etait que je ne trouvait pas la FAQ donc merci pour l'aide (je débute sur le site).
    Bonne journée

  5. #5
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2018
    Messages : 10
    Par défaut
    Me revoila
    Apres avoir fait un petit tour sur la FAQ j'ai essayé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    from PIL import Image, ImageTk  
    import  Tkinter as Tk  
    root = Tk.Tk()  
     
    image = Image.open("lenna.jpg")  
    photo = ImageTk.PhotoImage(image)  
     
    canvas = Tk.Canvas(root, width = image.size[0], height = image.size[1])  
    canvas.create_image(0,0, anchor = Tk.NW, image=photo) 
    canvas.pack()  
    root.mainloop()
    (sur python 3.5 )
    et python m'affiche le message d'erreur:

    ============== RESTART: /home/pi/Desktop/testouvertureimage.py ==============
    Traceback (most recent call last):
    File "/home/pi/Desktop/testouvertureimage.py", line 1, in <module>
    from PIL import Image, ImageTk
    ImportError: cannot import name 'ImageTk'
    Est-ce que PIL marche en python 3.5 ou il faut que je telecharge une autre biblio?
    Aidez moi svp j'y comprends rien...

  6. #6
    Membre Expert
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 617
    Par défaut
    Citation Envoyé par jejzis Voir le message
    Me revoila
    Apres avoir fait un petit tour sur la FAQ j'ai essayé:

    from PIL import Image, ImageTk
    import Tkinter as Tk
    root = Tk.Tk()

    image = Image.open("lenna.jpg")
    photo = ImageTk.PhotoImage(image)

    canvas = Tk.Canvas(root, width = image.size[0], height = image.size[1])
    canvas.create_image(0,0, anchor = Tk.NW, image=photo)
    canvas.pack()
    root.mainloop()

    (sur python 3.5 )
    et python m'affiche le message d'erreur:

    ============== RESTART: /home/pi/Desktop/testouvertureimage.py ==============
    Traceback (most recent call last):
    File "/home/pi/Desktop/testouvertureimage.py", line 1, in <module>
    from PIL import Image, ImageTk
    ImportError: cannot import name 'ImageTk'

    Est-ce que PIL marche en python 3.5 ou il faut que je telecharge une autre biblio?
    Aidez moi svp j'y comprends rien...
    J'ai déjà indiqué qqchose sur tkinter : si vous n'en tenez pas compte...

  7. #7
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2018
    Messages : 10
    Par défaut
    Citation Envoyé par marco056 Voir le message
    J'ai déjà indiqué qqchose sur tkinter : si vous n'en tenez pas compte...
    Vous avez dit qu'il fallait mettre une majuscule mais la le probleme a l'air d'etre sur la bibliotheque PIL non?

  8. #8
    Membre Expert
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 617
    Par défaut
    Citation Envoyé par jejzis Voir le message
    Vous avez dit qu'il fallait mettre une majuscule mais la le probleme a l'air d'etre sur la bibliotheque PIL non?
    Sous Python3, c'est une minuscule.
    Ensuite, votre install n'est peut-être pas complète.

  9. #9
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2018
    Messages : 10
    Par défaut
    Citation Envoyé par marco056 Voir le message
    Sous Python3, c'est une minuscule.
    okay merci

    Citation Envoyé par marco056 Voir le message
    Ensuite, votre install n'est peut-être pas complète.
    Y a-t-il un moyen de vérifier ou alors je dois tout réinstaller?
    merci encore pour votre aide

  10. #10
    Membre Expert
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 617
    Par défaut
    On va faire autrement. Est-ce que cela fonctionne chez toi ? Chez moi, oui.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    import tkinter as tk
    from tkinter.filedialog import askopenfilename
    from PIL import Image, ImageTk
     
    def openfile():
        global photo
        im = askopenfilename(filetypes=[('png files', '.png'), ('jpg files', '.jpg')])
        image = Image.open(im) 
        photo = ImageTk.PhotoImage(image)
        canvas.itemconfig(cimage, image=photo)
     
    root = tk.Tk()
    canvas = tk.Canvas(root)
    cimage = canvas.create_image(0, 0, anchor=tk.NW, image="")
    canvas.pack()
    ouvrir = tk.Button(root, text="Ouvrir", command=openfile)
    ouvrir.pack()
    root.mainloop()

  11. #11
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2018
    Messages : 10
    Par défaut
    Bonjour, désolé d'avoir pris autant de temps à répondre,
    j'ai lancé votre programme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    import tkinter as tk
    from tkinter.filedialog import askopenfilename
    from PIL import Image, ImageTk
     
    def openfile():
        global photo
        im = askopenfilename(filetypes=[('png files', '.png'), ('jpg files', '.jpg')])
        image = Image.open(im) 
        photo = ImageTk.PhotoImage(image)
        canvas.itemconfig(cimage, image=photo)
     
    root = tk.Tk()
    canvas = tk.Canvas(root)
    cimage = canvas.create_image(0, 0, anchor=tk.NW, image="/media/pi/2EBD-C074/adrien/2007 Trial Chile/BILD0001.JPG")
    canvas.pack()
    ouvrir = tk.Button(root, text="Ouvrir", command=openfile)
    ouvrir.pack()
    root.mainloop()
    et j'ai eu le message d'erreur suivant:

    Traceback (most recent call last):
    File "/media/pi/2EBD-C074/adrien/testouvertureimage.py", line 3, in <module>
    from PIL import Image, ImageTk
    File "/media/pi/2EBD-C074/adrien/PIL/Image.py", line 60, in <module>
    from . import _imaging as core
    ImportError: /media/pi/2EBD-C074/adrien/PIL/_imaging.so: invalid ELF header
    J'ai tout retélécharger (Pillow) mais j'ai toujours le même message qui s'affiche
    Encore merci pour votre aide

  12. #12
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2018
    Messages : 10
    Par défaut
    Ca y est mes problèmes d'importation sont résolus mais le canevas qui s'affiche est totalement gris
    Une idée pour m'aider?
    merci d'avance
    Update:
    c'est juste un zoom fait sur une partie de l image mais je ne sais pas comment dézoomer pour l'avoir en entier

  13. #13
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 752
    Par défaut
    Salut,

    Citation Envoyé par jejzis Voir le message
    c'est juste un zoom fait sur une partie de l image mais je ne sais pas comment dézoomer pour l'avoir en entier
    Un "zoom" suppose un agrandissement.
    Par défaut, les dimensions de l'image sont préservées par le Canvas. Si l'image est plus grande (que les dimensions du Canvas), vous allez en voir un morceau... Mais agrandir le Canvas ou rendre l'image plus petite, à vous de voir en fonction de ce que vous voulez faire.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  14. #14
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2018
    Messages : 10
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Salut,
    Un "zoom" suppose un agrandissement.
    Par défaut, les dimensions de l'image sont préservées par le Canvas. Si l'image est plus grande (que les dimensions du Canvas), vous allez en voir un morceau... Mais agrandir le Canvas ou rendre l'image plus petite, à vous de voir en fonction de ce que vous voulez faire.
    - W
    Bonjour,
    J'ai juste utilisé le mauvais vocabulaire (désolé je débute) le canvas fait bien la taille de l'image mais n'en affiche qu'une partie (pour une photo de paysage je ne vois qu'une partie du ciel).
    J'ai résolu le problème en prennant des photos de dimensions choisies (grace à raspistill) mais je ne peux toujours pas ouvrir une ancienne photo.
    Merci à tous pour votre aide très précieuse

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. image très bizare avec PIL et Pygame
    Par fifafou dans le forum GUI
    Réponses: 1
    Dernier message: 26/04/2016, 20h19
  2. Afficher une image avec PIL
    Par laurent25 dans le forum Calcul scientifique
    Réponses: 3
    Dernier message: 17/10/2008, 12h42
  3. Création d'images avec PIL
    Par lempo dans le forum Calcul scientifique
    Réponses: 2
    Dernier message: 07/03/2008, 21h04
  4. Afficher une image avec PIL
    Par O_connor dans le forum Tkinter
    Réponses: 3
    Dernier message: 12/04/2007, 14h39
  5. [Tkinter] Insérer une image jpg sur un canvas avec PIL
    Par Kyojimbo dans le forum Tkinter
    Réponses: 2
    Dernier message: 23/02/2006, 16h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo