logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 02-02-2018 09:01:54

calixtus06
Membre
Distrib. : Librazik 4
Noyau : 5.10.0-14-lzk-bl-amd64
(G)UI : mate
Inscription : 25-03-2016

Comment incorporer un .jpg dans un script python3

RE bonjour les copains et encore merci pour votre aide précédemment !

Là ma question concerne l'intégration d'une image . Je suis ce cours, il y a un exemple :

http://apprendre-python.com/page-tkinte … n-tutoriel

mais je me retrouve avec un message d'erreur :

nicolas@nicolasMAO:~/SC$ ./tkinter222018.py
Traceback (most recent call last):
  File "./tkinter222018.py", line 50, in <module>
    photo = PhotoImage(file="20170903_112408.jpg")
  File "/usr/lib/python3.4/tkinter/__init__.py", line 3419, in __init__
    Image.__init__(self, 'photo', name, cnf, master, **kw)
  File "/usr/lib/python3.4/tkinter/__init__.py", line 3375, in __init__
    self.tk.call(('image', 'create', imgtype, name,) + options)
_tkinter.TclError: couldn't open "20170903_112408.jpg": no such file or directory
nicolas@nicolasMAO:~/SC$
 



#!/usr/bin/env python3
# -*- coding: utf-8 -*-
 
from tkinter import *

fenetre = Tk()

label = Label(fenetre, text="Hello World")
label.pack()

# bouton de sortie
bouton=Button(fenetre, text="Fermer", command=fenetre.quit)
bouton.pack()


# label
label = Label(fenetre, text="T\'as vu ta tronche ?", bg="blue")
label.pack()

# checkbutton
bouton = Checkbutton(fenetre, text="Nouveau?")
bouton.pack()

# radiobutton
value = StringVar()
bouton1 = Radiobutton(fenetre, text="Oui", variable=value, value=1)
bouton2 = Radiobutton(fenetre, text="Non", variable=value, value=2)
bouton3 = Radiobutton(fenetre, text="Peu être", variable=value, value=3)
bouton1.pack()
bouton2.pack()
bouton3.pack()

# liste
liste = Listbox(fenetre)
liste.insert(1, "Python")
liste.insert(2, "PHP")
liste.insert(3, "jQuery")
liste.insert(4, "CSS")
liste.insert(5, "Javascript")

liste.pack()

# canvas
canvas = Canvas(fenetre, width=150, height=120, background='yellow')
ligne1 = canvas.create_line(75, 0, 75, 120)
ligne2 = canvas.create_line(0, 60, 150, 60)
txt = canvas.create_text(75, 60, text="Cible", font="Arial 16 italic", fill="blue")
canvas.pack()

photo = PhotoImage(file="20170903_112408.jpg")

canvas = Canvas(fenetre,width=350, height=200)
canvas.create_image(0, 0, anchor=NW, image=photo)
canvas.pack()



fenetre.mainloop()



Merci de vos éclairages

Nico


Il n'y a pas de mauvaises questions...

Hors ligne

#2 02-02-2018 09:16:41

bendia
Chadministrateur
Distrib. : openSUSE Tumbleweed, Buster
Noyau : Linux 5.9.1-2-default + Linux 4.19.0-12-amd64
(G)UI : Gnome + Console et un peu Fluxbox
Inscription : 20-03-2012
Site Web

Re : Comment incorporer un .jpg dans un script python3

Salut smile

Tu mets une chemin relatif pour récupérer ton image. Es-tu certain que ton script est exécuté dans le même dossier que l'image ?

Ben
___________________
La seule question bête, c'est celle qu'on ne pose pas.

Hors ligne

#3 02-02-2018 10:43:33

calixtus06
Membre
Distrib. : Librazik 4
Noyau : 5.10.0-14-lzk-bl-amd64
(G)UI : mate
Inscription : 25-03-2016

Re : Comment incorporer un .jpg dans un script python3

Re salut

Oui effectivement ils ne sont pas dans le même dossier . Je fais un essai

nicolas@nicolasMAO:~/SC$ ./tkinter222018.py
Traceback (most recent call last):
  File "./tkinter222018.py", line 50, in <module>
    photo = PhotoImage(file="/home/nicolas/Images/2017/ARPISON/20170903_112408.jpg")
  File "/usr/lib/python3.4/tkinter/__init__.py", line 3419, in __init__
    Image.__init__(self, 'photo', name, cnf, master, **kw)
  File "/usr/lib/python3.4/tkinter/__init__.py", line 3375, in __init__
    self.tk.call(('image', 'create', imgtype, name,) + options)
_tkinter.TclError: couldn't open "/home/nicolas/Images/2017/ARPISON/20170903_112408.jpg": no such file or directory
nicolas@nicolasMAO:~/SC$
 



??

Dernière modification par calixtus06 (02-02-2018 10:48:45)


Il n'y a pas de mauvaises questions...

Hors ligne

#4 02-02-2018 10:56:33

David5647
Membre
Distrib. : Debian Sid
Noyau : 5.15.0-2-amd64
(G)UI : i3wm + des bouts de kde
Inscription : 27-08-2017

Re : Comment incorporer un .jpg dans un script python3

Salut!

PhotoImage ne lit pas les jpg ,
utilise le package pillow pour travailler sur des images
http://effbot.org/tkinterbook/photoimage.htm

Dernière modification par David5647 (02-02-2018 10:57:13)

Hors ligne

#5 02-02-2018 11:52:40

enicar
Membre
Lieu : pas ici
Distrib. : sid
Noyau : Linux 6.5.3
(G)UI : openbox
Inscription : 26-08-2010

Re : Comment incorporer un .jpg dans un script python3

David5647 a écrit :

PhotoImage ne lit pas les jpg ,


Ok, mais alors, quel format d'image gère-t-il ? Car on peut aussi convertir l'image
dans un format approprié.

Dernière modification par enicar (02-02-2018 11:53:17)

Hors ligne

#6 02-02-2018 12:07:29

enicar
Membre
Lieu : pas ici
Distrib. : sid
Noyau : Linux 6.5.3
(G)UI : openbox
Inscription : 26-08-2010

Re : Comment incorporer un .jpg dans un script python3

Je viens de regarder dans la doc de tkinter ici,
les formats gérés par PhotoImage sont gif, pgm et ppm. Il suffit de convertir l'image en gif par exemple, avec la commande


cd /home/nicolas/Images/2017/ARPISON/
convert 20170903_112408.jpg 20170903_112408.gif
 


La commande convert fait partie du paquet imagemagick qui devra être installé le  cas
échéant.

Dernière modification par enicar (02-02-2018 12:08:00)

Hors ligne

#7 02-02-2018 12:27:49

bendia
Chadministrateur
Distrib. : openSUSE Tumbleweed, Buster
Noyau : Linux 5.9.1-2-default + Linux 4.19.0-12-amd64
(G)UI : Gnome + Console et un peu Fluxbox
Inscription : 20-03-2012
Site Web

Re : Comment incorporer un .jpg dans un script python3

Attention, c'est la doc de la version 8.5, et on est en 8.6 sous Stretch ... Du coup, il y a de nouveau format supportés, dont, le png.

Ben
___________________
La seule question bête, c'est celle qu'on ne pose pas.

Hors ligne

#8 02-02-2018 12:31:17

smolski
quasi...modo
Lieu : AIN
Distrib. : backports (buster) 10
Noyau : Linux 4.19.0-8-amd64
(G)UI : gnome
Inscription : 21-10-2008

Re : Comment incorporer un .jpg dans un script python3

imagemagick avec convert le lien au tuto : https://debian-facile.org/doc:media:imagemagick wink

Dernière modification par smolski (02-02-2018 12:51:33)


saque eud dun (patois chtimi : fonce dedans)

Hors ligne

#9 02-02-2018 12:34:52

enicar
Membre
Lieu : pas ici
Distrib. : sid
Noyau : Linux 6.5.3
(G)UI : openbox
Inscription : 26-08-2010

Re : Comment incorporer un .jpg dans un script python3

bendia a écrit :

Attention, c'est la doc de la version 8.5, et on est en 8.6 sous Stretch ... Du coup, il y a de nouveau format supportés, dont, le png.


Formidable, autant convertir en png (je n'aime pas tellement le gif…).

Hors ligne

#10 02-02-2018 13:10:14

David5647
Membre
Distrib. : Debian Sid
Noyau : 5.15.0-2-amd64
(G)UI : i3wm + des bouts de kde
Inscription : 27-08-2017

Re : Comment incorporer un .jpg dans un script python3

enicar a écrit :

Ok, mais alors, quel format d'image gère-t-il ?


Ok, je suis allé un peu vite en besogne :
La classe PhotoImage ne supporte pas le jpg,
Je proposais d'utiliser Pillow (python3) ou PIL (python2),
après recherche, il semblerai que PIL est incluse dans Tkinter par l'intermediare de la classe TKimage,
http://tkinter.fdex.eu/doc/sa.html#images :

Les images

Il y a trois méthodes générales pour afficher des images dans votre application tkinter.

    Pour afficher une image bitmap dans le format .xbm, voir La classe BitmapImage.
    Pour afficher des images dans le format .gif, .pgm ou .ppm, voir La classe PhotoImage.
    La libraire d’images de Python (PIL) offre un support pour une plus grande variété de format. Sa classe ImageTk a été spécialement conçue pour afficher des images dans les applications tkinter.



mais on peut effectivement convertir l'image

Hors ligne

Pied de page des forums