Frage

Ich habe versucht, ein Symbol (ICO) in mein "compyled" .exe mit py2exe einzubetten.

Py2exe hat eine Art und Weise ein Symbol einbetten:

windows=[{
    'script':'MyScript.py',
    'icon_resources':[(1,'MyIcon.ico')]
}]

Und das ist, was ich benutze. Das Symbol zeigt sich gut auf Windows XP oder niedriger ist, zeigt aber durchaus nicht auf Vista. Ich nehme an, dies wegen des neuen Vista Icon-Formats, das im PNG-Format sein kann, bis zu 256x256 Pixeln.

Also, wie kann ich py2exe sie in meine ausführbare Datei einzubetten, ohne die Symbole auf Windows XP zu brechen?

Ich bin cool mit ihm mit einem externen Dienstprogramm zu tun, anstatt py2exe - ich habe versucht, dieses Befehlszeilenprogramm es einzubetten, aber es ist meine exe immer korrumpiert und aus irgendeinem Grund seiner Größe abschneidet.

War es hilfreich?

Lösung

Vista-Icons mit hohen Auflösung verwendet 256x256 Pixel-Bilder, sie verwenden gespeichert PNG-basierte Kompression. Das Problem ist, wenn Sie einfach auf das Symbol machen und es in Standard-XP ICO-Format speichern, wird die resultierende Datei auf der Festplatte 400Kb werden. Die Lösung ist, die Bilder zu komprimieren. Die Regelung Kompression verwendet wird PNG (Portable Network Graphic), weil es ein gutes lossless Verhältnis und unterstützt Alpha-Kanal.

Und verwenden

png2ico myicon.ico logo16x16.png logo32x32.png logo255x255.png

Es schafft eine ICO Datei von 1 oder mehr PNG ist und verarbeitet mehr Größen usw. Und ich denke, XP kein Problem damit haben würde.

Andere Tipps

Es scheint, dass die Reihenfolge der Symbolgrößen der Schlüssel ist, wie Helmut sagte. So kehrt die Seiten (größere ersten) löst das Problem auf Windows 7 für 'include_resources' (mit Py2exe 0.6.9).

Ich habe Probleme mit der Symbolressource mit py2exe auf Windows7 Einbetten eine ICO-Datei mit einem 32x32 Pixel-Bild enthält. Ich war die gleiche Methode wie die ursprüngliche Frage verwendet wird.

Sobald das Symbol kompiliert auf die exe verschwindet. Bei der Untersuchung wird das Symbol im Index 0, nach dem Resource Hacker Tool hinzugefügt, aber wenn ich die gleiche Werkzeug, um das Symbol zu ersetzen es mit dem Index 1. Wenn am Index 1 das Symbol gegen die exe im Explorer erscheint auf magische Weise wieder hinzugefügt wird.

Wenn verzweifelt, könnten Sie Resource Hacker verwenden, um die exe Post-Build zu ändern und es kann über die Befehlszeilenschnittstelle scripted werden, aber ich versuchte, das oben erläuterte Verfahren und verwaltet, um es wie so nach der Umkehr der png-Dateien zu arbeiten.

png2ico.exe myico.ico myico248x248.png myico48x48.png myico32x32.png myico16x16.png

Durch die Art und Weise durch mehrere Symbole der ICO-Datei hinzugefügt werden Sie dann 1 ohnehin die Ressource auf Symbol Index bevölkern, in diesem Fall myico248x248.png.

Der Link zum Greenfish Iceon Editor Pro ist gebrochen. Ich suchte im Internet und fand Herunterladen IcoFX Verwendet, um das IcoFX Programm auf meiner EXE-Datei und sehen konnte, dass in der Tat es ist mein Symbol enthalten.

Mit dem Menü Image-> Erstellen von Windows-Icons von Bild und dann die Auswahl zu akzeptieren ich eine neue ICO-Datei bekam, die sowohl auf win7 gearbeitet und xp gewinnen.

Vor, dass meine einzige 48x48.ico Datei einfach nicht als Symbol für das Programm angezeigt hat.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top