Подтвердить что ты не робот

Вставка значка в .exe с py2exe, видимая в Vista?

Я пытаюсь вставить значок (.ico) в свой "compyled".exe с py2exe.

Py2Exe имеет способ вставить значок:

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

И это то, что я использую. Значок хорошо отображается в Windows XP или ниже, но не отображается вообще на Vista. Я полагаю, это связано с новым форматом значков Vista, который может быть в формате PNG, размером до 256x256 пикселей.

Итак, как я могу заставить py2exe внедрить их в мой исполняемый файл, не нарушая значки в Windows XP?

Мне нравится делать это с внешней утилитой, а не с py2exe - я пробовал эту утилиту командной строки для ее вставки, но он по-прежнему развращает мой exe и урезает его размер по какой-то причине.

4b9b3361

Ответ 1

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

И используйте

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

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

Ответ 2

Кажется, что размер иконок - это ключ, как сказал Хельмут. Чтобы инвертировать страницы (более крупные), решает проблему в Windows 7 для "include_resources" (используя Py2exe 0.6.9).

Ответ 3

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

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

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

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

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

Ответ 4

Отключена ссылка на редактор Icefish Iceon Pro. Я просмотрел сеть и нашел Загрузить IcoFX Использовал программу IcoFX в моем .exe файле и мог видеть, что на самом деле он содержал мой значок.

Используя меню Image- > Create Windows Icons from Image, а затем примите варианты, я получил новый файл .ico, который работал как на win7, так и на win xp.

До этого мой единственный файл 48x48.ico просто не отображался как значок для программы.