Base64 als Fenstericon in Python?

Gast #4517843
Hi,

kann ich ein Fenstericon als Base64 verwenden?

Ich habe das so versucht, aber leider ohne Erfolg.
1
fenster = tk.Tk()
2
grape_ico_b64='''
3
AAABAAEAQEAAAAEAIAAo
4
'''
5
# Icon für Lesbarkeit gekürzt
6

7
myicon = tk.PhotoImage(data=grape_ico_b64)  
8
fenster.iconbitmap(image=myicon)
9
fenster.mainloop()

Als Fehler bekomme ich
1
Traceback (most recent call last):
2
  File "D:\python\Base64_icon_test.py", line 15, in <module>
3
    fenster.iconbitmap(myicon)
4
  File "C:\Python34\lib\tkinter\__init__.py", line 1648, in wm_iconbitmap
5
    return self.tk.call('wm', 'iconbitmap', self._w, bitmap)
6
_tkinter.TclError: bitmap "pyimage1" not defined

Wenn ich auf der selben Basis ein Hintergrundbild einbinde, dann geht 
das.
1
photo = tk.PhotoImage(data=grape_ico_b64)  
2
text1.insert(END,'\n')
3
text1.image_create(END, image=photo)
4
text1.pack(side=LEFT)
Gast #4518300
Rolf schrieb:

> kann ich ein Fenstericon als Base64 verwenden?

Ja.

Als Beispiel die Buttons zur Sprachumschaltung bei 
PyKiCad-CaseSensitiveLibCure_RevD_13Apr2015.py aus 
http://www.mikrocontroller.net/wikifiles/f/f6/PyKiCad-CaseSensitiveLibCure_RevD_13Apr2015.zip 
(Achtung, Python 3 !)

Geht nicht nur mit Grafiken, auch mit Audio.

Matthias R. schrieb:
> Base64 etwa im Rahmen des Authentifizierungprozesses bei smtp war mir
> bekannt, aber wieso sollte man Bild-/Icon-Dateien base64-encoden?
>
> Wozu das ganze?

Damit können die Icon Grafiken direkt in das Skript mit eingebunden 
werden.
Das ist halt einfacher jemandem in die Hand zu geben der sich damit 
nicht Auskennt, als wenn er einem ganzen Ordner hat, wo alles mit dem 
richtigem Namen am richtigen Platz stehen muss.

Hat natürlich alles seine Grenzen......
#4518930
Oliver R.schrieb:

>https://wiki.selfhtml.org/wiki/Grafik/Grafiken_mit_Data-URI

Danke! War mir neu, dass so was eingesetzt wird.

Mauricio di Mauro schrieb:

>Damit können die Icon Grafiken direkt in das Skript mit eingebunden
>werden.
>Das ist halt einfacher jemandem in die Hand zu geben der sich damit
>nicht Auskennt, als wenn er einem ganzen Ordner hat, wo alles mit dem
>richtigem Namen am richtigen Platz stehen muss.

Ich habe gerade gelesen, dass auch e-mail-Anhänge, Logos und Signaturen 
innerhalb einer Mail base64 encoded werden können. Letztere werden dann 
in jedem Falle angezeigt, auch wenn der Mail Client sie doch lieber 
blocken möchte. Sehr coole Sache.
#4523088
Matthias R. schrieb:
> Oliver R.schrieb:
>
>>https://wiki.selfhtml.org/wiki/Grafik/Grafiken_mit_Data-URI
>
> Danke! War mir neu, dass so was eingesetzt wird.
>
> Mauricio di Mauro schrieb:
>
>>Damit können die Icon Grafiken direkt in das Skript mit eingebunden
>>werden.
>>Das ist halt einfacher jemandem in die Hand zu geben der sich damit
>>nicht Auskennt, als wenn er einem ganzen Ordner hat, wo alles mit dem
>>richtigem Namen am richtigen Platz stehen muss.
>
> Ich habe gerade gelesen, dass auch e-mail-Anhänge, Logos und Signaturen
> innerhalb einer Mail base64 encoded werden können.
nicht können - müssen, da eine Email grundsätzlich keine Binärdaten 
enthalten kann.
Alle Anhänge werden auf diese Weise kodiert, was selbige in einer Mail 
eben auch 25% größer macht.

> Letztere werden dann
> in jedem Falle angezeigt, auch wenn der Mail Client sie doch lieber
> blocken möchte. Sehr coole Sache.
Das blocken bezieht sich ja nur auf das Nachladen extern eingebundener 
Inhalte

Sascha

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 10 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.