Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Insérer une image dans le script source

3 réponses
Avatar
Julius Caesar
Salut,

pour la portabilité de mon script, et du fait que j'aimerais avoir une image
dans le GUI Tkinter que j'ai créé, j'aimerais savoir comment intégrer une
image (ou une quelconque "donnée" binaire) dans le script sans qu'elle soit
interpretée mais tout de même accessible dans le script...

Je pensais à une sorte de zone de donnée (style Data Segment en asm)... Par
contre, j'ai pas trouvé dans la doc comment c'est faisable (si c'est
possible)

Avez-vous une idée?

Merci d'avance :)

JC

3 réponses

Avatar
Eric Brunel
Julius Caesar wrote:
Salut,

pour la portabilité de mon script, et du fait que j'aimerais avoir une image
dans le GUI Tkinter que j'ai créé, j'aimerais savoir comment intégrer une
image (ou une quelconque "donnée" binaire) dans le script sans qu'elle soit
interpretée mais tout de même accessible dans le script...

Je pensais à une sorte de zone de donnée (style Data Segment en asm)... Par
contre, j'ai pas trouvé dans la doc comment c'est faisable (si c'est
possible)

Avez-vous une idée?


Tu peux mettre tes données binaires dans une chaine: ça marche sans problème.
Pour avoir la chaine effective, tu peux faire ça:

f = open('MonFichierBinaire.gif', 'rb')
print repr(f.read())
f.close()

Après, tu n'as plus qu'à copier/coller ce que t'as affiché le script.

Par contre, pour re-créer l'image à partir de cette chaine, il faudra quand meme
créer un fichier (ouvert en mode binaire bien sur...) et écrite ta chaine
dedans. Apparemment, spécifier une option data à une PhotoImage Tkinter ne
marche pas (en tous cas, je n'ai jamais réussi).

HTH
--
- Eric Brunel <eric (underscore) brunel (at) despammed (dot) com> -
PragmaDev : Real Time Software Development Tools - http://www.pragmadev.com

Avatar
Olivier Ravard
"Eric Brunel" a écrit dans le message de news:
41b88de1$0$3425$
Julius Caesar wrote:
Salut,

pour la portabilité de mon script, et du fait que j'aimerais avoir une
image


dans le GUI Tkinter que j'ai créé, j'aimerais savoir comment intégrer
une


image (ou une quelconque "donnée" binaire) dans le script sans qu'elle
soit


interpretée mais tout de même accessible dans le script...

Je pensais à une sorte de zone de donnée (style Data Segment en asm)...
Par


contre, j'ai pas trouvé dans la doc comment c'est faisable (si c'est
possible)

Avez-vous une idée?


Tu peux mettre tes données binaires dans une chaine: ça marche sans
problème.

Pour avoir la chaine effective, tu peux faire ça:

f = open('MonFichierBinaire.gif', 'rb')
print repr(f.read())
f.close()

Après, tu n'as plus qu'à copier/coller ce que t'as affiché le script.

Par contre, pour re-créer l'image à partir de cette chaine, il faudra
quand meme

créer un fichier (ouvert en mode binaire bien sur...) et écrite ta chaine
dedans. Apparemment, spécifier une option data à une PhotoImage Tkinter ne
marche pas (en tous cas, je n'ai jamais réussi).

HTH


Il y a d'autres techniques... Voir la démo wxPython (modules images je
crois).
Je sais , ce n'est pas Tkinter mais ça peut donner des idées...

--
- Eric Brunel <eric (underscore) brunel (at) despammed (dot) com> -
PragmaDev : Real Time Software Development Tools -
http://www.pragmadev.com



Avatar
LioneL
bonjour

pour la portabilité de mon script, et du fait que j'aimerais avoir une image
dans le GUI Tkinter que j'ai créé, j'aimerais savoir comment intégrer une
image (ou une quelconque "donnée" binaire) dans le script sans qu'elle soit
interpretée mais tout de même accessible dans le script...


voici un exemple de script :

#! /usr/bin/env python
# -*- coding: iso-8859-1 -*-

import Tkinter
from Tkconstants import *

# fichier image transformer en base64
# import base64
# print "icon='''n" + base64.encodestring(open("icon.gif").read()) +
"'''"

B64TOP =
"""R0lGODlhGAAYAOMAAMzM/5mZ/5mZzGZmzGZmmTMzZsDAwAAAM///////////////////////////
/////yH5BAEAAAYALAAAAAAYABgAAARQ0MhJq7046827/1YhjuSoAUWgrmxQnGUsnkBdGwcBVukh
7BJBqqADFgCBgW8nRA6Iu+NK+fM0p1CPlEXtXLnZzdFGDhw6BJmoCGy73/C4IQIAOw=="""

def main():
root = Tkinter.Tk()
Image = Tkinter.PhotoImage(data¶4TOP)
frm = Tkinter.Label(root, image=Image)
frm.pack()
#
root.iconify()
root.update()
root.title('Démo Tkinter')
root.deiconify()
root.mainloop()

if __name__ == '__main__':
main()

Lionel
--
Python facile : http://pythonfacile.free.fr/
Les ressources (liens) en français sur Python.
Python et l'unicode. Les caractères accentués dans un terminal 'DOS'.

Adrian a disparu, aidez-nous: http://www.encontrar-adrian.com/