Question

J'ai essayé d'intégrer une icône (.ico) dans mon "compyled" .exe avec py2exe.

py2exe a une façon d'intégrer une icône:

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

Et c'est ce que je me sers. L'icône apparaît bien sous Windows XP ou plus bas, mais ne montre pas du tout sur Vista. Je suppose que cela est dû au fait du nouveau format d'icône de Vista, qui peut être au format PNG, jusqu'à 256x256 pixels.

Alors, comment puis-je py2exe à les intégrer dans mon exécutable, sans casser les icônes sous Windows XP?

Je suis cool avec le faire avec un utilitaire externe plutôt que py2exe - J'ai essayé cet utilitaire de ligne de commande pour l'intégrer, mais il corrompt toujours mon exe et tronque sa taille pour une raison quelconque.

Était-ce utile?

La solution

Vista utilise des icônes de haute résolution 256x256 pixels des images, ils sont stockés en utilisant basé-PNG compression. Le problème est que si vous faites simplement sur l'icône et de l'enregistrer au format standard XP ICO, le fichier résultant sera 400Kb sur le disque. La solution consiste à compresser les images. Le système de compression utilisé est PNG (Portable Network Graphic) car il a un bon rapport sans perte et prend en charge le canal alpha.

Et utiliser

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

Il crée un fichier ICO de 1 ou plus des années PNG et gère plusieurs tailles, etc. Et je suppose que XP aurait aucun problème avec cela.

Autres conseils

Il semble que l'ordre de la taille des icônes est la clé, comme le dit Helmut. Pour inverser les pages (plus grandes en premier) résout le problème sous Windows 7 pour 'include_resources' (en utilisant py2exe 0.6.9).

J'avais des problèmes avec l'intégration de la ressource icône avec py2exe sur Windows7 en utilisant un fichier .ico contenant une image de 32x32 pixels. J'utilisais la même méthode que la question initiale.

Une fois compilé l'icône sur l'exe disparaît. Sur enquête, l'icône est ajoutée à l'index 0, selon le Resource Hacker outil, mais si j'utilise la même outil pour remplacer l'icône est ajoutée à l'index 1. une fois à l'index 1 l'icône apparaît comme par magie dans l'explorateur contre l'exe à nouveau.

Si désespérée, vous pouvez utiliser Resource Hacker pour modifier la post-construction exe et il peut écrire des scripts via l'interface de ligne de commande, mais j'ai essayé la méthode expliquée ci-dessus et a réussi à le faire fonctionner après avoir renversé les fichiers .png comme ceci.

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

Soit dit en passant par l'ajout de plusieurs icônes dans le fichier ico vous êtes alors peuplez la ressource à l'icône index 1 de toute façon, dans ce cas myico248x248.png.

Le lien vers le Iceon Editor Pro Greenfish est cassé. Je scrutais le net et trouvé Télécharger IcoFX Utilisé le programme IcoFX sur mon fichier .exe et pourrait voir qu'en effet, il contenait mon icône.

Utilisation du menu Image-> Créer Icônes Windows à partir de l'image, puis accepter les choix que j'ai obtenu un nouveau fichier .ico qui a travaillé à la fois sur win7 et win xp.

Avant que mon seul fichier 48x48.ico n'a tout simplement pas présenté comme une icône du programme.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top