2009-08-27 11 views
6

Ich habe Probleme, ein Bild auf der ersten Seite eines Installationsprogramms mit NSIS/MUI2 hinzuzufügen.Fehlendes Begrüßungsbild in NSIS/MUI2

Hier ist eine abgespeckte Version des Codes, den ich verwende.

Die Kopfzeile wird auf der Lizenzseite korrekt angezeigt, aber ich kann sie nicht auf der Begrüßungsseite anzeigen. Ich versuchte mit einem 164x314 Bild (wie das Dokument empfiehlt), mit Bitmaps in 16b oder 24b oder 32b gespeichert, mit dem gleichen Bild wie der Header (um sicherzustellen, dass es kein Problem mit der Bitmap war), kompilieren Sie das Setup unter Win2k und Linux ... Nichts funktioniert.

Das Bitmap wird im Setup korrekt gespeichert:

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

Jede Idee, was ich falsch mache?

+0

Die Größe, die für mich schien, ist 57 px Höhe, tatsächlich gemessen aus dem MUI2-Dialog. Eine Größe von 149x57 brachte mir ein unverzerrtes Banner. Wundern Sie sich, was diesen Unterschied verursacht? – savolai

+1

Für Header sollten Sie eigentlich 150x57 verwenden. Das Dokument ist hier: http://nsis.sourceforge.net/Docs/Modern%20UI/Readme.html. Meine Beschreibung betraf das vertikale Bild links. –

Antwort

10

MUI_LANGUAGE Makro (s) haben nach den MUI_PAGE_* Makros in der Quelldatei 8Bit es

+0

Das ist unglaublich albern (von mir) und absolut korrekt. Danke vielmals. –

1

Ihr Code erscheint in Ordnung, aber ich bemerkt, dass Sie sagte:

ich mit einem 164x364 Bild versucht

Die documentation 164x314 tatsächlich empfiehlt (wie der doc empfiehlt). Wenn das nicht nur ein Tippfehler ist, versuchen Sie, das Bild zu verkleinern.

Wenn das nicht hilft, sagen Sie uns, was anstelle Ihres Bildes angezeigt wird. Ist es das Standardbild oder ist es nur leer?

+0

Ja, das war ein Tippfehler, tut mir leid. –

3

Stellen Sie sicher, Ihr Bild kommen

+0

Danke, aber Anders 'Antwort oben war die richtige. –

+0

Scheint auch mit 24 und 32 Bit zu arbeiten, zumindest auf der letzten Version. – Cray

+0

Danke, das hat bei mir funktioniert. Ich habe IrfanView Freeware verwendet, kann es empfehlen, Bilder von X Bit -> 8 Bit zu senden. –

1

Sie wollen die nsis-welcome.bmp Datei, um zu sehen und in das Archiv gestellt die modern-wizard.bmp.

5

Für andere Leute wie mich mit dem gleichen Problem, aber (etwas) andere Lösung:

Stellen Sie sicher, das MUI_LANGUAGE Makro tun haben. (Und wie die wirkliche Antwort nahelegt, muss es nach den Seitenmakros sein). Wenn Sie es gar nicht sind, scheinen viele Dinge nicht, nicht nur Bilder zu arbeiten, aber auch einige Texte, und so weiter ..

!insertmacro MUI_LANGUAGE "English" 
+1

Danke! Das war es endlich! Man hasse NSIS, ich kann nicht glauben, dass es bis heute keine Alternative gibt (WiX ist zu komplex für einfache Installateure) ... – Muers

7

Auch mit der Führung, die Anders bereitgestellt ich nicht bekommen konnte das funktioniert. Mein Problem war mit dem Bild selbst.

Diese Schritte für mich gearbeitet GIMP 2.8.10:

  • ein Bild erstellen mit RGB-Modus (Bild> Modus> RGB) für was auch immer die passende Größe unter Verwendung erstellen Sie (164x364 für MUI_WELCOMEFINISHPAGE_BITMAP, 150x57 für MUI_HEADERIMAGE_BITMAP)
  • Datei> Exportieren als ...
  • benennen Sie Ihre Datei mit a.bmp Erweiterung
  • Klick „Export“
  • im Fenster mit dem Titel „Export Bild als BMP“ erweitern „Kompatibilitätsoptionen“ und das Kontrollkästchen, das sagt auch
  • „Do not Farbrauminformationen schreiben“, im Fenster mit dem Titel „Export Bild als BMP“ erweitern „Erweiterte Optionen“ und wählen Sie die Option unter „24 Bit“ neben „R8 G8 B8“
  • Klick „Export“

Jetzt Ihr NSI Skript neu kompilieren und sollte Ihr Installateur Verwenden Sie die von Ihnen angegebenen Bilder.

0

Ich konfrontiert das gleiche Problem und das Problem ist gelöst, wie in der ursprünglichen Antwort erwähnt.

!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 

ein Punkt von Interesse hier, ob die Sprachdatei bereits an anderer Stelle in jeder Header-Datei

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

Dann NSIS meldet die folgenden Fehler.

Jede Sprachdateieinbeziehung muss auskommentiert werden, um die Headerbilder anzuzeigen.