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 10:01:54

calixtus06
Membre
Distrib. : Librazik2
Noyau : Linux version 4.9.0-6-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 10:16:41

bendia
Admin stagiaire
Distrib. : Stretch (et un peu Jessie)
Noyau : Linux 4.9.0-2-amd64
(G)UI : Gnome + Console
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.
file-Re06858991f6f328b4907296ac5cea283

En ligne

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

calixtus06
Membre
Distrib. : Librazik2
Noyau : Linux version 4.9.0-6-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 11:48:45)


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

Hors ligne

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

David5647
Membre
Distrib. : Debian Buster
Noyau : 4.15.0-2-amd64
(G)UI : 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 11:57:13)

Hors ligne

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

enicar
Membre
Lieu : Grenoble
Distrib. : debian/sid
Noyau : Linux 4.16.2
(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 12:53:17)


La machine, c'est dépassé ! On va tout remplacer par des humains big_smile

Hors ligne

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

enicar
Membre
Lieu : Grenoble
Distrib. : debian/sid
Noyau : Linux 4.16.2
(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 13:08:00)


La machine, c'est dépassé ! On va tout remplacer par des humains big_smile

Hors ligne

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

bendia
Admin stagiaire
Distrib. : Stretch (et un peu Jessie)
Noyau : Linux 4.9.0-2-amd64
(G)UI : Gnome + Console
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.
file-Re06858991f6f328b4907296ac5cea283

En ligne

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

smolski
administrateur quasi...modo
Lieu : AIN
Distrib. : 9 (stretch) 64 bits + backports
Noyau : 4.9.65-3+deb9u2
(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 13:51:33)


"Théo et Adama te rappellent pourquoi Zyed et Bouna couraient…"
"L'utopie ne signifie pas l'irréalisable, mais l'irréalisée." - T Monod (source :  La zone de Siné)
"Je peux rire de tout mais pas avec n'importe qui." - P Desproges
"saque eud dun" (patois chtimi : fonce dedans)

En ligne

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

enicar
Membre
Lieu : Grenoble
Distrib. : debian/sid
Noyau : Linux 4.16.2
(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…).


La machine, c'est dépassé ! On va tout remplacer par des humains big_smile

Hors ligne

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

David5647
Membre
Distrib. : Debian Buster
Noyau : 4.15.0-2-amd64
(G)UI : 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