Domanda

Ho cercato di incorporare un'icona (.ico) nel mio "compyled" .exe con py2exe.

py2exe ha un modo per incorporare un'icona:

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

E questo è quello che sto usando. L'icona si presenta bene su Windows XP o inferiore, ma non mostra affatto su Vista. Suppongo che questo è a causa del nuovo formato icona di Vista, che può essere in formato PNG, fino a 256x256 pixel.

Quindi, come posso ottenere py2exe nell'incorporarli nel mio eseguibile, senza rompere le icone su Windows XP?

Sono fresco con farlo con un programma di utilità esterno piuttosto che py2exe - Ho provato questa utility da riga di comando per integrarlo, ma corrompe sempre il mio exe e tronca la sua dimensione per qualche motivo.

È stato utile?

Soluzione

Vista utilizza le icone di alta risoluzione 256x256 pixel le immagini, che vengono memorizzate mediante PNG-based di compressione. Il problema è se è sufficiente fare l'icona e salvarlo in formato ICO XP standard, il file risultante sarà 400Kb sul disco. La soluzione è quello di comprimere le immagini. Lo schema di compressione utilizzata è PNG (Portable Network Graphic) perché ha un buon rapporto senza perdita di dati e supporta il canale alfa.

E utilizzare

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

Si crea un file ICO da 1 o più PNG di e gestisce più formati ecc E credo che XP non avrebbe alcun problema con questo.

Altri suggerimenti

Sembra che l'ordine delle dimensioni delle icone è la chiave, come detto da Helmut. Per invertire le pagine (quelli più grandi prima) risolve il problema su Windows 7 per 'include_resources' (utilizzando py2exe 0.6.9).

ho avuto problemi con l'incorporamento della risorsa icona con py2exe su Windows7 utilizzando un file .ico contenente un'immagine di 32x32 pixel. Stavo usando lo stesso metodo alla domanda originale.

Una volta compilato l'icona sul exe scompare. Su indagine viene aggiunta l'icona di indice 0, secondo il Hacker strumento di risorse, ma se uso il stesso strumento per sostituire l'icona viene aggiunto in corrispondenza dell'indice 1. Una volta al indice 1 l'icona appare magicamente nel esploratore contro l'exe di nuovo.

Se disperata, è possibile utilizzare Resource Hacker di modificare l'exe di post-generazione e può essere script tramite l'interfaccia a riga di comando, ma ho provato il metodo spiegato in precedenza e sono riuscito a farlo funzionare dopo l'inversione dei file PNG in questo modo.

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

Tra l'altro con l'aggiunta di più icone di file ico si sono poi popolano la risorsa a icona indice 1 in ogni caso, in questo caso myico248x248.png.

Il link al Greenfish Iceon Editor Pro è rotto. Ho scansionato la rete e trovato Scarica IcoFX Utilizzato il programma IcoFX sul mio file .exe e poteva vedere che in effetti conteneva mia icona.

Con il menu Immagine-> Crea icone di Windows da immagine, e quindi accettando le scelte che ho ottenuto un nuovo file .ico che ha lavorato sia su Win7 e Win XP.

Prima che il mio unico file 48x48.ico solo non si è presentata come un'icona per il programma.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top