2009-08-27 2 views
6

NSIS/MUI2으로 작성된 설치 프로그램의 첫 번째 페이지에 이미지를 추가하는 데 어려움을 겪고 있습니다.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 

헤더가 라이센스 페이지에 올바르게 표시되었지만 환영 페이지에 표시 할 수 없습니다. 비트 맵을 16b 또는 24b 또는 32b에 저장하고 헤더와 동일한 이미지 (비트 맵에 문제가 없는지 확인)로 Win2k에서 설정을 컴파일하는 164x314 이미지로 시도했습니다. Linux는 ... 아무 것도 작동하지 않습니다.

비트 맵

올바르게 설정에 저장됩니다

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

내가 잘못 무엇인지 어떤 생각?

+0

나를 위해 작동하는 것으로 보이는 크기는 실제로 MUI2 대화 상자에서 측정 한 57 픽셀 높이입니다. 149x57 크기는 나에게 왜곡되지 않은 기치를주었습니다. 그 차이를 일으키는 것이 무엇인지 궁금하십니까? – savolai

+1

헤더의 경우 실제로는 150x57을 사용해야합니다. doc은 http://nsis.sourceforge.net/Docs/Modern%20UI/Readme.html입니다. 내 설명은 왼쪽의 수직 이미지에 관한 것입니다. –

답변

10

MUI_LANGUAGE 매크로 (들)은 8 비트

당신은 nsis-welcome.bmp 파일을 참조하고 아카이브 modern-wizard.bmp에 투입 할
+0

이것은 (나) 엄청나게 바보이며 절대적으로 맞습니다. 고마워. –

1

코드는 잘 나타납니다,하지만 난 당신이 말한주의 :

내가합니다 ( 문서 권장 같은) 164x364 이미지

documentation 실제로 164x314을 권장로했습니다. 따라서 오타가 단순히 오타가 아닌 경우 이미지의 크기를 조정하십시오.

도움이되지 않는 경우 이미지 대신 표시되는 내용을 알려주세요. 기본 이미지입니까 아니면 그냥 비어 있습니까?

+0

예, 오타입니다. 죄송합니다. –

3

에서 MUI_PAGE_* 매크로 후에 와서해야합니다. 같은 문제가 있지만, (약간) 다른 솔루션과 나 같은 다른 사람들을 위해

+0

감사하지만 위의 Anders의 대답은 올바른 것입니다. –

+0

적어도 최근 버전에서는 24 비트 및 32 비트와도 작동합니다. – Cray

+0

고마워요, 저에게 도움이되었습니다. IrfanView 프리웨어를 사용하여 X 비트 -> 8 비트에서 이미지를 보내도록 권장 할 수 있습니다. –

1

의 이미지를 확인 소스 파일

5

:

당신이 MUI_LANGUAGE 매크로를 수행해야합니다. (실제 답변에서 알 수 있듯이, 페이지 매크로 이후에 있어야합니다.) 당신이 전혀 포함하지 않는 경우 , 많은 것들이에도 앤더스 내가 얻을 수 없었다 제공하는 지침 .. 등등뿐만 아니라 이미지,하지만, 심지어 일부 텍스트 등을 작동하지

!insertmacro MUI_LANGUAGE "English" 
+1

고마워요! 그게 다야, 마침내! 맨 NSIS가 싫어. 요즘에는 대안이 없다는 것을 믿을 수 없다. (WiX는 단순한 설치자에게는 지나치게 복잡하다.) ... – Muers

7

보인다 이게 작동합니다. 내 문제는 이미지 자체에있었습니다.

  • 가 무엇 이건 당신이 만들고있는 적절한 크기 (MUI_WELCOMEFINISHPAGE_BITMAP에 대한 164x364, 150x57를 사용하여 RGB 모드 (이미지> 모드> RGB)를 사용하여 이미지를 만들 :

    이 단계 나 김프 2.8.10을 사용하는 일 MUI_HEADERIMAGE_BITMAP)

  • 파일> 다른 이름으로 내보내기 ...
  • 파일 이름을.BMP 확장
  • 클릭 "내보내기", "BMP 등의 이미지 내보내기"라는 제목의 창에서
  • 는 "호환성 옵션"을 확장라는 제목의 창에서 또한 "색 공간 정보를 기록하지 마십시오"
  • 을 말한다 확인란을 선택 "고급 옵션"을 확장

는 이제 NSI 스크립트를 다시 컴파일 다음 "R8의 G8의 B8"

  • 클릭 "내보내기"를 "24 비트"에서 라디오 버튼을 체크하고 설치해야한다 "BMP 등의 이미지 내보내기" 지정한 이미지를 사용하고 있어야합니다.

  • 0

    나는 똑같은 문제에 직면했고 문제는 원래의 대답에서 언급 한대로 해결된다. 언어 파일이 이미

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

    를 사용하는 헤더 파일에 다른 장소에로드 된 경우 여기에 관심을

    !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 
    

    한 점, 그리고 NSIS는 다음과 같은 오류를보고합니다.

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

    헤더 이미지를 보려면 모든 언어 파일을 주석 처리해야합니다.