Значок Embedding в .exe с py2exe, видимым в Vista?

В терминологии C / C ++ есть великолепное слово, которое используется для статических массивов и указателей функций - decay . Рассмотрим следующий код:

int intArray[] = {1, 3, 5, 7, 11}; // static array of 5 ints
//...
void f(int a[]) {
  // ...
}
// ...
f(intArray); // only pointer to the first array element is passed
int length = sizeof intArray/sizeof(int); // calculate intArray elements quantity (equals 5)
int ptrToIntSize = sizeof(*intArray); // calculate int * size on your system
17
задан nosklo 8 February 2009 в 09:10
поделиться

2 ответа

Vista использует иконки изображений высокого разрешения 256x256 пикселей, они сохраняются с использованием сжатия на основе PNG . Проблема в том, что если вы просто сделаете иконку и сохраните ее в стандартном формате XP ICO, результирующий файл будет 400Kb на диске. Решение состоит в том, чтобы сжать изображения. Используется схема сжатия PNG (Portable Network Graphic), потому что она имеет хорошее соотношение без потерь и поддерживает альфа-канал.

И использовать

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

Он создает файл ICO из 1 или более PNG и обрабатывает несколько размеров и т. Д. И я думаю, что XP не будет иметь проблем с этим.

20
ответ дан 30 November 2019 в 12:27
поделиться

У меня были проблемы с внедрением ресурса значков py2exe в Windows7 с использованием файла .ico, содержащего изображение размером 32x32 пикселя. Я использовал тот же метод, что и первоначальный вопрос.

После компиляции значок на exe исчезает. При исследовании значок добавляется в индекс 0, согласно инструменту Resource Hacker , но если я использую тот же инструмент для замены значка, он добавляется в индекс 1. Однажды в индексе 1 значок волшебным образом появляется в Исследователь против exe снова.

Если вы в отчаянии, вы можете использовать Resource Hacker, чтобы изменить exe-пост-сборку, и он может быть записан через сценарий через интерфейс командной строки, но я попробовал метод, описанный выше, и сумел заставить его работать после обращения png-файлов следующим образом.

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

Кстати, добавив несколько значков в файл ico, вы все равно заполняете ресурс индексом значков 1, в данном случае myico248x248.png.

4
ответ дан 30 November 2019 в 12:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: