Отсутствует приветственное изображение в NSIS / MUI2 - PullRequest
7 голосов
/ 27 августа 2009

Я изо всех сил пытаюсь добавить изображение на первую страницу установщика, написанного с помощью NSIS / MUI2 .

Вот урезанная версия кода, который я использую.

!include "MUI2.nsh"

!define MUI_HEADERIMAGE
    !define MUI_HEADERIMAGE_BITMAP nsis-header.bmp

!define MUI_WELCOMEFINISHPAGE_BITMAP nsis-welcome.bmp

OutFile "Setup.exe"

# Set language
!insertmacro MUI_LANGUAGE "English"

# Pages for installation
!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_LICENSE "..\LICENSE"
!insertmacro MUI_PAGE_FINISH

Section Foo
SectionEnd

Заголовок правильно отображается на странице лицензии, но я не могу его отобразить на странице приветствия. Я попытался с изображением 164x314 (как рекомендует документ), с растровыми изображениями, сохраненными в 16b или 24b или 32b, с тем же изображением, что и в заголовке (чтобы убедиться, что это не проблема с растровым изображением), компилируя настройки под Win2k и линукс ... ничего не работает.

Растровое изображение правильно сохраняется в настройках:

$ 7z l demyo-1.4.exe  | grep modern- | awk '{ print $4 }'
$PLUGINSDIR/modern-header.bmp
$PLUGINSDIR/modern-wizard.bmp

Есть идеи, что я делаю не так?

Ответы [ 7 ]

13 голосов
/ 20 октября 2014

Даже под руководством Андерса я не мог заставить это работать. Моя проблема была с самим изображением.

Эти шаги работали для меня, используя GIMP 2.8.10:

  • создать изображение в режиме RGB (Изображение> Режим> RGB), используя соответствующий размер для всего, что вы создаете (164x364 для MUI_WELCOMEFINISHPAGE_BITMAP, 150x57 для MUI_HEADERIMAGE_BITMAP)
  • Файл> Экспортировать как ...
  • присвойте файлу имя с расширением .bmp
  • нажмите «Экспорт»
  • в окне «Экспорт изображения в формате BMP» разверните «Параметры совместимости» и установите флажок «Не записывать информацию о цветовом пространстве»
  • также в окне «Экспорт изображения в формате BMP» разверните «Дополнительные параметры» и установите флажок «24 бита» рядом с «R8 G8 B8»
  • нажмите «Экспорт»

Теперь перекомпилируйте ваш скрипт nsi, и ваш установщик должен использовать указанные вами изображения.

10 голосов
/ 27 августа 2009
Макросы

MUI_LANGUAGE должны идти после макросов MUI_PAGE_* в исходном файле

5 голосов
/ 29 мая 2011

Для других людей, таких как я, с той же проблемой, но (немного) с другим решением:

Убедитесь, что у вас есть макрос MUI_LANGUAGE. (И, как подсказывает реальный ответ, это должно быть после макроса страницы). Если вы вообще не включите его, многие вещи не будут работать, не только изображения, но даже некоторые тексты и т. Д.

!insertmacro MUI_LANGUAGE "English"
3 голосов
/ 04 мая 2010

Убедитесь, что ваше изображение 8bit

1 голос
/ 15 апреля 2011

Вы хотите посмотреть файл nsis-welcome.bmp и поместить в архив файл modern-wizard.bmp.

1 голос
/ 27 августа 2009

Ваш код выглядит нормально, но я заметил, что вы сказали:

Я пытался с изображением 164x364 (как док рекомендует)

Документация фактически рекомендует 164x314. Так что, если это не просто опечатка с вашей стороны, попробуйте изменить размер изображения.

Если это не поможет, скажите нам, что появляется вместо вашего изображения. Это изображение по умолчанию или оно пустое?

0 голосов
/ 04 ноября 2014

Я столкнулся с той же проблемой, и проблема решена, как указано в исходном ответе.

!define MUI_ABORTWARNING
!define MUI_ICON "my.ico"
!define MUI_UNICON "my.ico"

!define MUI_HEADERIMAGE
!define MUI_HEADERIMAGE_BITMAP orange.bmp
!define MUI_WELCOMEFINISHPAGE_BITMAP orange_b.bmp

!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_LICENSE "LicenseAgreement.rtf"
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_LANGUAGE "English"

!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES

один интересный момент здесь, если языковой файл уже загружен в другом месте в любом заголовочном файле, используя

LoadLanguageFile "${NSISDIR}\Contrib\Language files\English.nlf" ;don't include while using MUI2

Затем NSIS сообщает о следующей ошибке.

Error: can't load same language file twice.
Error in macro MUI_LANGUAGE on macroline 9

Любое включение языкового файла должно быть закомментировано, чтобы увидеть изображения заголовков.

...