You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NSIS欢迎界面图片拉伸问题求助:调整安装程序后logo变形

NSIS位图拉伸模糊问题的解决方案
  • 排除nsResize对位图控件的强制调整
    nsResize默认会批量调整对话框内所有控件尺寸,包括欢迎/完成页的位图控件——哪怕你设置了!define MUI_WELCOMEFINISHPAGE_BITMAP_NOSTRETCH,它也可能已经修改了位图控件的大小,导致位图被拉伸。解决方法是跳过该控件的调整:

    1. MUI欢迎页位图的控件ID通常为1004
    2. 添加定义:!define RESIZE_EXCLUDE_CONTROLS "1004",让nsResize忽略该控件
  • 修正位图尺寸的计算逻辑
    你用的AddHeight 75u里的u是NSIS对话框单位(dialog units),不是直接对应像素。对话框单位和像素的转换依赖系统字体,不能直接把原位图高度314px加75得到436px。正确做法是:

    1. 先确定nsResize调整后,位图控件的实际像素尺寸
    2. 按该尺寸重新制作位图,而非直接拉伸原图
  • 确保MUI参数的定义顺序正确
    !define MUI_WELCOMEFINISHPAGE_BITMAP_NOSTRETCH必须放在!insertmacro MUI_PAGE_WELCOME之前,否则参数不生效。示例:

    !define MUI_WELCOMEFINISHPAGE_BITMAP_NOSTRETCH
    !insertmacro MUI_PAGE_WELCOME
    
  • 手动还原位图控件尺寸(备选方案)
    如果以上方法无效,可在初始化时强制重置位图控件尺寸:

    Function .onGUIInit
      FindWindow $0 "#32770" "" $HWNDPARENT
      GetDlgItem $1 $0 1004
      SendMessage $1 ${WM_SETREDRAW} 0 0
      SetWindowPos $1 0 0 0 164 314 ${SWP_NOMOVE|SWP_NOZORDER} ; 还原为原位图尺寸
      SendMessage $1 ${WM_SETREDRAW} 1 0
    FunctionEnd
    

内容的提问来源于stack exchange,提问作者Alex

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 10:35:17