2009-08-27 15 views
6

Tengo dificultades para agregar una imagen a la primera página de un instalador escrito con NSIS/MUI2.Falta la imagen de bienvenida en NSIS/MUI2

Aquí hay una versión recortada del código que estoy usando.

!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 

El encabezado se muestra correctamente en la página de licencia, pero no puedo mostrarlo en la página de bienvenida. Intenté con una imagen de 164x314 (como recomienda el documento), con mapas de bits guardados en 16b o 24b o 32b, con la misma imagen que el encabezado (para asegurarme de que no era un problema con el mapa de bits), compilando la configuración bajo Win2k y Linux ... Nada funciona.

El mapa de bits se almacena correctamente en la configuración:

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

Cualquier idea de lo que estoy haciendo mal?

+0

El tamaño que parecía funcionar para mí es de 57 px de altura, realmente medido desde el cuadro de diálogo MUI2. Un tamaño de 149x57 me consiguió una pancarta sin distorsión. ¿Te preguntas qué está causando esa diferencia? – savolai

+1

Para encabezados, en realidad debería usar 150x57. El documento está aquí: http://nsis.sourceforge.net/Docs/Modern%20UI/Readme.html. Mi descripción fue sobre la imagen vertical a la izquierda. –

Respuesta

10

MUI_LANGUAGE macro (s) tiene que venir después de los MUI_PAGE_* macros en el archivo de origen

+0

Esto es increíblemente tonto (de mí), y absolutamente correcto. Muchas gracias. –

1

Su código parece muy bien, pero me di cuenta de que ha dicho:

que intentaron una imagen de 164x364 (como el doc recomienda)

El documentation recomienda realmente 164x314 con. Entonces, si eso no es solo un error de tu parte, intenta cambiar el tamaño de tu imagen.

Si eso no funciona, cuéntanos qué se muestra en lugar de tu imagen. ¿Es la imagen predeterminada o está en blanco?

+0

Sí, eso fue un error tipográfico, lo siento. –

3

Asegúrese de que su imagen es de 8 bits

+0

Gracias, pero la respuesta de Anders anterior fue la correcta. –

+0

Parece que funciona también con 24 y 32 bits, al menos en la versión más reciente. – Cray

+0

Gracias, esto funcionó para mí. Utilicé Freeware de IrfanView, puedo recomendarlo para enviar imágenes de X bit -> 8 bit. –

1

¿Quieres ver el archivo nsis-welcome.bmp y poner en el archivo modern-wizard.bmp.

5

Para otras personas como yo con el mismo problema, pero la solución (ligeramente) diferente:

Asegúrese de que usted tiene la macro MUI_LANGUAGE. (Y como sugiere la respuesta real, debe ser después de las macros de la página). Si no lo incluya en absoluto, muchas cosas parecen no funcionar, no sólo imágenes, sino incluso algunos textos, y así sucesivamente ..

!insertmacro MUI_LANGUAGE "English" 
+1

¡Gracias! Eso fue todo, finalmente! Hombre, odio a NSIS, no puedo creer que no haya alternativa a este día (WiX es demasiado complejo para instaladores simples) ... – Muers

7

Incluso con la orientación que proporciona Anders no pude conseguir esto para trabajar Mi problema fue con la imagen en sí.

Estos pasos trabajaron para mí usando GIMP 2.8.10:

  • crear una imagen usando el modo RGB (Imagen> Modo> RGB) con el tamaño adecuado para lo que está creando (164x364 para MUI_WELCOMEFINISHPAGE_BITMAP, 150x57 para MUI_HEADERIMAGE_BITMAP)
  • Archivo> Exportar como ...
  • nombre su archivo con a.extensión bmp
  • clic en "Exportar"
  • en la ventana titulada "Exportar imagen como BMP" expandir "Opciones de compatibilidad" y marque la casilla que dice "No escribir información de espacio de color"
  • también, en la ventana titulada "Exportar imagen como BMP" ampliar "Opciones avanzadas" y seleccione el botón de radio en "24 bits" junto a "R8 G8 B8"
  • clic en "Exportar"

Ahora volver a compilar el guión nsi y su instalador debe usar las imágenes que especificó.

0

Me enfrenté al mismo problema y el problema se resuelve como se menciona en la respuesta original.

!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 

un punto de interés aquí, si el archivo de idioma ya está cargado en otro lugar en cualquier archivo de cabecera usando

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

Entonces NSIS informa del error siguiente.

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

Cualquier inclusión de archivo de idioma debe comentarse para ver las imágenes de encabezado.

Cuestiones relacionadas