在NSIS/MUI2中缺少欢迎图像

Xr.*_*Xr. 7 nsis

我很难将图像添加到使用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
Run Code Online (Sandbox Code Playgroud)

标题在许可页面上正确显示,但我无法在欢迎页面上显示它.我尝试使用164x314图像(正如文档推荐的那样),位图保存在16b或24b或32b中,图像与标题相同(以确保它不是位图的问题),在Win2k下编译设置和Linux ......没有任何作用.

位图正确存储在设置中:

$ 7z l demyo-1.4.exe  | grep modern- | awk '{ print $4 }'
$PLUGINSDIR/modern-header.bmp
$PLUGINSDIR/modern-wizard.bmp
Run Code Online (Sandbox Code Playgroud)

我知道我做错了什么?

小智 14

即使有安德斯提供的指导,我也无法使其发挥作用.我的问题在于图像本身.

这些步骤适用于我使用GIMP 2.8.10:

  • 使用RGB模式(图像>模式> RGB)创建图像,使用适合您正在创建的任何尺寸(对于MUI_WELCOMEFINISHPAGE_BITMAP为164x364,对于MUI_HEADERIMAGE_BITMAP为150x57)
  • 文件>导出为...
  • 使用.bmp扩展名命名您的文件
  • 点击"导出"
  • 在标题为"将图像导出为BMP"的窗口中展开"兼容性选项"并选中"不写入颜色空间信息"框
  • 此外,在标题为"将图像导出为BMP"的窗口中展开"高级选项"并选中"R8 G8 B8"旁边的"24位"下的单选按钮
  • 点击"导出"

现在重新编译您的nsi脚本,您的安装程序应该使用您指定的图像.

  • 我支持这个;当我添加一个具有色彩空间信息的 MUI_HEADERIMAGE_BITMAP 时,MUI_HEADERIMAGE_BITMAP 和 MUI_WELCOMEFINISHPAGE_BITMAP(这很好!)都没有显示出来。我必须在第一张图片上修复它才能让它们都工作。所以甚至不要认为“这个很好,所以至少它应该可以工作” - 似乎如果它们中的任何一个“坏了”,即使是好的也不会显示。 (2认同)

And*_*ers 10

MUI_LANGUAGE宏必须MUI_PAGE_*在源文件中的宏之后


Cra*_*ray 5

对于像我这样的其他人有同样的问题,但(稍微)不同的解决方案:

确保你有MUI_LANGUAGE宏.(正如真正的答案所示,它必须在页面宏之后).如果你根本不包括它,许多东西似乎不起作用,不仅是图像,甚至是一些文本,等等.

!insertmacro MUI_LANGUAGE "English"
Run Code Online (Sandbox Code Playgroud)