Incorporação ícone em .exe com py2exe, visível no Vista?
-
22-08-2019 - |
Pergunta
Eu tenho tentado incorporar um ícone (.ico) para o meu .exe "compyled" com py2exe.
Py2Exe tem uma maneira de incorporar um ícone:
windows=[{
'script':'MyScript.py',
'icon_resources':[(1,'MyIcon.ico')]
}]
E é isso que eu estou usando. O ícone aparece bem no Windows XP ou menor, mas não mostrar a todos no Vista. Acho que isso é por causa do novo formato ícone Vista, que pode ser em formato PNG, até 256x256 pixels.
Então, como posso obter py2exe incorporá-los em meu executável, sem quebrar os ícones no Windows XP?
Eu estou bem com fazê-lo com um utilitário externo ao invés de py2exe - Eu tentei este utilitário de linha de comando para incorporá-lo, mas sempre corrompe minha exe e trunca o seu tamanho por algum motivo.
Solução
Vista utiliza ícones de alta resolução 256x256 pixels imagens, eles são armazenados usando baseado em PNG compressão. O problema é se você simplesmente fazer o ícone e salve-o em formato XP ICO
padrão, o arquivo resultante será 400Kb
no disco. A solução é comprimir as imagens. O esquema de compressão utilizado é PNG
(Portable Network Graphic) porque tem uma boa relação lossless e suporta canal alfa.
E o uso
png2ico myicon.ico logo16x16.png logo32x32.png logo255x255.png
Ele cria um arquivo ICO
de 1 ou mais PNG
de e lida com vários tamanhos etc. E eu acho que XP não teria nenhum problema com isso.
Outras dicas
Parece que a ordem de tamanhos de ícones é a chave, como disse Helmut. Para inverter as páginas (os maiores primeiro) resolve o problema no Windows 7 para 'include_resources' (usando py2exe 0.6.9).
Eu estava tendo problemas com incorporar o recurso de ícone com py2exe no Windows7 usando um arquivo .ico que contém uma imagem de 32x32 pixels. Eu estava usando o mesmo método que a pergunta original.
Uma vez compilado o ícone na desaparece exe. Na investigação do ícone é adicionado no índice 0, de acordo com a ferramenta Hacker Resource, mas se eu usar o mesma ferramenta para substituir o ícone que é adicionado no índice 1. uma vez no índice 1 do ícone aparece magicamente no explorer contra o exe novamente.
Se desesperada, você poderia usar Resource Hacker alterar o exe pós-compilação e pode ser programado através da interface de linha de comando, mas eu tentei o método explicado acima e conseguiu fazê-lo funcionar após reverter os arquivos PNG assim.
png2ico.exe myico.ico myico248x248.png myico48x48.png myico32x32.png myico16x16.png
A propósito, adicionando vários ícones para o arquivo ico então você está preenchendo o recurso no índice 1 Ícone de qualquer maneira, neste caso myico248x248.png.
O link para o Greenfish Iceon Editor Pro é quebrado. Eu fiz a varredura na net e encontrei Baixar IcoFX Utilizado o programa IcoFX no meu arquivo .exe e pude ver que, de fato, continha meu ícone.
Usando o menu Image-> Criar ícones do Windows a partir da imagem e, em seguida, aceitar as escolhas que eu tenho um novo arquivo .ico que trabalhou em ambos win7 e ganhar xp.
Antes que meu arquivo 48x48.ico único simplesmente não aparecer como um ícone para o programa.